Add a feature authored by Joscha Filius for the International Institue of
authorsenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 May 2011 15:42:00 +0000 (15:42 +0000)
committersenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 May 2011 15:42:00 +0000 (15:42 +0000)
Social History: a diacritical palette for the MARC editor!

Afelonne Doek of IISH wants the community to benefit from this code.  To try
it out, press control S in the marc editor (reguarly non-flat-text view).

You can insert the characters you see, and you can right click on entries in
your palette to customize.  Customizations /should/ persist through staff client
restart (untested by me so far).

This should make cataloging in multiple (Western-ish) languages at once easier.

Below I copy and paste some of Joscha's message to the list where he introduced
this code:

> *Bugs:*
> A known bug is that is you switch marc edit styles back and forth the
> listener trigger won't work anymore. Also for a far as I know there is at
> least another bug concerning layout which is as far as I know not the result
> of my doing.
>
> *Here comes a possibly nasty part*, to ensure that the diacriticals remain
> intact throughout the persist I've changed global_util.js to URL encode and
> URL decode all stored values. This might cause backwards incompatibility
> with values that are already stored for other purposes without encoding.
> This needs to be checked.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@20425 dcc99617-32d9-48b4-a31d-7c20da2025e4

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/skin/global.css

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..b1a067b 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 &mp;&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 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; }