From 601703b5f0b847ebe653348aa1e2a199118c1486 Mon Sep 17 00:00:00 2001 From: pines Date: Thu, 28 Sep 2006 17:47:18 +0000 Subject: [PATCH] JSAN functional libraries give me trouble.. why can't I use JSAN inside JSAN here? git-svn-id: svn://svn.open-ils.org/ILS/trunk@6250 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../staff_client/chrome/content/util/widgets.js | 53 +++++++++++++++++++--- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/Open-ILS/xul/staff_client/chrome/content/util/widgets.js b/Open-ILS/xul/staff_client/chrome/content/util/widgets.js index 6bc6da99e4..97ba5b6406 100644 --- a/Open-ILS/xul/staff_client/chrome/content/util/widgets.js +++ b/Open-ILS/xul/staff_client/chrome/content/util/widgets.js @@ -25,6 +25,8 @@ util.widgets.EXPORT_OK = [ 'dispatch', 'stop_event', 'set_text', + 'save_attributes', + 'load_attributes', ]; util.widgets.EXPORT_TAGS = { ':all' : util.widgets.EXPORT_OK }; @@ -45,15 +47,19 @@ util.widgets.apply = function(e,attr,attr_value,f) { } util.widgets.save_xml = function (filename,node) { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - JSAN.use('util.file'); var file = new util.file(filename); + JSAN.use('util.file'); var file = new util.file(filename); - node = util.widgets.get(node); - var xml = util.widgets.serialize_node(node); + node = util.widgets.get(node); + var xml = util.widgets.serialize_node(node); - file.write_content('truncate',xml); - file.close(); + file.write_content('truncate',xml); + file.close(); + } catch(E) { + alert('Error in util.widgets.save_xml: ' + E); + } } util.widgets.serialize_node = function(node) { @@ -311,4 +317,39 @@ util.widgets.set_text = function(n,t) { } } +util.widgets.save_attributes = function (file,ids_attrs) { + try { + var blob = {}; + for (var element_id in ids_attrs) { + var attribute_list = ids_attrs[ element_id ]; + if (! blob[ element_id ] ) blob[ element_id ] = {}; + for (var j = 0; j < attribute_list.length; j++) { + blob[ element_id ][ attribute_list[j] ] = document.getElementById( element_id ).getAttribute( attribute_list[j] ); + } + } + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //FIXME - WHY DOES THIS NOT WORK?// JSAN.use('util.file'); var file = new util.file(filename); + file.set_object(blob); file.close(); + } catch(E) { + alert('Error saving preferences: ' + E); + } +} + +util.widgets.load_attributes = function (file) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //FIXME - WHY DOES THIS NOT WORK?// JSAN.use('util.file'); var file = new util.file(filename); + if (file._file.exists()) { + var blob = file.get_object(); file.close(); + for (var element_id in blob) { + for (var attribute in blob[ element_id ]) { + document.getElementById( element_id ).setAttribute(attribute, blob[ element_id ][ attribute ]); + } + } + } + } catch(E) { + alert('Error loading preferences: ' + E); + } +} + dump('exiting util/widgets.js\n'); -- 2.11.0