1 /* Quick and dirty way to localize some strings; not recommended for reuse.
2 * I'm sure dojo provides a better mechanism for this, but at the moment
3 * this is faster to implement anew than figuring out the Right way to do
4 * the same thing w/ dojo.
6 function init_auto_l10n(el) {
7 function do_it(myel, cls) {
9 var clss = cls.split(" ");
11 var parts = clss[k].match(/^AUTO_ATTR_([A-Z]+)_.+$/);
12 if (parts && localeStrings[clss[k]]) {
14 parts[1].toLowerCase(), localeStrings[clss[k]]
16 } else if (clss[k].match(/^AUTO_/) && localeStrings[clss[k]]) {
17 myel.innerHTML = localeStrings[clss[k]];
23 for (var i in el.attributes) {
24 if (el.attributes[i].nodeName == "class") {
25 do_it(el, el.attributes[i].value);
29 for (var i in el.childNodes) {
30 if (el.childNodes[i].nodeType == 1) { // element node?
31 init_auto_l10n(el.childNodes[i]); // recurse!
36 function get_keys(L) { var K = []; for (var k in L) K.push(k); return K; }
37 function hide_dom_element(e) { e.style.display = "none"; };
38 function reveal_dom_element(e) { e.style.display = ""; };
39 function formal_name(u) {
40 var name = u.family_name() + ", " + u.first_given_name();
41 if (u.second_given_name())
42 name += (" " + u.second_given_name());
45 function humanize_timestamp_string(ts) {
46 /* For now, this discards time zones. */
47 var parts = ts.split("T");
48 var timeparts = parts[1].split("-")[0].split(":");
49 return parts[0] + " " + timeparts[0] + ":" + timeparts[1];
51 function is_ils_event(e) { return (e.ilsevent != undefined); }
52 function is_ils_actor_card_error(e) {
53 return (e.textcode == "ACTOR_CARD_NOT_FOUND");
55 function my_ils_error(leader, e) {
56 var s = leader + "\n";
58 "ilsevent", "desc", "textcode", "servertime", "pid", "stacktrace"
61 if (e[keys[i]]) s += ("\t" + keys[i] + ": " + e[keys[i]] + "\n");
65 function set_datagrid_empty_store(grid, flattener) {
67 new dojo.data.ItemFileReadStore(
68 {"data": flattener([])}