From: erickson Date: Fri, 29 Sep 2006 03:37:36 +0000 (+0000) Subject: more work on folder window interface, started on a generic report editor interface X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2ef5eb89938d203d4e24a70b2ab51513761dc805;p=evergreen%2Fpines.git more work on folder window interface, started on a generic report editor interface git-svn-id: svn://svn.open-ils.org/ILS/trunk@6260 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/reports/oils_rpt.css b/Open-ILS/web/reports/oils_rpt.css index 78ac7318f3..1b3a5130f2 100644 --- a/Open-ILS/web/reports/oils_rpt.css +++ b/Open-ILS/web/reports/oils_rpt.css @@ -247,3 +247,7 @@ button { #oils_rpt_folder_window_contents_table td { text-align: center; } + +#oils_rpt_editor_div { + width: 100%; +} diff --git a/Open-ILS/web/reports/oils_rpt.js b/Open-ILS/web/reports/oils_rpt.js index 9c6feb7d5d..8722d3a971 100644 --- a/Open-ILS/web/reports/oils_rpt.js +++ b/Open-ILS/web/reports/oils_rpt.js @@ -67,7 +67,6 @@ oilsReport.prototype.gatherParams = function() { _debug("we have params: " + js2JSON(this.params)); var params = []; - this._gatherParams(params, this.def.select, 'select', 'alias'); this._gatherParams(params, this.def.where, 'where', 'condition'); this._gatherParams(params, this.def.having, 'having', 'condition'); return params; diff --git a/Open-ILS/web/reports/oils_rpt.xhtml b/Open-ILS/web/reports/oils_rpt.xhtml index e144cf097a..23852475ad 100644 --- a/Open-ILS/web/reports/oils_rpt.xhtml +++ b/Open-ILS/web/reports/oils_rpt.xhtml @@ -66,21 +66,21 @@
- - -
+ + +
+ +
+ + - diff --git a/Open-ILS/web/reports/oils_rpt_common.xhtml b/Open-ILS/web/reports/oils_rpt_common.xhtml index 6280d36c60..a2794e80d9 100644 --- a/Open-ILS/web/reports/oils_rpt_common.xhtml +++ b/Open-ILS/web/reports/oils_rpt_common.xhtml @@ -42,6 +42,7 @@ + diff --git a/Open-ILS/web/reports/oils_rpt_editor.xhtml b/Open-ILS/web/reports/oils_rpt_editor.xhtml new file mode 100644 index 0000000000..82a9fa02dd --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_editor.xhtml @@ -0,0 +1,39 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Template Name:
Template Creator:
Template Description:
Report Name:
Report Description:

+ +

+ Add scheduling interface ... +
+
diff --git a/Open-ILS/web/reports/oils_rpt_folder_window.js b/Open-ILS/web/reports/oils_rpt_folder_window.js index ae6f08672b..3fad8dda86 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.js +++ b/Open-ILS/web/reports/oils_rpt_folder_window.js @@ -32,8 +32,8 @@ oilsRptFolderWindow.prototype.init2 = function(node, type) { oilsRptFolderWindow.prototype.draw = function() { hideMe(DOM.oils_rpt_template_folder_new_report); - hideMe(DOM.oils_rpt_param_editor_div); unHideMe(DOM.oils_rpt_folder_table_right_td); + hideMe(DOM.oils_rpt_folder_table_alt_td); this.drawFolderDetails(); var obj = this; @@ -53,6 +53,17 @@ oilsRptFolderWindow.prototype.draw = function() { oilsRptFolderWindow.prototype.doFolderAction = function() { var objs = this.fmTable.getSelected(); + if( objs.length == 0 ) + return alert('Please select an item from the list'); + var action = getSelectorVal(DOM.oils_rpt_folder_contents_action_selector); + + switch(action) { + case 'create_report' : + hideMe(DOM.oils_rpt_folder_table_right_td); + unHideMe(DOM.oils_rpt_folder_table_alt_td); + new oilsRptReportEditor(new oilsReport(objs[0])); + break; + } } diff --git a/Open-ILS/web/reports/oils_rpt_folder_window.xhtml b/Open-ILS/web/reports/oils_rpt_folder_window.xhtml index 99563f036c..02cd68168d 100644 --- a/Open-ILS/web/reports/oils_rpt_folder_window.xhtml +++ b/Open-ILS/web/reports/oils_rpt_folder_window.xhtml @@ -5,8 +5,8 @@ @@ -17,7 +17,7 @@ - +
Folder Contents

Folder Contents

diff --git a/Open-ILS/web/reports/oils_rpt_folders.js b/Open-ILS/web/reports/oils_rpt_folders.js index 376eb99c30..7adeca2fdc 100644 --- a/Open-ILS/web/reports/oils_rpt_folders.js +++ b/Open-ILS/web/reports/oils_rpt_folders.js @@ -21,22 +21,54 @@ function oilsRptFolderManager() { } oilsRptFolderManager.prototype.draw = function(auth) { - oilsRptTemplateFolderTree = new SlimTree(DOM.oils_rpt_template_folder_tree, 'oilsRptTemplateFolderTree'); + + oilsRptTemplateFolderTree = + new SlimTree( + DOM.oils_rpt_template_folder_tree, + 'oilsRptTemplateFolderTree'); + //'images/template-page.gif'); + oilsRptTemplateFolderTree.addNode(this.tId, -1, 'Templates') - oilsRptReportFolderTree = new SlimTree(DOM.oils_rpt_report_folder_tree, 'oilsRptReportFolderTree'); + oilsRptReportFolderTree = + new SlimTree( + DOM.oils_rpt_report_folder_tree, + 'oilsRptReportFolderTree'); + //'images/report-page.gif'); + oilsRptReportFolderTree.addNode(this.rId, -1, 'Reports') - oilsRptOutputFolderTree = new SlimTree(DOM.oils_rpt_output_folder_tree, 'oilsRptOutputFolderTree'); + + oilsRptOutputFolderTree = + new SlimTree( + DOM.oils_rpt_output_folder_tree, + 'oilsRptOutputFolderTree'); + //'images/output-page.gif'); + oilsRptOutputFolderTree.addNode(this.oId, -1, 'Output') - oilsRptSharedTemplateFolderTree = new SlimTree(DOM.oils_rpt_template_shared_folder_tree, 'oilsRptSharedTemplateFolderTree'); + oilsRptSharedTemplateFolderTree = + new SlimTree( + DOM.oils_rpt_template_shared_folder_tree, + 'oilsRptSharedTemplateFolderTree'); + //'images/template-page.gif'); + oilsRptSharedTemplateFolderTree.addNode(this.stId, -1, 'Templates') - oilsRptSharedReportFolderTree = new SlimTree(DOM.oils_rpt_report_shared_folder_tree, 'oilsRptSharedReportFolderTree'); + oilsRptSharedReportFolderTree = + new SlimTree( + DOM.oils_rpt_report_shared_folder_tree, + 'oilsRptSharedReportFolderTree'); + //'images/report-page.gif'); + oilsRptSharedReportFolderTree.addNode(this.srId, -1, 'Reports') - oilsRptSharedOutputFolderTree = new SlimTree(DOM.oils_rpt_output_shared_folder_tree, 'oilsRptSharedOutputFolderTree'); + oilsRptSharedOutputFolderTree = + new SlimTree( + DOM.oils_rpt_output_shared_folder_tree, + 'oilsRptSharedOutputFolderTree'); + //'images/output-page.gif'); + oilsRptSharedOutputFolderTree.addNode(this.soId, -1, 'Output') this.fetchFolders(auth); @@ -88,7 +120,6 @@ oilsRptFolderManager.prototype.drawFolders = function(type, folders) { for( var i = 0; i < folders.length; i++ ) { var folder = folders[i]; - _debug(js2JSON(folder)); var mine = (folder.owner().id() == USER.id()); var pid; var treename; @@ -128,6 +159,10 @@ oilsRptFolderManager.prototype.drawFolders = function(type, folders) { } } + if( folder.parent() ) + pid = this.findNode(type, folder.parent()).treeId; + + if(!mine) { if(!this.orgTrail[type][folder.share_with().id()]) { tree.addNode(id, pid, folder.share_with().shortname()); @@ -141,9 +176,6 @@ oilsRptFolderManager.prototype.drawFolders = function(type, folders) { } } - if( folder.parent() ) - pid = this.findNode(type, folder.parent()).treeId; - var action = 'javascript:oilsRptObject.find('+ node.folderWindow.id+').draw();'+treename+'.toggle("'+id+'");'; _debug('adding node '+folder.name()+' pid = '+pid); @@ -153,49 +185,7 @@ oilsRptFolderManager.prototype.drawFolders = function(type, folders) { } -/* -oilsRptFolderManager.prototype.drawFolders = function(type, folders) { - this.folderTree[type] = { children : [] }; - this.makeTree(type, folders, this.folderTree[type], -1 ); -} -oilsRptFolderManager.prototype.makeTree = function(type, folders, node, parentId, tree) { - if(!node) return; - var id = parentId; - var childNodes; - - if( ! node.folder ) { - childNodes = grep(folders, function(f){return (!f.parent())}); - - } else { - _debug("making subtree with folder "+node.folder.name()); - - var c = oilsRptFolderNodeCache; - if(!c[type]) c[type] = {}; - c[type][node.folder.id()] = node; - - id = oilsNextId(); - - node.folderWindow = oilsRptBuildFolderWindow(type, node.folder.id()); - - var action = 'javascript:oilsRptObject.find('+node.folderWindow.id+').draw();'+ - 'oilsRptFolderTree.toggle("'+id+'");'; - - oilsRptFolderTree.addNode(id, parentId, node.folder.name(), action); - node.treeId = id; - node.children = []; - childNodes = grep(folders, - function(i){return (i.parent() == node.folder.id())}); - } - - if(!childNodes) return; - for( var i = 0; i < childNodes.length; i++ ) - this.makeTree( type, folders, { folder : childNodes[i] }, id ); -} -*/ - - oilsRptFolderManager.prototype.findNode = function(type, id) { - _debug('finding : type = ' + type + ' : ' + id); return oilsRptFolderNodeCache[type][id]; } diff --git a/Open-ILS/web/reports/oils_rpt_param_editor.js b/Open-ILS/web/reports/oils_rpt_param_editor.js new file mode 100644 index 0000000000..833dc47dc3 --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_param_editor.js @@ -0,0 +1,38 @@ +oilsRptSetSubClass('oilsRptParamEditor','oilsRptObject'); +function oilsRptParamEditor(report, tbody) { + this.tbody = tbody; + this.report = report; +} + + +oilsRptParamEditor.prototype.draw = function() { + var params = this.report.gatherParams(); + + if(!oilsRptParamEditor.row) + oilsRptParamEditor.row = + DOM.oils_rpt_param_editor_tbody.removeChild( + $n(DOM.oils_rpt_param_editor_tbody, 'tr')); + + _debug(formatJSON(js2JSON(params))); + + for( var p = 0; p < params.length; p++ ) { + var par = params[p]; + var row = oilsRptParamEditor.row.cloneNode(true); + $n(row, 'column').appendChild(text(par.column.colname)); + $n(row, 'action').appendChild(text(par.op)); + this.buildWidget(par, $n(row, 'widget')).draw(); + this.tbody.appendChild(row); + } +} + + +oilsRptParamEditor.prototype.buildWidget = function(param, node) { + _debug("building widget with param op "+ param.op); + switch(param.op) { + default: + return new oilsRptWidget({node:node}); + } +} + + + diff --git a/Open-ILS/web/reports/oils_rpt_param_editor.xhtml b/Open-ILS/web/reports/oils_rpt_param_editor.xhtml new file mode 100644 index 0000000000..4449d4fe7b --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_param_editor.xhtml @@ -0,0 +1,21 @@ +
+
+ +
+ + + + + + + + + +
ColumnActionUser Params
+ + +
+
+ + + diff --git a/Open-ILS/web/reports/oils_rpt_report_editor.js b/Open-ILS/web/reports/oils_rpt_report_editor.js new file mode 100644 index 0000000000..e9f5530a73 --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_report_editor.js @@ -0,0 +1,17 @@ +oilsRptSetSubClass('oilsRptReportEditor', 'oilsRptObject'); +function oilsRptReportEditor(rptObject) { + var tmpl = rptObject.templateObject; + var rpt = rptObject.reportObject; + + appendClear(DOM.oils_rpt_report_editor_template_name, tmpl.name()); + appendClear(DOM.oils_rpt_report_editor_template_creator, tmpl.owner().usrname()); + appendClear(DOM.oils_rpt_report_editor_template_description, tmpl.description()); + + if( rpt ) { + DOM.oils_rpt_report_editor_name.value = rpt.name(); + DOM.oils_rpt_report_editor_description.value = rpt.description(); + } + this.paramEditor = new oilsRptParamEditor( + rptObject, DOM.oils_rpt_param_editor_tbody); + this.paramEditor.draw(); +}