From a564105354c6a18d73c2c9bb696ca9f4bc1051e6 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 8 Aug 2007 18:48:44 +0000 Subject: [PATCH] trying out a menu-button git-svn-id: svn://svn.open-ils.org/ILS/trunk@7641 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../xul/staff_client/server/cat/record_buckets.js | 118 ++++++++++++--------- .../xul/staff_client/server/cat/record_buckets.xul | 5 +- .../server/cat/record_buckets_overlay.xul | 10 +- 3 files changed, 79 insertions(+), 54 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets.js b/Open-ILS/xul/staff_client/server/cat/record_buckets.js index f3e155c549..dd418e3fda 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.js +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.js @@ -467,58 +467,24 @@ cat.record_buckets.prototype = { } ], - 'cmd_export_records' : [ + 'cmd_export_records_usmarc' : [ ['command'], - function() { - function pick_file() { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var nsIFilePicker = Components.interfaces.nsIFilePicker; - var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance( nsIFilePicker ); - fp.init( window, "Save File As", nsIFilePicker.modeSave ); - fp.defaultString = 'bucket.mrc'; - fp.appendFilters( nsIFilePicker.filterAll ); - var result = fp.show(); - if ( (result == nsIFilePicker.returnOK || result == nsIFilePicker.returnReplace) && fp.file ) { - return fp.file; - } else { - return null; - } - } - - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - obj.list2.select_all(); - obj.data.stash_retrieve(); - JSAN.use('util.functional'); - - var record_ids = util.functional.map_list( - obj.list2.dump_retrieve_ids(), - function (o) { return JSON2js(o).docid } - ); - - var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"] - .createInstance(Components.interfaces.nsIWebBrowserPersist); - - var proto_uri = 'http://' + window.location.hostname + '/exporter'; - - dump('Record Export URI is ' + proto_uri + '?id=' + record_ids.join('&id=') + '\n'); + function () { return cat.export_records('usmarc') } + ], - var uri = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService) - .newURI( proto_uri + '?id=' + record_ids.join('&id='), null, null ); + 'cmd_export_records_unimarc' : [ + ['command'], + function () { return cat.export_records('unimarc') } + ], - var file = pick_file(); - - if (file) { - persist.saveURI(uri,null,null,null,null,file); - } else { - alert("File not downloaded."); - } + 'cmd_export_records_xml' : [ + ['command'], + function () { return cat.export_records('xml') } + ], - } catch(E) { - obj.error.standard_unexpected_error_alert('Records could not be exported.',E); - } - } + 'cmd_export_records_bre' : [ + ['command'], + function () { return cat.export_records('bre') } ], 'cmd_merge_records' : [ @@ -762,6 +728,62 @@ cat.record_buckets.prototype = { }, +}; + +cat.pick_file = function (default) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var nsIFilePicker = Components.interfaces.nsIFilePicker; + var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance( nsIFilePicker ); + + fp.init( window, "Save File As", nsIFilePicker.modeSave ); + if (default) + fp.defaultString = default; + + fp.appendFilters( nsIFilePicker.filterAll ); + + var result = fp.show(); + if ( (result == nsIFilePicker.returnOK || result == nsIFilePicker.returnReplace) && fp.file ) { + return fp.file; + } else { + return null; + } +} + +cat.export_records = function(output_type) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + obj.list2.select_all(); + obj.data.stash_retrieve(); + JSAN.use('util.functional'); + + var record_ids = util.functional.map_list( + obj.list2.dump_retrieve_ids(), + function (o) { return JSON2js(o).docid } + ); + + var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"] + .createInstance(Components.interfaces.nsIWebBrowserPersist); + + var proto_uri = 'http://' + window.location.hostname + '/exporter'; + + dump('Record Export URI is ' + proto_uri + '?id=' + record_ids.join('&id=') + '\n'); + + var uri = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService) + .newURI( proto_uri + '?id=' + record_ids.join('&id='), null, null ); + + var file = pick_file('bucket.' + output_type); + + if (file) { + persist.saveURI(uri,null,null,null,null,file); + } else { + alert("File not downloaded."); + } + + } catch(E) { + obj.error.standard_unexpected_error_alert('Records could not be exported.',E); + } } dump('exiting cat.record_buckets.js\n'); diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets.xul b/Open-ILS/xul/staff_client/server/cat/record_buckets.xul index 0aecf0c4bb..dbf10e0ce8 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.xul +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.xul @@ -93,7 +93,10 @@ - + + + + diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul b/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul index aedda7b913..3f185bd934 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul @@ -72,12 +72,12 @@ -- 2.11.0