From 459279c244b1d263dda405c52410b5f8d18eb73f Mon Sep 17 00:00:00 2001 From: erickson Date: Sun, 8 Oct 2006 18:37:18 +0000 Subject: [PATCH] added sanity checks to user params to verify data is getting filled in added permission check to folder sharing git-svn-id: svn://svn.open-ils.org/ILS/trunk@6404 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/reports/oils_rpt.js | 7 +++++-- Open-ILS/web/reports/oils_rpt.xhtml | 2 +- Open-ILS/web/reports/oils_rpt_editor.xhtml | 6 ++++++ Open-ILS/web/reports/oils_rpt_folder_manager.xhtml | 2 +- Open-ILS/web/reports/oils_rpt_folder_window.js | 15 +++++++++++++-- Open-ILS/web/reports/oils_rpt_folders.js | 6 +++++- Open-ILS/web/reports/oils_rpt_report_editor.js | 13 ++++++------- Open-ILS/web/reports/oils_rpt_widget.js | 15 ++++++++++++++- 8 files changed, 51 insertions(+), 15 deletions(-) diff --git a/Open-ILS/web/reports/oils_rpt.js b/Open-ILS/web/reports/oils_rpt.js index 5728bcc9e8..32325a3f18 100644 --- a/Open-ILS/web/reports/oils_rpt.js +++ b/Open-ILS/web/reports/oils_rpt.js @@ -1,3 +1,5 @@ +var perms = [ 'RUN_REPORTS', 'SHARE_REPORT_FOLDER' ]; + function oilsInitReports() { oilsRptIdObjects(); @@ -11,13 +13,14 @@ function oilsInitReports() { fetchUser(cgi.param('ses')); DOM.oils_rpt_user.appendChild(text(USER.usrname())); - fetchHighestPermOrgs(SESSION, USER.id(), ['RUN_REPORTS']); - if( PERMS['RUN_REPORTS'] == -1 ) { + fetchHighestPermOrgs(SESSION, USER.id(), perms); + if( PERMS.RUN_REPORTS == -1 ) { unHideMe(DOM.oils_rpt_permission_denied); hideMe(DOM.oils_rpt_tree_loading); return false; } + oilsRptCookie = new HTTP.Cookies(); oilsRptCurrentOrg = USER.ws_ou(); cookieManager.write(COOKIE_SES, SESSION, -1, '/'); diff --git a/Open-ILS/web/reports/oils_rpt.xhtml b/Open-ILS/web/reports/oils_rpt.xhtml index cba0efdd4b..dbeb6c8b30 100644 --- a/Open-ILS/web/reports/oils_rpt.xhtml +++ b/Open-ILS/web/reports/oils_rpt.xhtml @@ -101,7 +101,7 @@ Share this folder: diff --git a/Open-ILS/web/reports/oils_rpt_editor.xhtml b/Open-ILS/web/reports/oils_rpt_editor.xhtml index a460e1e6b8..f5def67656 100644 --- a/Open-ILS/web/reports/oils_rpt_editor.xhtml +++ b/Open-ILS/web/reports/oils_rpt_editor.xhtml @@ -134,4 +134,10 @@ + + + One or more of the user-defined parameters has been left empty. + Please fill in all fields. + + diff --git a/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml b/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml index 723c2dbdcd..9f70843330 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml +++ b/Open-ILS/web/reports/oils_rpt_folder_manager.xhtml @@ -30,7 +30,7 @@ Share 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 fad99fb9f3..1a4066df57 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.js +++ b/Open-ILS/web/reports/oils_rpt_folder_window.js @@ -75,6 +75,11 @@ oilsRptFolderWindow.prototype.draw = function() { */ this.drawEditActions(); + + + var porg = PERMS.SHARE_REPORT_FOLDER; + if( porg < 1 ) + DOM.oils_rpt_folder_manager_share_opt.disabled = true; } oilsRptFolderWindow.prototype.drawEditActions = function() { @@ -111,9 +116,13 @@ oilsRptFolderWindow.prototype.drawEditActions = function() { unHideMe(DOM.oils_rpt_folder_manager_change_name_div); break; case 'create_sub_folder': + var porg = PERMS.SHARE_REPORT_FOLDER; + if( porg < 1 ) + DOM.oils_rpt_folder_manager_sub_shared.disabled = true; + removeChildren(DOM.oils_rpt_folder_manager_sub_lib_picker); unHideMe(DOM.oils_rpt_folder_manager_create_sub); obj.myOrgSelector = new oilsRptMyOrgsWidget( - DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou()); + DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou(), porg) obj.myOrgSelector.draw(); break; case 'delete': @@ -137,8 +146,10 @@ oilsRptFolderWindow.prototype.shareFolder = function() { 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()); + DOM.oils_rpt_folder_manager_share_lib_picker, + USER.ws_ou(), PERMS.SHARE_REPORT_FOLDER); orgsel.draw(); var type = this.type; diff --git a/Open-ILS/web/reports/oils_rpt_folders.js b/Open-ILS/web/reports/oils_rpt_folders.js index fadbfcee47..b82a65b3f0 100644 --- a/Open-ILS/web/reports/oils_rpt_folders.js +++ b/Open-ILS/web/reports/oils_rpt_folders.js @@ -31,9 +31,13 @@ oilsRptFolderManager.prototype.draw = function(auth) { removeChildren(DOM.oils_rpt_report_shared_folder_tree); removeChildren(DOM.oils_rpt_output_shared_folder_tree); + var porg = PERMS.SHARE_REPORT_FOLDER; + if( porg < 1 ) + DOM.oils_rpt_top_folder_shared.disabled = true; + var obj = this; var orgsel = new oilsRptMyOrgsWidget( - DOM.oils_rpt_top_folder_lib_picker, USER.ws_ou()); + DOM.oils_rpt_top_folder_lib_picker, USER.ws_ou(), porg) orgsel.draw(); oilsRptTemplateFolderTree = diff --git a/Open-ILS/web/reports/oils_rpt_report_editor.js b/Open-ILS/web/reports/oils_rpt_report_editor.js index 9e231fe1ac..cdf6ca0377 100644 --- a/Open-ILS/web/reports/oils_rpt_report_editor.js +++ b/Open-ILS/web/reports/oils_rpt_report_editor.js @@ -16,7 +16,8 @@ function oilsRptReportEditor(rptObject, folderWindow) { appendClear(DOM.oils_rpt_report_editor_cols,' | '); iterate(rptObject.def.select, function(i) { - DOM.oils_rpt_report_editor_cols.appendChild(text(i.alias +' | ')); + if(i) + DOM.oils_rpt_report_editor_cols.appendChild(text(i.alias +' | ')); } ); @@ -77,12 +78,10 @@ oilsRptReportEditor.prototype.save = function() { for( var p in this.paramEditor.params ) { var par = this.paramEditor.params[p]; _debug("adding report param "+par.key+" to report data"); - /* - if( par.relWidgetChecked ) - data[par.key] = par.relWidget.getValue(); - else - */ - data[par.key] = par.widget.getValue(); + var val = par.widget.getValue(); + if(!val || val.length == 0 ) + return alertId('oils_rpt_empty_param'); + data[par.key] = val; } data = js2JSON(data); diff --git a/Open-ILS/web/reports/oils_rpt_widget.js b/Open-ILS/web/reports/oils_rpt_widget.js index 44f6965d77..cbcc511f34 100644 --- a/Open-ILS/web/reports/oils_rpt_widget.js +++ b/Open-ILS/web/reports/oils_rpt_widget.js @@ -616,9 +616,16 @@ oilsRptTruncPicker.prototype.getDisplayValue = function() { /* --------------------------------------------------------------------- custom my-orgs picker --------------------------------------------------------------------- */ -function oilsRptMyOrgsWidget(node, orgid) { +function oilsRptMyOrgsWidget(node, orgid, maxorg) { + _debug('fetching my orgs with max org of ' + maxorg); this.node = node; this.orgid = orgid; + this.maxorg = maxorg || 1; + this.active = true; + if( maxorg < 1 ) { + this.node.disabled = true; + this.active = false; + } } oilsRptMyOrgsWidget.prototype.draw = function() { @@ -632,12 +639,18 @@ oilsRptMyOrgsWidget.prototype.draw = function() { oilsRptMyOrgsWidget.prototype.drawWidget = function(orglist) { var sel = this.node; + var started = false; for( var i = 0; i < orglist.length; i++ ) { var org = orglist[i]; var opt = insertSelectorVal( this.node, -1, org.name(), org.id(), null, findOrgDepth(org) ); if( org.id() == this.orgid ) opt.selected = true; + if(!started) { + if( org.id() == this.maxorg ) + started = true; + else opt.disabled = true; + } } } -- 2.11.0