From 7fb75a7b6b8c1d1972550076d23fd109fe0f5735 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 2 Oct 2006 15:22:20 +0000 Subject: [PATCH] wired up folder share/unshare actions, got folder delete working for all the types, added some sanity checks ot report editor git-svn-id: svn://svn.open-ils.org/ILS/trunk@6356 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/reports/oils_rpt_builder.js | 5 +- Open-ILS/web/reports/oils_rpt_folder_manager.xhtml | 30 ++++++++- Open-ILS/web/reports/oils_rpt_folder_window.js | 74 +++++++++++++++++++--- Open-ILS/web/reports/oils_rpt_report_editor.js | 8 +++ Open-ILS/web/reports/oils_rpt_utils.js | 6 ++ 5 files changed, 108 insertions(+), 15 deletions(-) diff --git a/Open-ILS/web/reports/oils_rpt_builder.js b/Open-ILS/web/reports/oils_rpt_builder.js index 4dcd95a7f5..0b05072517 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.js +++ b/Open-ILS/web/reports/oils_rpt_builder.js @@ -39,11 +39,12 @@ function oilsReportBuilderSave() { tmpl.folder(new CGI().param('folder')); tmpl.data(js2JSON(oilsRpt.def)); - _debug('folder = ' + tmpl.folder()); - if(!confirm('Name : '+tmpl.name() + '\nDescription: ' + tmpl.description()+'\nSave Template?')) return; + debugFMObject(tmpl); + return; /* XXX */ + var req = new Request(OILS_RPT_CREATE_TEMPLATE, SESSION, tmpl); req.callback( diff --git a/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml b/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml index b1a8203841..723c2dbdcd 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml +++ b/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml @@ -47,14 +47,27 @@ +
+ + + + + + + + +
Share with:
+ +
+
+ + Are you sure you wish to change this folder's name? - - Are you sure you wish to create new subfolder - Are you sure you wish to delete this folder? @@ -64,5 +77,16 @@ This folder may not be deleted because it is not empty. + + This folder is already shared + + + This folder is not shared + + + Are you sure you wish to hide this folder? + + + diff --git a/Open-ILS/web/reports/oils_rpt_folder_window.js b/Open-ILS/web/reports/oils_rpt_folder_window.js index 5c6541f0c6..a0c8473cd3 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.js +++ b/Open-ILS/web/reports/oils_rpt_folder_window.js @@ -117,15 +117,65 @@ oilsRptFolderWindow.prototype.drawEditActions = function() { case 'delete': obj.doFolderDelete(); break; + case 'share': + obj.shareFolder(); + break; + case 'unshare': + obj.unShareFolder(); + break; } } } +oilsRptFolderWindow.prototype.shareFolder = function() { + var folder = this.folderNode.folder; + if(isTrue(folder.shared())) + return alertId('oils_rpt_folder_already_shared'); + unHideMe(DOM.oils_rpt_folder_manager_share_div); + + var orgsel = new oilsRptMyOrgsWidget( + DOM.oils_rpt_folder_manager_share_lib_picker, USER.ws_ou()); + orgsel.draw(); + + var type = this.type; + DOM.oils_rpt_folder_manager_share_submit.onclick = function() { + folder.shared('t'); + folder.share_with(orgsel.getValue()); + oilsRptUpdateFolder( folder, type, + function(success) { + if(success) { + oilsRptAlertSuccess(); + oilsRptCurrentFolderManager.draw(); + } + } + ); + } +} + +oilsRptFolderWindow.prototype.unShareFolder = function() { + var folder = this.folderNode.folder; + if(!isTrue(folder.shared())) + return alertId('oils_rpt_folder_already_unshared'); + if(!confirmId('oils_rpt_folder_unshare_confirm')) return; + folder.shared('f'); + var type = this.type; + oilsRptUpdateFolder( folder, type, + function(success) { + if(success) { + oilsRptAlertSuccess(); + oilsRptCurrentFolderManager.draw(); + } + } + ); +} + + oilsRptFolderWindow.prototype.hideFolderActions = function() { hideMe(DOM.oils_rpt_folder_manager_change_name_div); hideMe(DOM.oils_rpt_folder_manager_create_sub); + hideMe(DOM.oils_rpt_folder_manager_share_div); } @@ -346,16 +396,14 @@ oilsRptFolderWindow.prototype.setFolderEditActions = function() { if( folder.shared() == 't' ) folder.share_with( obj.myOrgSelector.getValue() ); - if(confirm(DOM.oils_rpt_folder_manager_new_confirm.innerHTML + ' "'+folder.name()+'"')) { - oilsRptCreateFolder(folder, obj.type, - function(success) { - if(success) { - oilsRptAlertSuccess(); - oilsRptCurrentFolderManager.draw(); - } + oilsRptCreateFolder(folder, obj.type, + function(success) { + if(success) { + oilsRptAlertSuccess(); + oilsRptCurrentFolderManager.draw(); } - ); - } + } + ); } } @@ -370,7 +418,13 @@ oilsRptFolderWindow.prototype.doFolderDelete = function() { /* lets see if the folder has contents */ var req = new Request(OILS_RPT_FETCH_FOLDER_DATA, - SESSION, this.type, this.folderNode.folder.id()); + SESSION, this.type, this.folderNode.folder.id(), 1); + + if(this.type == 'output') { + req = new Request(OILS_RPT_FETCH_OUTPUT, + SESSION, this.folderNode.folder.id(), 1); + } + var obj = this; req.send(); diff --git a/Open-ILS/web/reports/oils_rpt_report_editor.js b/Open-ILS/web/reports/oils_rpt_report_editor.js index f071f28f82..b9dcb2e11b 100644 --- a/Open-ILS/web/reports/oils_rpt_report_editor.js +++ b/Open-ILS/web/reports/oils_rpt_report_editor.js @@ -51,6 +51,9 @@ function oilsRptReportEditor(rptObject, folderWindow) { oilsRptReportEditor.prototype.save = function() { var report = new rr(); + if(!this.selectedFolder) + return alert('Please provide a report folder'); + report.owner( USER.id() ); report.template( this.template.id() ); report.folder( this.selectedFolder.folder.id() ); @@ -59,6 +62,7 @@ oilsRptReportEditor.prototype.save = function() { report.recur(this.paramEditor.recur()); report.recurance(this.paramEditor.recurInterval()); + /* collect the param data */ var data = {}; for( var p in this.paramEditor.params ) { @@ -92,6 +96,9 @@ oilsRptReportEditor.prototype.save = function() { _debug("built run_time "+time); } + if(!this.selectedOutputFolder) + return alert('Please provide an output folder'); + var schedule = new rs(); schedule.folder(this.selectedOutputFolder.folder.id()); schedule.email(DOM.oils_rpt_param_editor_sched_email.value); @@ -105,6 +112,7 @@ oilsRptReportEditor.prototype.save = function() { schedule.chart_bar((DOM.oils_rpt_format_chart_bar.checked) ? 't' : 'f'); schedule.chart_line((DOM.oils_rpt_format_chart_line.checked) ? 't' : 'f'); + debugFMObject(report); debugFMObject(schedule); diff --git a/Open-ILS/web/reports/oils_rpt_utils.js b/Open-ILS/web/reports/oils_rpt_utils.js index 83a6764d58..71f3199f47 100644 --- a/Open-ILS/web/reports/oils_rpt_utils.js +++ b/Open-ILS/web/reports/oils_rpt_utils.js @@ -117,11 +117,13 @@ function nodeText(id) { return ""; } +/* function print_tabs(t) { var r = ''; for (var j = 0; j < t; j++ ) { r = r + " "; } return r; } +*/ function oilsRptDebug() { @@ -135,7 +137,10 @@ function oilsRptDebug() { oilsRptDebugWindow.document.body.innerHTML = oilsRpt.toHTMLString(); } + + /* pretty print JSON */ +/* function formatJSON(s) { var r = ''; var t = 0; for (var i in s) { @@ -151,6 +156,7 @@ function formatJSON(s) { } return r; } +*/ function print_tabs_html(t) { -- 2.11.0