trying out a menu-button
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 8 Aug 2007 18:48:44 +0000 (18:48 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 8 Aug 2007 18:48:44 +0000 (18:48 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@7641 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/cat/record_buckets.js
Open-ILS/xul/staff_client/server/cat/record_buckets.xul
Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul

index f3e155c..dd418e3 100644 (file)
@@ -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');
index 0aecf0c..dbf10e0 100644 (file)
                <command id="cmd_record_buckets_reprint" />
                <command id="cmd_record_buckets_done" />
                <command id="cmd_merge_records" />
-               <command id="cmd_export_records" />
+               <command id="cmd_export_records_usmarc" />
+               <command id="cmd_export_records_unimarc" />
+               <command id="cmd_export_records_xml" />
+               <command id="cmd_export_records_bre" />
                <command id="cmd_delete_records" />
                <command id="cmd_sel_opac" />
        </commandset>
index aedda7b..3f185bd 100644 (file)
                <button command="cmd_sel_opac" label="Show All in Catalog" accesskey="S"/>
                <button id="record_buckets_delete_records" command="cmd_delete_records" label="Delete All Records"/>
                <button id="record_buckets_merge_records" command="cmd_merge_records" label="Merge All Records"/>
-               <button id="record_buckets_export_records" command="cmd_export_records" label="Export All Records" type="menu">
+               <button id="record_buckets_export_records" label="Export All Records" type="menu">
                        <menupopup id="record_buckets_export_record_types">
-                               <menuitem value="usmarc" label="MARC21"/>
-                               <menuitem value="unimarc" label="UNIMARC"/>
-                               <menuitem value="xml" label="XML"/>
-                               <menuitem value="bre" label="Evergreen BRE"/>
+                               <menuitem command="cmd_export_records_usmarc" value="usmarc" label="MARC21"/>
+                               <menuitem command="cmd_export_records_unimarc" value="unimarc" label="UNIMARC"/>
+                               <menuitem command="cmd_export_records_xml" value="xml" label="XML"/>
+                               <menuitem command="cmd_export_records_bre" value="bre" label="Evergreen BRE"/>
                        </menupopup>
                </button>
        </hbox>