From 29e67a35aaf3f5e705b785a43627d297e9db01e5 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 8 Aug 2007 18:52:07 +0000 Subject: [PATCH] trying out a menu-button git-svn-id: svn://svn.open-ils.org/ILS/trunk@7642 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../xul/staff_client/server/cat/record_buckets.js | 121 +++++++++++---------- 1 file changed, 61 insertions(+), 60 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 dd418e3fda..a326569abd 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.js +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.js @@ -10,6 +10,63 @@ cat.record_buckets = function (params) { this.first_pause = true; } +cat.record_buckets.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.record_buckets.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); + } +} + + cat.record_buckets.prototype = { 'selection_list1' : [], 'selection_list2' : [], @@ -469,22 +526,22 @@ cat.record_buckets.prototype = { 'cmd_export_records_usmarc' : [ ['command'], - function () { return cat.export_records('usmarc') } + function () { return cat.record_buckets.export_records('usmarc') } ], 'cmd_export_records_unimarc' : [ ['command'], - function () { return cat.export_records('unimarc') } + function () { return cat.record_buckets.export_records('unimarc') } ], 'cmd_export_records_xml' : [ ['command'], - function () { return cat.export_records('xml') } + function () { return cat.record_buckets.export_records('xml') } ], 'cmd_export_records_bre' : [ ['command'], - function () { return cat.export_records('bre') } + function () { return cat.record_buckets.export_records('bre') } ], 'cmd_merge_records' : [ @@ -728,62 +785,6 @@ 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'); -- 2.11.0