fixing incoming Unicode characters at record save time
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 1 Dec 2006 18:16:58 +0000 (18:16 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 1 Dec 2006 18:16:58 +0000 (18:16 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_0@6638 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/cat/marcedit.js

index a48b566..518b93e 100644 (file)
@@ -63,6 +63,13 @@ function createControlField (tag,data) {
        return cf;
 }
 
+function xml_escape_unicode ( str ) {
+       return str.replace(
+               /([\u0080-\ufffe])/g,
+               function (r,s) { return "&#x" + s.charCodeAt(0).toString(16) + ";"; }
+       );
+}
+
 function my_init() {
        try {
                // Fake xulG for standalone...
@@ -85,7 +92,12 @@ function my_init() {
                // End faking part...
 
                document.getElementById('save-button').setAttribute('label', window.xulG.save.label);
-               document.getElementById('save-button').setAttribute('oncommand', 'mangle_005(); window.xulG.save.func(xml_record.toXMLString()); loadRecord(xml_record);');
+               document.getElementById('save-button').setAttribute('oncommand',
+                       'mangle_005(); ' + 
+                       'var xml_string = xml_escape_unicode( xml_record.toXMLString() ); ' + 
+                       'window.xulG.save.func( xml_string ); ' +
+                       'loadRecord(xml_record);'
+               );
 
                if (window.xulG.record.url) {
                        var req =  new XMLHttpRequest();