fancy_prompt and modal_xulG bug where window.open was being used instead of the JSAN...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 16 Jul 2007 20:14:11 +0000 (20:14 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 16 Jul 2007 20:14:11 +0000 (20:14 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_2@7556 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/cat/record_buckets.js
Open-ILS/xul/staff_client/server/patron/hold_notices.xul

index c11fe24..ac6191b 100644 (file)
@@ -508,7 +508,8 @@ cat.record_buckets.prototype = {
                                                                xml += '</tr></table></form>';
                                                                //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
                                                                //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
-                                                               window.open(
+                                                               JSAN.use('util.window'); var win = new util.window();
+                                                               var fancy_prompt_data = win.open(
                                                                        urls.XUL_FANCY_PROMPT,
                                                                        //+ '?xml_in_stash=temp_merge_mid'
                                                                        //+ '&top_xml_in_stash=temp_merge_top'
@@ -518,15 +519,15 @@ cat.record_buckets.prototype = {
                                                                                'top_xml' : top_xml, 'xml' : xml, 'title' : 'Record Merging'
                                                                        }
                                                                );
-                                                               obj.data.stash_retrieve();
-                                                               if (obj.data.fancy_prompt_data == '') { alert('Merge Aborted'); return; }
+                                                               //obj.data.stash_retrieve();
+                                                               if (fancy_prompt_data.fancy_status == 'incomplete') { alert('Merge Aborted'); return; }
                                                                var robj = obj.network.simple_request('MERGE_RECORDS', 
                                                                        [ 
                                                                                ses(), 
-                                                                               obj.data.fancy_prompt_data.lead, 
+                                                                               fancy_prompt_data.lead, 
                                                                                util.functional.filter_list( record_ids,
                                                                                        function(o) {
-                                                                                               return o != obj.data.fancy_prompt_data.lead;
+                                                                                               return o != fancy_prompt_data.lead;
                                                                                        }
                                                                                )
                                                                        ]
@@ -550,6 +551,82 @@ cat.record_buckets.prototype = {
 
                                                }
                                        ],
+                                       
+                                       'cmd_delete_records' : [
+                                               ['command'],
+                                               function() {
+                                                       try {
+                                                               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; // docid
+                                                                       }
+                                                               );
+
+                                                               netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
+                                                               var top_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" >';
+                                                               top_xml += '<description>Delete these records?</description>';
+                                                               top_xml += '<hbox><button id="lead" disabled="false" label="Delete" name="fancy_submit"/><button label="Cancel" accesskey="C" name="fancy_cancel"/></hbox></vbox>';
+
+                                                               var xml = '<form xmlns="http://www.w3.org/1999/xhtml">';
+                                                               xml += '<table><tr valign="top">';
+                                                               for (var i = 0; i < record_ids.length; i++) {
+                                                                       xml += '<td>Record #' + record_ids[i] + '</td>';
+                                                               }
+                                                               xml += '</tr><tr valign="top">';
+                                                               for (var i = 0; i < record_ids.length; i++) {
+                                                                       xml += '<td nowrap="nowrap"><iframe src="' + urls.XUL_BIB_BRIEF; 
+                                                                       xml += '?docid=' + record_ids[i] + '"/></td>';
+                                                               }
+                                                               xml += '</tr><tr valign="top">';
+                                                               for (var i = 0; i < record_ids.length; i++) {
+                                                                       html = obj.network.simple_request('MARC_HTML_RETRIEVE',[ record_ids[i] ]);
+                                                                       xml += '<td nowrap="nowrap"><iframe style="min-height: 1000px; min-width: 300px;" flex="1" src="data:text/html,' + window.escape(html) + '"/></td>';
+                                                               }
+                                                               xml += '</tr></table></form>';
+                                                               //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
+                                                               //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
+                                                               JSAN.use('util.window'); var win = new util.window();
+                                                               var fancy_prompt_data = win.open(
+                                                                       urls.XUL_FANCY_PROMPT,
+                                                                       //+ '?xml_in_stash=temp_merge_mid'
+                                                                       //+ '&top_xml_in_stash=temp_merge_top'
+                                                                       //+ '&title=' + window.escape('Record Purging'),
+                                                                       'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
+                                                                       {
+                                                                               'top_xml' : top_xml, 'xml' : xml, 'title' : 'Record Purging'
+                                                                       }
+                                                               );
+                                                               //obj.data.stash_retrieve();
+                                                               if (fancy_prompt_data.fancy_status == 'incomplete') { alert('Delete Aborted'); return; }
+                                                               var s = '';
+                                                               for (var i = 0; i < record_ids.length; i++) {
+                                                                       var robj = obj.network.simple_request('FM_BRE_DELETE',[ses(),record_ids[i]]);
+                                                                       if (typeof robj.ilsevent != 'undefined') {
+                                                                               if (!s) s = 'Error deleting these records:\n';
+                                                                               s += 'Record #' + record_ids[i] + ' : ' + robj.textcode + ' : ' + robj.desc + '\n';
+                                                                       }
+                                                               }
+                                                               if (s) { alert(s); } else { alert('Records deleted.'); }
+
+                                                               obj.render_pending_records(); // FIXME -- need a generic refresh for lists
+                                                               setTimeout(
+                                                                       function() {
+                                                                               JSAN.use('util.widgets'); 
+                                                                               util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+                                                                       }, 0
+                                                               );
+                                                       } catch(E) {
+                                                               obj.error.standard_unexpected_error_alert('Records were not likely deleted.',E);
+                                                       }
+
+                                               }
+                                       ],
+
                                        'cmd_broken' : [
                                                ['command'],
                                                function() { alert('Not Yet Implemented'); }
index 5fe168a..85f5634 100644 (file)
                                //g.data.init({'via':'stash'});
                                //g.data.temp_notification_xml = xml; g.data.stash('temp_notification_xml');
                                JSAN.use('util.window'); var win = new util.window();
-                               var fancy_prompt_data = window.open(
+                               var fancy_prompt_data = win.open(
                                        urls.XUL_FANCY_PROMPT,
                                        //+ '?xml_in_stash=temp_notification_xml'
                                        //+ '&focus=' + window.escape('method')