From: erickson Date: Wed, 4 Oct 2006 21:02:55 +0000 (+0000) Subject: better management for batch folder item deletions, early thoughts on order-by handling X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=9d344d426b912a050354871bace43570bbb53ea2;p=evergreen%2Fpines.git better management for batch folder item deletions, early thoughts on order-by handling git-svn-id: svn://svn.open-ils.org/ILS/trunk@6385 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/reports/oils_rpt.css b/Open-ILS/web/reports/oils_rpt.css index 7374c9731e..dda5812904 100644 --- a/Open-ILS/web/reports/oils_rpt.css +++ b/Open-ILS/web/reports/oils_rpt.css @@ -196,7 +196,7 @@ button { #oils_rpt_folder_window_contents_div { width: 100%; - margin-top: 15px; + margin-top: 5px; } .oils_rpt_param_table thead td { diff --git a/Open-ILS/web/reports/oils_rpt.xhtml b/Open-ILS/web/reports/oils_rpt.xhtml index ecfb417439..cba0efdd4b 100644 --- a/Open-ILS/web/reports/oils_rpt.xhtml +++ b/Open-ILS/web/reports/oils_rpt.xhtml @@ -123,13 +123,6 @@ - - Action Succeeded - - - - - diff --git a/Open-ILS/web/reports/oils_rpt_builder.js b/Open-ILS/web/reports/oils_rpt_builder.js index 87df9734e9..53020cf768 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.js +++ b/Open-ILS/web/reports/oils_rpt_builder.js @@ -22,10 +22,11 @@ function oilsReportBuilderReset() { oilsRpt.name = n; oilsRptDisplaySelector = DOM.oils_rpt_display_selector; oilsRptFilterSelector = DOM.oils_rpt_filter_selector; - oilsRptHavingSelector= DOM.oils_rpt_agg_filter_selector; + oilsRptHavingSelector = DOM.oils_rpt_agg_filter_selector; removeChildren(oilsRptDisplaySelector); removeChildren(oilsRptFilterSelector); removeChildren(oilsRptHavingSelector); + //removeChildren(oilsRptOrderBySelector); oilsRptResetParams(); } @@ -523,6 +524,7 @@ function oilsRptHideEditorDivs() { hideMe(DOM.oils_rpt_tform_div); hideMe(DOM.oils_rpt_filter_div); hideMe(DOM.oils_rpt_agg_filter_div); + hideMe(DOM.oils_rpt_order_by_div); } @@ -553,6 +555,7 @@ function oilsRptDrawDataWindow(path) { oilsRptDrawTransformWindow(path, col, cls, field); oilsRptDrawFilterWindow(path, col, cls, field); oilsRptDrawHavingWindow(path, col, cls, field); + oilsRptDrawOrderByWindow(path, col, cls, field); buildFloatingDiv(div, 600); @@ -570,6 +573,8 @@ function oilsRptSetDataWindowActions(div) { function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_filter_div)}; DOM.oils_rpt_agg_filter_tab.onclick = function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_agg_filter_div)}; + DOM.oils_rpt_order_by_tab.onclick = + function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_order_by_div)}; DOM.oils_rpt_tform_tab.onclick(); DOM.oils_rpt_column_editor_close_button.onclick = function(){hideMe(div);}; @@ -637,9 +642,20 @@ function oilsRptDrawTransformWindow(path, col, cls, field) { DOM.oils_rpt_tform_label_input.value, tformPicker.getSelected() ); }; - DOM.oils_rpt_tform_label_input.focus(); DOM.oils_rpt_tform_label_input.select(); _debug("Building transform window for datatype "+dtype); } + + +function oilsRptDrawOrderByWindow(path, col, cls, field) { + var sel = DOM.oils_rpt_order_by_selector; + removeChildren(sel); + DOM.oils_rpt_order_by_submit.onclick = function() { + alert('make me work'); + } +} + + + diff --git a/Open-ILS/web/reports/oils_rpt_builder.xhtml b/Open-ILS/web/reports/oils_rpt_builder.xhtml index 5d1e890eb0..0e3ac94d98 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.xhtml +++ b/Open-ILS/web/reports/oils_rpt_builder.xhtml @@ -78,9 +78,10 @@ - - - + + + +
Display ItemsFiltersAggregate FiltersDisplay ItemsFiltersAggregate FiltersColumn Sorting
@@ -144,6 +145,38 @@ + +
+
+
+ Select how the columns should be sorted +
+
+ + + + + +
Choose the direction the sorting should occur: + +
+
+
+ +
+ + +
diff --git a/Open-ILS/web/reports/oils_rpt_common.xhtml b/Open-ILS/web/reports/oils_rpt_common.xhtml index 9f1de1d143..1c60da5d24 100644 --- a/Open-ILS/web/reports/oils_rpt_common.xhtml +++ b/Open-ILS/web/reports/oils_rpt_common.xhtml @@ -54,3 +54,11 @@ + + Action Succeeded + + + + Action Failed + + diff --git a/Open-ILS/web/reports/oils_rpt_folder_window.js b/Open-ILS/web/reports/oils_rpt_folder_window.js index b552697b1c..6d107cbe74 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.js +++ b/Open-ILS/web/reports/oils_rpt_folder_window.js @@ -15,7 +15,7 @@ function oilsRptFolderWindow(type, folderId) { oilsRptFolderWindow.prototype.draw = function() { - _debug(this.folderNode.folder.owner().id() + ' : ' + USER.id()); + _debug('drawing folder window for ' + this.folderNode.folder.name() ); var obj = this; setSelector(DOM.oils_rpt_output_limit_selector, oilsRptOutputLimit); @@ -188,6 +188,13 @@ oilsRptFolderWindow.prototype.doFolderAction = function() { var action = getSelectorVal(DOM.oils_rpt_folder_contents_action_selector); var obj = this; + var successCallback = function(errid) { + if(errid) alertId(errid) + else oilsRptAlertSuccess(); + obj.draw(); + }; + + var obj = this; switch(action) { case 'create_report' : hideMe(DOM.oils_rpt_folder_table_right_td); @@ -196,39 +203,43 @@ oilsRptFolderWindow.prototype.doFolderAction = function() { new oilsRptReportEditor(new oilsReport(objs[0]), this); break; case 'delete_report' : - for(var r = 0; r < objs.length; r++) - this.deleteReport(objs[r]); + if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return; + this.deleteReports(objs, 0, successCallback); break; + case 'delete_template' : - for(var r = 0; r < objs.length; r++) - this.deleteTemplate(objs[r]); + if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return; + this.deleteTemplates(objs, 0, successCallback); break; + case 'show_output': this.showOutput(objs[0]); break; + case 'delete_output': - for( var i = 0; i < objs.length; i++ ) { - if( objs[i].runner().id() != USER.id() ) - return alertId('oils_rpt_folder_contents_no_delete'); - } - this.deleteOutputs(objs,0, - function(){ - oilsRptAlertSuccess(); - obj.draw(); - } - ); + if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return; + this.deleteOutputs(objs,0, successCallback); break; } } -oilsRptFolderWindow.prototype.deleteOutputs = function(list, idx, callback) { - if( idx >= list.length ) return callback(); - var req = new Request(OILS_RPT_DELETE_SCHEDULE,SESSION,list[idx].id()); - var obj = this; - req.callback(function(){obj.deleteOutputs(list, ++idx, callback);}); - req.send(); +oilsRptFolderWindow.prototype.deleteOutputs = function(list, idx, callback, errid) { + if( idx >= list.length ) return callback(errid); + var output = list[idx]; + + if( list.runner().id() != USER.id() ) { + this.deleteOutputs(list, ++idx, + callback, 'oils_rpt_folder_contents_no_delete'); + + } else { + _debug('deleting output ' + output.id()); + var req = new Request(OILS_RPT_DELETE_SCHEDULE,SESSION,output.id()); + var obj = this; + req.callback(function(){obj.deleteOutputs(list, ++idx, callback, errid);}); + req.send(); + } } oilsRptFolderWindow.prototype.showOutput = function(sched) { @@ -241,47 +252,75 @@ oilsRptFolderWindow.prototype.showOutput = function(sched) { } -oilsRptFolderWindow.prototype.deleteReport = function(report) { - if( report.owner().id() != USER.id() ) - return alertId('oils_rpt_folder_contents_no_delete'); - if(!confirmId('oils_rpt_folder_contents_confirm_report_delete')) return; - var req = new Request(OILS_RPT_DELETE_REPORT, SESSION, report.id()); - req.callback( - function(r) { - var res = r.getResultObject(); - if( res == 1 ) { - oilsRptAlertSuccess(); - oilsRptCurrentFolderManager.draw(); +oilsRptFolderWindow.prototype.deleteReports = function(list, idx, callback, errid) { + if( idx >= list.length ) return callback(errid); + var report = list[idx]; + + if( report.owner().id() != USER.id() ) { + this.deleteReports(list, ++idx, + callback, 'oils_rpt_folder_contents_no_delete'); + + } else { + + var obj = this; + var req0 = new Request(OILS_RPT_REPORT_HAS_OUTS, SESSION, report.id()); + req0.callback( + function(r0) { + var r0es = r0.getResultObject(); + if( r0es != '0' ) { + obj.deleteReports(list, ++idx, + callback, 'oils_rpt_folder_contents_report_no_delete'); + } else { + _debug('deleting report ' + report.id()); + var req = new Request(OILS_RPT_DELETE_REPORT, SESSION, report.id()); + req.callback(function(r) { + var res = r.getResultObject(); + if( res != 1 ) return oilsRptAlertFailure(); + obj.deleteReports(list, ++idx, callback, errid) + }); + req.send(); + } } - } - ); - req.send(); + ); + + req0.send(); + } } -oilsRptFolderWindow.prototype.deleteTemplate = function(tmpl) { - if( tmpl.owner().id() != USER.id() ) - return alertId('oils_rpt_folder_contents_no_delete'); - var req0 = new Request( OILS_RPT_TEMPLATE_HAS_RPTS, SESSION, tmpl.id() ); - req0.callback( - function(r0) { - var resp = r0.getResultObject(); - if( resp != '0' ) - return alertId('oils_rpt_folder_contents_template_no_delete'); - if(!confirmId('oils_rpt_folder_contents_confirm_template_delete')) return; - var req = new Request(OILS_RPT_DELETE_TEMPLATE, SESSION, tmpl.id()); - req.callback( - function(r) { - var res = r.getResultObject(); - if( res == 1 ) { - oilsRptAlertSuccess(); - oilsRptCurrentFolderManager.draw(); - } +oilsRptFolderWindow.prototype.deleteTemplates = function(list, idx, callback, errid) { + if( idx >= list.length ) return callback(errid); + var tmpl = list[idx]; + + var obj = this; + if( tmpl.owner().id() != USER.id() ) { + this.deleteTemplates(list, ++idx, + callback, 'oils_rpt_folder_contents_no_delete'); + + } else { + + var req0 = new Request( OILS_RPT_TEMPLATE_HAS_RPTS, SESSION, tmpl.id() ); + req0.callback( + function(r0) { + var resp = r0.getResultObject(); + + if( resp != '0' ) { + obj.deleteTemplates(list, ++idx, + callback, 'oils_rpt_folder_contents_template_no_delete'); + + } else { + _debug('deleting template ' + tmpl.id()); + var req = new Request(OILS_RPT_DELETE_TEMPLATE, SESSION, tmpl.id()); + req.callback(function(r) { + var res = r.getResultObject(); + if( res != 1 ) return oilsRptAlertFailure(); + obj.deleteTemplates(list, ++idx, callback, errid) + }); + req.send(); } - ); - req.send(); - } - ); - req0.send(); + } + ); + req0.send(); + } } diff --git a/Open-ILS/web/reports/oils_rpt_folder_window.xhtml b/Open-ILS/web/reports/oils_rpt_folder_window.xhtml index 9ec7c19c2e..629f12f55c 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.xhtml +++ b/Open-ILS/web/reports/oils_rpt_folder_window.xhtml @@ -1,11 +1,15 @@
-
+ + + - + - @@ -46,19 +54,21 @@
+ + Create a new Template for this folder +
+
- - Are you sure you wish to delete the selected report(s)? + + Are you sure you wish to delete the selected item(s)? - - Are you sure you wish to delete the selected template(s)? + + One or more of the selected templates could not be deleted because + there are reports that depend on them. - - The selected template could not be deleted because there are reports - that depend on it. + + One or more of The selected reports could not be deleted because + there are outputs that depend on them. + You may not delete another user's items diff --git a/Open-ILS/web/reports/oils_rpt_utils.js b/Open-ILS/web/reports/oils_rpt_utils.js index 71f3199f47..0e75523405 100644 --- a/Open-ILS/web/reports/oils_rpt_utils.js +++ b/Open-ILS/web/reports/oils_rpt_utils.js @@ -333,6 +333,7 @@ function oilsRptFetchTemplate(id, callback) { function oilsRptAlertSuccess() { alertId('oils_rpt_generic_success'); } +function oilsRptAlertFailure() { alertId('oils_rpt_generic_failure'); } function oilsRptBuildOutputLink(tid, rid, sid) { diff --git a/Open-ILS/web/reports/oils_rpt_vars.js b/Open-ILS/web/reports/oils_rpt_vars.js index 031026fb26..237ec0c1eb 100644 --- a/Open-ILS/web/reports/oils_rpt_vars.js +++ b/Open-ILS/web/reports/oils_rpt_vars.js @@ -38,7 +38,7 @@ var oilsRptFilterSelector; var oilsRptHavingSelector; -var oilsRptOrderBySelector; +//var oilsRptOrderBySelector; /* display the currently building report object in an external window */ var oilsRptDebugWindow; @@ -77,6 +77,7 @@ var OILS_RPT_DELETE_TEMPLATE = 'open-ils.reporter:open-ils.reporter.template.de var OILS_RPT_DELETE_REPORT = 'open-ils.reporter:open-ils.reporter.report.delete'; var OILS_RPT_DELETE_SCHEDULE = 'open-ils.reporter:open-ils.reporter.schedule.delete'; var OILS_RPT_TEMPLATE_HAS_RPTS = 'open-ils.reporter:open-ils.reporter.template_has_reports'; +var OILS_RPT_REPORT_HAS_OUTS = 'open-ils.reporter:open-ils.reporter.report_has_output'; var OILS_RPT_CREATE_REPORT = 'open-ils.reporter:open-ils.reporter.report.create'; var OILS_RPT_CREATE_TEMPLATE = 'open-ils.reporter:open-ils.reporter.template.create'; var OILS_RPT_CREATE_SCHEDULE = 'open-ils.reporter:open-ils.reporter.schedule.create';