Merge branch 'master' of git+ssh://yeti.esilibrary.com/home/evergreen/evergreen-equin...
authorMike Rylander <mrylander@gmail.com>
Thu, 5 May 2011 18:11:39 +0000 (14:11 -0400)
committerMike Rylander <mrylander@gmail.com>
Thu, 5 May 2011 18:11:39 +0000 (14:11 -0400)
12 files changed:
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/005.schema.actors.sql
Open-ILS/src/sql/Pg/upgrade/0530.schema.actor-usr-index-phone-fields-more.sql [new file with mode: 0644]
Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.js [new file with mode: 0644]
Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.xul [new file with mode: 0644]
Open-ILS/xul/staff_client/server/cat/marcedit.xul
Open-ILS/xul/staff_client/server/patron/display.js
Open-ILS/xul/staff_client/server/patron/summary_overlay.xul
Open-ILS/xul/staff_client/server/patron/summary_overlay_horiz.xul
Open-ILS/xul/staff_client/server/skin/global.css

index cd3d4b5..1cb3dce 100644 (file)
@@ -680,7 +680,11 @@ sub patron_search {
        my @phonev;
        if ($pv) {
                for my $p ( qw/day_phone evening_phone other_phone/ ) {
-                       push @ps, "evergreen.lowercase($p) ~ ?";
+                       if ($pv =~ /^\d+$/) {
+                               push @ps, "evergreen.lowercase(REGEXP_REPLACE($p, '[^0-9]', '', 'g')) ~ ?";
+                       } else {
+                               push @ps, "evergreen.lowercase($p) ~ ?";
+                       }
                        push @phonev, "^$pv";
                }
                $phone = '(' . join(' OR ', @ps) . ')';
index ff48b1e..cf59bc0 100644 (file)
@@ -86,7 +86,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0529', :eg_version); -- miker, for Joseph Lewis and Michael Peters
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0530', :eg_version); -- senator, for Niles Ingalls
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
index f87ffa0..d56e644 100644 (file)
@@ -88,6 +88,15 @@ CREATE INDEX actor_usr_day_phone_idx ON actor.usr (evergreen.lowercase(day_phone
 CREATE INDEX actor_usr_evening_phone_idx ON actor.usr (evergreen.lowercase(evening_phone));
 CREATE INDEX actor_usr_other_phone_idx ON actor.usr (evergreen.lowercase(other_phone));
 
+CREATE INDEX actor_usr_day_phone_idx_numeric ON actor.usr USING BTREE
+    (evergreen.lowercase(REGEXP_REPLACE(day_phone, '[^0-9]', '', 'g')));
+
+CREATE INDEX actor_usr_evening_phone_idx_numeric ON actor.usr USING BTREE
+    (evergreen.lowercase(REGEXP_REPLACE(evening_phone, '[^0-9]', '', 'g')));
+
+CREATE INDEX actor_usr_other_phone_idx_numeric ON actor.usr USING BTREE
+    (evergreen.lowercase(REGEXP_REPLACE(other_phone, '[^0-9]', '', 'g')));
+
 CREATE INDEX actor_usr_ident_value_idx ON actor.usr (evergreen.lowercase(ident_value));
 CREATE INDEX actor_usr_ident_value2_idx ON actor.usr (evergreen.lowercase(ident_value2));
 
diff --git a/Open-ILS/src/sql/Pg/upgrade/0530.schema.actor-usr-index-phone-fields-more.sql b/Open-ILS/src/sql/Pg/upgrade/0530.schema.actor-usr-index-phone-fields-more.sql
new file mode 100644 (file)
index 0000000..c8dd6d3
--- /dev/null
@@ -0,0 +1,14 @@
+BEGIN;
+
+INSERT INTO config.upgrade_log (version) VALUES ('0530'); -- senator
+
+CREATE INDEX actor_usr_day_phone_idx_numeric ON actor.usr USING BTREE 
+    (evergreen.lowercase(REGEXP_REPLACE(day_phone, '[^0-9]', '', 'g')));
+
+CREATE INDEX actor_usr_evening_phone_idx_numeric ON actor.usr USING BTREE 
+    (evergreen.lowercase(REGEXP_REPLACE(evening_phone, '[^0-9]', '', 'g')));
+
+CREATE INDEX actor_usr_other_phone_idx_numeric ON actor.usr USING BTREE 
+    (evergreen.lowercase(REGEXP_REPLACE(other_phone, '[^0-9]', '', 'g')));
+
+COMMIT;
index 8250cae..c1c104c 100644 (file)
                         dump('on_oils_persist: <<< ' + target.nodeName + '.id = ' + target.id + '\t' + bk + '\n');
                         for (var j = 0; j < attribute_list.length; j++) {
                             var key = base_key + attribute_list[j];
-                            var value = target.getAttribute( attribute_list[j] );
+                            var value = encodeURI(target.getAttribute( attribute_list[j] ));
                             if ( attribute_list[j] == 'checked' && ['checkbox','toolbarbutton'].indexOf( target.nodeName ) > -1 ) {
                                 value = target.checked;
                                 dump('\t' + value + ' <== .' + attribute_list[j] + '\n');
+                            } else if ( attribute_list[j] == 'value' && ['menulist'].indexOf( target.nodeName ) > -1 ) {
+                                value = target.value;
+                                dump('\t' + value + ' <== .' + attribute_list[j] + '\n');
                             } else if ( attribute_list[j] == 'value' && ['textbox'].indexOf( target.nodeName ) > -1 ) {
                                 value = target.value;
                                 dump('\t' + value + ' <== .' + attribute_list[j] + '\n');
                 for (var j = 0; j < attribute_list.length; j++) {
                     var key = base_key + attribute_list[j];
                     var has_key = prefs.prefHasUserValue(key);
-                    var value = has_key ? prefs.getCharPref(key) : null;
+                    var value = has_key ? decodeURI(prefs.getCharPref(key)) : null;
                     if (value == 'true') { value = true; }
                     if (value == 'false') { value = false; }
                     if (has_key) {
                         } else if ( attribute_list[j] == 'value' && ['textbox'].indexOf( nodes[i].nodeName ) > -1 ) {
                             nodes[i].value = value;
                             dump('\t' + value + ' ==> .' + attribute_list[j] + '\n');
+                        } else if ( attribute_list[j] == 'value' && ['menulist'].indexOf( nodes[i].nodeName ) > -1 ) {
+                            nodes[i].value = value;
+                            dump('\t' + value + ' ==> .' + attribute_list[j] + '\n');       
                         } else if ( attribute_list[j] == 'sizemode' && ['window'].indexOf( nodes[i].nodeName ) > -1 ) {
                             switch(value) {
                                 case window.STATE_MAXIMIZED:
                         }
                     } else {
                         if (node.nodeName == 'textbox') { 
-                            event_types.push('change'); 
+                            event_types.push('change');
+                        } else if (node.nodeName == 'menulist') { 
+                            event_types.push('select');  
                         } else if (node.nodeName == 'window') {
                             event_types.push('resize'); 
                             node = window; // xul window is an element of window.document
diff --git a/Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.js b/Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.js
new file mode 100644 (file)
index 0000000..f84a702
--- /dev/null
@@ -0,0 +1,37 @@
+dump('entering symbol/clipboard.js\n');
+
+function $(id) { return document.getElementById(id); }
+
+var el = {};
+
+dojo.addOnLoad(
+    function(){
+        dojo.query('.plain').forEach(function(node,index,arr){
+            node.addEventListener("keypress", function(event) { 
+                if (event.charCode == 115 && event.ctrlKey){
+                        setNod(node);
+                        $('symbol-panel').openPopup(node, 'after_pointer' );
+                    }
+                 }, true);
+        });
+    }
+);
+
+function setNod(elm){
+    el = elm;
+}
+
+function ret(ins, e){
+    if (e.button == 0){
+        $('symbol-panel').hidePopup();
+        n = el;
+        
+        if (n.getAttribute('readonly')=='true') return;
+        
+        var v = n.value;
+        var start = n.selectionStart;
+        var end = n.selectionEnd;
+        n.value = v.substring(0, start) + ins + v.substring(end, v.length);
+        n.setSelectionRange(start + ins.length,start + ins.length);
+    }
+}
diff --git a/Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.xul b/Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.xul
new file mode 100644 (file)
index 0000000..d9a4780
--- /dev/null
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<overlay id="iisg_symbol_overlay"
+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+    
+    <scripts id="iisg_symbol_scripts">
+        <script type="text/javascript" src="symbol_overlay.js" />   
+        <script>dump('finished iisg_symbol_overlay\n');</script>
+    </scripts>
+
+<popupset>
+  <menupopup id="symbol-menu">
+      <menu label="West-European">
+          <menupopup>
+              <menu label="A">
+                  <menupopup>
+                    <menuitem label="À" oncommand="document.popupNode.label='\u00C0'"/>
+                    <menuitem label="à" oncommand="document.popupNode.label='\u00E0'"/>
+                    <menuitem label="Á" oncommand="document.popupNode.label='\u00C1'"/>
+                    <menuitem label="á" oncommand="document.popupNode.label='\u00E1'"/>
+                    <menuitem label="Ä" oncommand="document.popupNode.label='\u00C4'"/>
+                    <menuitem label="ä" oncommand="document.popupNode.label='\u00E4'"/>
+                    <menuitem label="Â" oncommand="document.popupNode.label='\u00C2'"/>
+                    <menuitem label="â" oncommand="document.popupNode.label='\u00E2'"/>
+                    <menuitem label="Ã" oncommand="document.popupNode.label='\u00C3'"/>
+                    <menuitem label="ã" oncommand="document.popupNode.label='\u00E3'"/>
+                    <menuitem label="Å" oncommand="document.popupNode.label='\u00C5'"/>
+                    <menuitem label="å" oncommand="document.popupNode.label='\u00E5'"/>                    
+                </menupopup>
+            </menu>
+              <menu label="E">
+                  <menupopup>
+                    <menuitem label="È" oncommand="document.popupNode.label='\u00C8'"/>
+                    <menuitem label="è" oncommand="document.popupNode.label='\u00E8'"/>
+                    <menuitem label="É" oncommand="document.popupNode.label='\u00C9'"/>
+                    <menuitem label="é" oncommand="document.popupNode.label='\u00E9'"/>
+                    <menuitem label="Ë" oncommand="document.popupNode.label='\u00CB'"/>
+                    <menuitem label="ë" oncommand="document.popupNode.label='\u00EB'"/>
+                    <menuitem label="Ê" oncommand="document.popupNode.label='\u00CA'"/>
+                    <menuitem label="ê" oncommand="document.popupNode.label='\u00EA'"/>                
+                </menupopup>
+            </menu>
+              <menu label="I">
+                  <menupopup>
+                    <menuitem label="Ì" oncommand="document.popupNode.label='\u00CC'"/>
+                    <menuitem label="ì" oncommand="document.popupNode.label='\u00EC'"/>
+                    <menuitem label="Í" oncommand="document.popupNode.label='\u00CD'"/>
+                    <menuitem label="í" oncommand="document.popupNode.label='\u00ED'"/>
+                    <menuitem label="Ï" oncommand="document.popupNode.label='\u00CF'"/>
+                    <menuitem label="ï" oncommand="document.popupNode.label='\u00EF'"/>
+                    <menuitem label="Î" oncommand="document.popupNode.label='\u00CE'"/>
+                    <menuitem label="î" oncommand="document.popupNode.label='\u00EE'"/>
+                   </menupopup>
+            </menu>
+              <menu label="O">
+                  <menupopup>
+                    <menuitem label="Ò" oncommand="document.popupNode.label='\u00D2'"/>
+                    <menuitem label="ò" oncommand="document.popupNode.label='\u00F2'"/>
+                    <menuitem label="Ó" oncommand="document.popupNode.label='\u00D3'"/>
+                    <menuitem label="ó" oncommand="document.popupNode.label='\u00F3'"/>
+                    <menuitem label="Ö" oncommand="document.popupNode.label='\u00D6'"/>
+                    <menuitem label="ö" oncommand="document.popupNode.label='\u00F6'"/>
+                    <menuitem label="Ô" oncommand="document.popupNode.label='\u00D4'"/>
+                    <menuitem label="ô" oncommand="document.popupNode.label='\u00F4'"/>
+                    <menuitem label="Õ" oncommand="document.popupNode.label='\u00D5'"/>
+                    <menuitem label="õ" oncommand="document.popupNode.label='\u00F5'"/>
+                    <menuitem label="Ø" oncommand="document.popupNode.label='\u00D8'"/>
+                    <menuitem label="ø" oncommand="document.popupNode.label='\u00F8'"/>                    
+                </menupopup>
+            </menu>
+              <menu label="U">
+                  <menupopup>
+                    <menuitem label="Ù" oncommand="document.popupNode.label='\u00D9'"/>
+                    <menuitem label="ù" oncommand="document.popupNode.label='\u00F9'"/>
+                    <menuitem label="Ú" oncommand="document.popupNode.label='\u00DA'"/>
+                    <menuitem label="ú" oncommand="document.popupNode.label='\u00FA'"/>
+                    <menuitem label="Ü" oncommand="document.popupNode.label='\u00DC'"/>
+                    <menuitem label="ü" oncommand="document.popupNode.label='\u00FC'"/>
+                    <menuitem label="Û" oncommand="document.popupNode.label='\u00DB'"/>
+                    <menuitem label="û" oncommand="document.popupNode.label='\u00FB'"/>
+                </menupopup>
+            </menu>
+              <menu label="C">
+                  <menupopup>
+                    <menuitem label="Ç" oncommand="document.popupNode.label='\u00C7'"/>
+                    <menuitem label="ç" oncommand="document.popupNode.label='\u00E7'"/>
+                 </menupopup>
+            </menu>
+              <menu label="N">
+                  <menupopup>
+                    <menuitem label="Ñ" oncommand="document.popupNode.label='\u00D1'"/>
+                    <menuitem label="ñ" oncommand="document.popupNode.label='\u00F1'"/>
+                 </menupopup>
+            </menu>                 
+        </menupopup>
+    </menu>
+    <menu label="Turkish">
+          <menupopup>
+              <menu label="A">
+                  <menupopup>
+                    <menuitem label="Â" oncommand="document.popupNode.label='\u00C2'"/>
+                    <menuitem label="â" oncommand="document.popupNode.label='\u00E2'"/>
+                </menupopup>
+            </menu>
+              <menu label="G">
+                  <menupopup>
+                    <menuitem label="Ğ" oncommand="document.popupNode.label='\u011E'"/>
+                    <menuitem label="ğ" oncommand="document.popupNode.label='\u011F'"/>
+                </menupopup>
+            </menu>
+              <menu label="I">
+                  <menupopup>
+                    <menuitem label="İ" oncommand="document.popupNode.label='\u0130'"/>
+                    <menuitem label="ı" oncommand="document.popupNode.label='\u0131'"/>
+                   </menupopup>
+            </menu>
+              <menu label="O">
+                  <menupopup>
+                    <menuitem label="Ö" oncommand="document.popupNode.label='\u00D6'"/>
+                    <menuitem label="ö" oncommand="document.popupNode.label='\u00F6'"/>
+                </menupopup>
+            </menu>
+              <menu label="U">
+                  <menupopup>
+                    <menuitem label="Ü" oncommand="document.popupNode.label='\u00DC'"/>
+                    <menuitem label="ü" oncommand="document.popupNode.label='\u00FC'"/>
+                </menupopup>
+            </menu>
+              <menu label="C">
+                  <menupopup>
+                    <menuitem label="Ç" oncommand="document.popupNode.label='\u00C7'"/>
+                    <menuitem label="ç" oncommand="document.popupNode.label='\u00E7'"/>
+                 </menupopup>
+            </menu>
+              <menu label="S">
+                  <menupopup>
+                    <menuitem label="Ş" oncommand="document.popupNode.label='\u015E'"/>
+                    <menuitem label="ş" oncommand="document.popupNode.label='\u015F'"/>
+                 </menupopup>
+            </menu>                 
+        </menupopup>
+    </menu>
+    <menu label="Cyrillic">
+          <menupopup>
+              <menu label="A">
+                  <menupopup>
+                    <menuitem label="Ă" oncommand="document.popupNode.label='\u0102'"/>
+                    <menuitem label="ă" oncommand="document.popupNode.label='\u0103'"/>
+                </menupopup>
+            </menu>
+              <menu label="I">
+                  <menupopup>
+                    <menuitem label="Ï" oncommand="document.popupNode.label='\u00CF'"/>
+                    <menuitem label="ï" oncommand="document.popupNode.label='\u00EF'"/>
+                    <menuitem label="Ī" oncommand="document.popupNode.label='\u012A'"/>
+                    <menuitem label="ī" oncommand="document.popupNode.label='\u012B'"/>
+                   </menupopup>
+            </menu>
+              <menu label="C">
+                  <menupopup>
+                    <menuitem label="Č" oncommand="document.popupNode.label='\u010C'"/>
+                    <menuitem label="č" oncommand="document.popupNode.label='\u010D'"/>
+                 </menupopup>
+            </menu>
+              <menu label="S">
+                  <menupopup>
+                    <menuitem label="Š" oncommand="document.popupNode.label='\u0160'"/>
+                    <menuitem label="š" oncommand="document.popupNode.label='\u0161'"/>
+                 </menupopup>
+            </menu>
+            <menu label="Z">
+                  <menupopup>
+                    <menuitem label="Ž" oncommand="document.popupNode.label='\u017D'"/>
+                    <menuitem label="ž" oncommand="document.popupNode.label='\u017E'"/>
+                </menupopup>
+            </menu>                 
+        </menupopup>
+    </menu>
+    <menu label="Slavic">
+          <menupopup>
+              <menu label="A">
+                  <menupopup>
+                    <menuitem label="Á" oncommand="document.popupNode.label='\u00C1'"/>
+                    <menuitem label="á" oncommand="document.popupNode.label='\u00E1'"/>
+                    <menuitem label="Ą" oncommand="document.popupNode.label='\u0104'"/>
+                    <menuitem label="ą" oncommand="document.popupNode.label='\u0105'"/>
+                </menupopup>
+            </menu>
+              <menu label="E">
+                  <menupopup>
+                    <menuitem label="É" oncommand="document.popupNode.label='\u00C9'"/>
+                    <menuitem label="é" oncommand="document.popupNode.label='\u00E9'"/>
+                    <menuitem label="Ĕ" oncommand="document.popupNode.label='\u0114'"/>
+                    <menuitem label="ĕ" oncommand="document.popupNode.label='\u0115'"/>
+                    <menuitem label="Ę" oncommand="document.popupNode.label='\u0118'"/>
+                    <menuitem label="ę" oncommand="document.popupNode.label='\u0119'"/>
+                   </menupopup>
+            </menu>
+              <menu label="I">
+                  <menupopup>
+                    <menuitem label="Í" oncommand="document.popupNode.label='\u00CD'"/>
+                    <menuitem label="í" oncommand="document.popupNode.label='\u00ED'"/>
+                 </menupopup>
+            </menu>
+              <menu label="O">
+                  <menupopup>
+                    <menuitem label="Ó" oncommand="document.popupNode.label='\u00D3'"/>
+                    <menuitem label="ó" oncommand="document.popupNode.label='\u00F3'"/>
+                 </menupopup>
+            </menu>
+            <menu label="U">
+                  <menupopup>
+                    <menuitem label="Ů" oncommand="document.popupNode.label='\u016E'"/>
+                    <menuitem label="ů" oncommand="document.popupNode.label='\u016F'"/>
+                </menupopup>
+            </menu>
+            <menu label="Y">
+                  <menupopup>
+                    <menuitem label="Ý" oncommand="document.popupNode.label='\u00DD'"/>
+                    <menuitem label="ý" oncommand="document.popupNode.label='\u00FD'"/>
+                </menupopup>
+            </menu>    
+            <menu label="L">
+                  <menupopup>
+                    <menuitem label="Ł" oncommand="document.popupNode.label='\u0141'"/>
+                    <menuitem label="ł" oncommand="document.popupNode.label='\u0142'"/>
+                </menupopup>
+            </menu>               
+            <menu label="C">
+                  <menupopup>
+                    <menuitem label="Ć" oncommand="document.popupNode.label='\u0106'"/>
+                    <menuitem label="ć" oncommand="document.popupNode.label='\u0107'"/>
+                    <menuitem label="Č" oncommand="document.popupNode.label='\u010C'"/>
+                    <menuitem label="č" oncommand="document.popupNode.label='\u010D'"/>
+                </menupopup>
+            </menu>               
+            <menu label="D">
+                  <menupopup>
+                    <menuitem label="Ð" oncommand="document.popupNode.label='\u00D0'"/>
+                    <menuitem label="ð" oncommand="document.popupNode.label='\u00F0'"/>
+                </menupopup>
+            </menu>
+            <menu label="N">
+                  <menupopup>
+                    <menuitem label="Ń" oncommand="document.popupNode.label='\u0143'"/>
+                    <menuitem label="ń" oncommand="document.popupNode.label='\u0144'"/>
+                </menupopup>
+            </menu>
+            <menu label="R">
+                  <menupopup>
+                    <menuitem label="Ř" oncommand="document.popupNode.label='\u0158'"/>
+                    <menuitem label="ř" oncommand="document.popupNode.label='\u0159'"/>
+                </menupopup>
+            </menu>
+            <menu label="S">
+                  <menupopup>
+                    <menuitem label="Ś" oncommand="document.popupNode.label='\u015A'"/>
+                    <menuitem label="ś" oncommand="document.popupNode.label='\u015B'"/>
+                </menupopup>
+            </menu>
+            <menu label="Z">
+                  <menupopup>
+                    <menuitem label="Ž" oncommand="document.popupNode.label='\u017D'"/>
+                    <menuitem label="ž" oncommand="document.popupNode.label='\u017E'"/>
+                    <menuitem label="Ź" oncommand="document.popupNode.label='\u0179'"/>
+                    <menuitem label="ź" oncommand="document.popupNode.label='\u017A'"/>
+                    <menuitem label="Ż" oncommand="document.popupNode.label='\u017B'"/>
+                    <menuitem label="ż" oncommand="document.popupNode.label='\u017C'"/>
+                </menupopup>
+            </menu>
+        </menupopup>
+    </menu>
+    <menu label="Hungarian">
+          <menupopup>
+              <menu label="A">
+                  <menupopup>
+                    <menuitem label="Á" oncommand="document.popupNode.label='\u00C1'"/>
+                    <menuitem label="á" oncommand="document.popupNode.label='\u00E1'"/>
+                </menupopup>
+            </menu>
+              <menu label="E">
+                  <menupopup>
+                    <menuitem label="É" oncommand="document.popupNode.label='\u00C9'"/>
+                    <menuitem label="é" oncommand="document.popupNode.label='\u00E9'"/>
+                   </menupopup>
+            </menu>
+              <menu label="I">
+                  <menupopup>
+                    <menuitem label="Í" oncommand="document.popupNode.label='\u00CD'"/>
+                    <menuitem label="í" oncommand="document.popupNode.label='\u00ED'"/>
+                 </menupopup>
+            </menu>
+              <menu label="O">
+                  <menupopup>
+                    <menuitem label="Ó" oncommand="document.popupNode.label='\u00D3'"/>
+                    <menuitem label="ó" oncommand="document.popupNode.label='\u00F3'"/>
+                    <menuitem label="Ö" oncommand="document.popupNode.label='\u00D3'"/>
+                    <menuitem label="ö" oncommand="document.popupNode.label='\u00F3'"/>
+                    <menuitem label="Ő" oncommand="document.popupNode.label='\u00D3'"/>
+                    <menuitem label="ő" oncommand="document.popupNode.label='\u00F3'"/>
+                 </menupopup>
+            </menu>
+            <menu label="U">
+                  <menupopup>
+                    <menuitem label="Ú" oncommand="document.popupNode.label='\u00DA'"/>
+                    <menuitem label="ú" oncommand="document.popupNode.label='\u00FA'"/>
+                    <menuitem label="Ü" oncommand="document.popupNode.label='\u00DC'"/>
+                    <menuitem label="ü" oncommand="document.popupNode.label='\u00FC'"/>
+                    <menuitem label="Ű" oncommand="document.popupNode.label='\u0170'"/>
+                    <menuitem label="ű" oncommand="document.popupNode.label='\u0171'"/>
+                </menupopup>
+            </menu>
+        </menupopup>
+    </menu>
+    
+  </menupopup>
+</popupset>
+        <popupset>
+            <panel id="symbol-panel" noautohide="false" titlebar="normal" onpopuphidden="" >
+                  <vbox>
+                    <hbox>
+                        <button class="sym" style="width:2em;min-width:1em;" id="sym1A" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="À" />
+                        <button class="sym" id="sym1B" context="symbol-menu" onclick="ret(label,event);"  oils_persist="label" label="Á" />
+                        <button class="sym" id="sym1C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ä" />
+                        <button class="sym" id="sym1D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Â" />
+                        <button class="sym" id="sym1E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ã" />
+                        <button class="sym" id="sym1F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Å" />
+                    </hbox>
+                    <hbox>
+                        <button class ="sym" id="sym2A" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="à"/>
+                        <button class ="sym" id="sym2B" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="á"/>
+                        <button class ="sym" id="sym2C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ä"/>
+                        <button class ="sym" id="sym2D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="â"/>
+                        <button class ="sym" id="sym2E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ã" />
+                        <button class ="sym" id="sym2F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="å" />
+                    </hbox>        
+                    <hbox>
+                        <button class ="sym" id="sym3A" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ò"/>
+                        <button class ="sym" id="sym3B" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ó"/>
+                        <button class ="sym" id="sym3C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ö"/>
+                        <button class ="sym" id="sym3D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ô"/>
+                        <button class ="sym" id="sym3E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Õ" />
+                        <button class ="sym" id="sym3F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ø" />                    
+                    </hbox>
+                    <hbox>
+                        <button class ="sym" id="sym4A" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ò"/>
+                        <button class ="sym" id="sym4B" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ó"/>
+                        <button class ="sym" id="sym4C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ö"/>
+                        <button class ="sym" id="sym4D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ô"/>
+                        <button class ="sym" id="sym4E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="õ" />
+                        <button class ="sym" id="sym4F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ø" />                    
+                    </hbox>
+                    <hbox>
+                        <button class ="sym" id="sym5A" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="È"/>
+                        <button class ="sym" id="sym5B" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="É"/>
+                        <button class ="sym" id="sym5C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ë"/>
+                        <button class ="sym" id="sym5D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ê"/>
+                        <button class ="sym" id="sym5E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ç" />
+                        <button class ="sym" id="sym5F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="Ñ" />                
+                    </hbox>
+                    <hbox>
+                        <button class="sym" id="sym6A" context="symbol-menu" onclick="ret(label,event);"  oils_persist="label" label="è"/>
+                        <button class ="sym" id="sym6B" context="symbol-menu" onclick="ret(label,event);"  oils_persist="label" label="é"/>
+                        <button class ="sym" id="sym6C" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ë"/>
+                        <button class ="sym" id="sym6D" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ê"/>
+                        <button class ="sym" id="sym6E" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ç" />
+                        <button class ="sym" id="sym6F" context="symbol-menu" onclick="ret(label,event);" oils_persist="label" label="ñ" />                
+                    </hbox>                        
+                  </vbox>
+            </panel>
+        </popupset>
+</overlay>
+
index 3f4b1cf..3d28729 100644 (file)
@@ -9,6 +9,7 @@
 ]>
 
 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+<?xul-overlay href="/xul/server/OpenILS/symbol_overlay.xul"?>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xhtml="http://www.w3.org/1999/xhtml" onload="try { my_init(); font_helper(); persist_helper(); } catch(E) { alert(E); }">
 
 </groupbox>
 
 <hbox hidden="true" id="text-editor" flex="1">
-    <xhtml:textarea rows="50" cols='100' onkeypress="netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); if (!(event.altKey || event.ctrlKey || event.metaKey)) { oils_lock_page(); }" id="text-editor-box"></xhtml:textarea>
+    <xhtml:textarea rows="50" cols='100' onkeypress="if (event.charCode == 115 &amp;&amp; event.ctrlKey &amp;&amp; $('symbol-panel')) { setNod(tab); $('symbol-panel').openPopup(tab, 'after_pointer'); } else { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); if (!(event.altKey || event.ctrlKey || event.metaKey)) { oils_lock_page(); } }" context="clipboard" id="text-editor-box"></xhtml:textarea>
 </hbox>
 
 <grid name="authority-marc-template" hidden="true">
index ba9956e..0f7f9ac 100644 (file)
@@ -137,6 +137,8 @@ patron.display.prototype = {
                             obj.controller.view.cmd_search_form.setAttribute('disabled','true');
                             obj.left_deck.node.selectedIndex = 0;
                             obj.controller.view.patron_name.setAttribute('value', $("patronStrings").getString('staff.patron.display.cmd_search_form.no_patron'));
+                            obj.controller.view.patron_name.setAttribute('tooltiptext', '');
+                            obj.controller.view.patron_name.setAttribute('onclick', '');
                             removeCSSClass(document.documentElement,'PATRON_HAS_BILLS');
                             removeCSSClass(document.documentElement,'PATRON_HAS_OVERDUES');
                             removeCSSClass(document.documentElement,'PATRON_HAS_NOTES');
@@ -516,6 +518,7 @@ patron.display.prototype = {
                                     ]
                                 );
                                 e.setAttribute('tooltiptext',tooltiptext);
+                                e.setAttribute('onclick','try { copy_to_clipboard(event); } catch(E) { alert(E); }');
                             };
                         }
                     ],
index 0c540e1..a0d7deb 100644 (file)
         <row id="pdcgpr1">
             <label id="PatronSummaryContact_day_phone_label" class="copyable text_left phone label day_phone"
                 value="&staff.patron_display.day_phone.label;" />
-            <description id="patron_day_phone" class="copyable phone value day_phone"/> 
+            <description id="patron_day_phone" class="copyable phone value day_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/> 
         </row>
         <row id="pdcgpr2">
             <label id="PatronSummaryContact_evening_phone_label" class="copyable text_left phone label evening_phone"
                 value="&staff.patron_display.evening_phone.label;" />
-            <description id="patron_evening_phone" class="copyable phone value evening_phone"/>
+            <description id="patron_evening_phone" class="copyable phone value evening_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/>
         </row>
         <row id="pdcgpr3">
             <label id="PatronSummaryContact_other_phone_label" class="copyable text_left phone label other_phone"
                 value="&staff.patron_display.other_phone.label;" />
-            <description id="patron_other_phone" class="copyable phone value other_phone"/> 
+            <description id="patron_other_phone" class="copyable phone value other_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/> 
         </row>
         <row id="pdsgpr4"><label id="pdsgpr4l" value=" "/></row>
         <row id="pdsgpr4a">
index 5b2e9c2..3687fff 100644 (file)
                 <row id="pdcgpr1">
                     <label id="PatronSummaryContact_day_phone_label" class="copyable text_left phone label day_phone"
                         value="&staff.patron_display.day_phone.label;" />
-                    <description id="patron_day_phone" class="copyable phone value day_phone"/> 
+                    <description id="patron_day_phone" class="copyable phone value day_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/> 
                 </row>
                 <row id="pdcgpr2">
                     <label id="PatronSummaryContact_evening_phone_label" class="copyable text_left phone label evening_phone"
                         value="&staff.patron_display.evening_phone.label;" />
-                    <description id="patron_evening_phone" class="copyable phone value evening_phone"/>
+                    <description id="patron_evening_phone" class="copyable phone value evening_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/>
                 </row>
                 <row id="pdcgpr3">
                     <label id="PatronSummaryContact_other_phone_label" class="copyable text_left phone label other_phone"
                         value="&staff.patron_display.other_phone.label;" />
-                    <description id="patron_other_phone" class="copyable phone value other_phone"/> 
+                    <description id="patron_other_phone" class="copyable phone value other_phone click_link" onclick="try { copy_to_clipboard(event); } catch(E) { alert(E); }"/> 
                 </row>
             </rows>
         </grid>
index abf7676..bca48dc 100644 (file)
@@ -29,6 +29,30 @@ treechildren::-moz-tree-cell-text(selected,focus) {
 * { font-size-adjust: .5; }
 */
 
+.ALL_FONTS_SMALLER * { font-size-adjust: .3 !important;}
+.ALL_FONTS_LARGER * { font-size-adjust: 1.1 !important; }
+.ALL_FONTS_XX_SMALL * { font-size: xx-small !important; }
+.ALL_FONTS_X_SMALL * { font-size: x-small !important; }
+.ALL_FONTS_SMALL * { font-size: small !important; }
+.ALL_FONTS_MEDIUM * { font-size: medium !important; }
+.ALL_FONTS_LARGE * { font-size: large !important; }
+.ALL_FONTS_X_LARGE * { font-size: x-large !important; }
+.ALL_FONTS_XX_LARGE * { font-size: xx-large !important; }
+.ALL_FONTS_5PT * { font-size: 5pt !important; }
+.ALL_FONTS_6PT * { font-size: 6pt !important; }
+.ALL_FONTS_7PT * { font-size: 7pt !important; }
+.ALL_FONTS_8PT * { font-size: 8pt !important; }
+.ALL_FONTS_9PT * { font-size: 9pt !important; }
+.ALL_FONTS_10PT * { font-size: 10pt !important; }
+.ALL_FONTS_11PT * { font-size: 11pt !important; }
+.ALL_FONTS_12PT * { font-size: 12pt !important; }
+.ALL_FONTS_13PT * { font-size: 13pt !important; }
+.ALL_FONTS_14PT * { font-size: 14pt !important; }
+.ALL_FONTS_15PT * { font-size: 15pt !important; }
+.ALL_FONTS_16PT * { font-size: 16pt !important; }
+.ALL_FONTS_17PT * { font-size: 17pt !important; }
+.ALL_FONTS_18PT * { font-size: 18pt !important; }
+
 .ALL_FONTS_SMALLER *|* { font-size-adjust: .3 !important;}
 .ALL_FONTS_LARGER *|* { font-size-adjust: 1.1 !important; }
 .ALL_FONTS_XX_SMALL *|* { font-size: xx-small !important; }
@@ -58,6 +82,8 @@ treechildren::-moz-tree-cell-text(selected,focus) {
 *|textarea:focus { background-color: #DDFFDD; }
 *|input:focus { background-color: #DDFFDD; }
 
+button.sym {width:2em; min-width:1em; }
+
 .outline_me { -moz-outline: solid; }
 .clipboard_outline_me { -moz-outline: dotted thin gray; }