From a267a11727aa38c9a5c65b371315614f9e4f8b13 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 26 Sep 2006 20:46:54 +0000 Subject: [PATCH] started working on user folders for the main page moved shared js/css to external file for include git-svn-id: svn://svn.open-ils.org/ILS/trunk@6225 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/reports/oils_rpt.css | 4 ++ Open-ILS/web/reports/oils_rpt.js | 6 ++ Open-ILS/web/reports/oils_rpt.xhtml | 48 +++++----------- Open-ILS/web/reports/oils_rpt_builder.xhtml | 45 +-------------- Open-ILS/web/reports/oils_rpt_common.xhtml | 45 +++++++++++++++ Open-ILS/web/reports/oils_rpt_folders.js | 85 +++++++++++++++++++++++++++++ Open-ILS/web/reports/oils_rpt_vars.js | 36 +++--------- 7 files changed, 165 insertions(+), 104 deletions(-) create mode 100644 Open-ILS/web/reports/oils_rpt_common.xhtml create mode 100644 Open-ILS/web/reports/oils_rpt_folders.js diff --git a/Open-ILS/web/reports/oils_rpt.css b/Open-ILS/web/reports/oils_rpt.css index c829463ad7..a46c901992 100644 --- a/Open-ILS/web/reports/oils_rpt.css +++ b/Open-ILS/web/reports/oils_rpt.css @@ -148,3 +148,7 @@ button { border: 1px solid red; padding: 0px; margin: -3px; } + +#oils_rpt_main_table { + margin-top: 15px; +} diff --git a/Open-ILS/web/reports/oils_rpt.js b/Open-ILS/web/reports/oils_rpt.js index 0ce14c472d..7c0820eee0 100644 --- a/Open-ILS/web/reports/oils_rpt.js +++ b/Open-ILS/web/reports/oils_rpt.js @@ -12,6 +12,12 @@ function oilsInitReports() { oilsRptDebugEnabled = cgi.param('dbg'); } +function oilsRtpInitFolders() { + oilsRptCurrentFolderManager = + new oilsRptFolderManager(DOM.oils_rpt_folder_tree_div); + oilsRptCurrentFolderManager.draw(SESSION); +} + function oilsCleanupReports() { try {oilsRptDebugWindow.close();} catch(e) {} DOM = null; diff --git a/Open-ILS/web/reports/oils_rpt.xhtml b/Open-ILS/web/reports/oils_rpt.xhtml index 39c2e7725d..3d63b2b7ed 100644 --- a/Open-ILS/web/reports/oils_rpt.xhtml +++ b/Open-ILS/web/reports/oils_rpt.xhtml @@ -10,41 +10,10 @@ Evergreen: Reports - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - +
You are logged in as
@@ -52,6 +21,19 @@
Build a New Report
+ + + + + + + + +
+
+
+
+ diff --git a/Open-ILS/web/reports/oils_rpt_builder.xhtml b/Open-ILS/web/reports/oils_rpt_builder.xhtml index e9ecc058c1..3bacf284a7 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.xhtml +++ b/Open-ILS/web/reports/oils_rpt_builder.xhtml @@ -9,49 +9,8 @@ - Evergreen: Reports - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Evergreen: Report Builder + diff --git a/Open-ILS/web/reports/oils_rpt_common.xhtml b/Open-ILS/web/reports/oils_rpt_common.xhtml new file mode 100644 index 0000000000..72b0f52e02 --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_common.xhtml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/web/reports/oils_rpt_folders.js b/Open-ILS/web/reports/oils_rpt_folders.js new file mode 100644 index 0000000000..fcea6f1ce0 --- /dev/null +++ b/Open-ILS/web/reports/oils_rpt_folders.js @@ -0,0 +1,85 @@ +function oilsRptFolderManager(node) { + this.node = node; + this.folderTree = {}; +} + +oilsRptFolderManager.prototype.draw = function(auth) { + var tree = oilsRptFolderTree = + new SlimTree(this.node, 'oilsRptFolderTree'); + + this.rootTreeId = oilsNextId(); + this.templateTreeId = oilsNextId(); + this.reportTreeId = oilsNextId(); + this.outputTreeId = oilsNextId(); + + tree.addNode(this.rootTreeId, -1, 'Report Folders'); + tree.addNode(this.templateTreeId, this.rootTreeId, 'Template Folders'); + tree.addNode(this.reportTreeId, this.rootTreeId, 'Report Folders'); + tree.addNode(this.outputTreeId, this.rootTreeId, 'Output Folders'); + + this.fetchFolders(auth); +} + +oilsRptFolderManager.prototype.fetchFolders = function(auth) { + var obj = this; + var req = new Request(OILS_RPT_FETCH_FOLDERS, auth, 'template'); + req.callback( function(r) { obj.drawFolders('template', r.getResultObject()); } ); + req.send(); + + var req = new Request(OILS_RPT_FETCH_FOLDERS, auth, 'report'); + req.callback( function(r) { obj.drawFolders('report', r.getResultObject()); } ); + req.send(); + + var req = new Request(OILS_RPT_FETCH_FOLDERS, auth, 'output'); + req.callback( function(r) { obj.drawFolders('output', r.getResultObject()); } ); + req.send(); +} + + +oilsRptFolderManager.prototype.drawFolders = function(type, folders) { + _debug('making folder tree '+type); + switch(type) { + case 'template': tid = this.templateTreeId; break; + case 'report': tid = this.reportTreeId; break; + case 'output': tid = this.outputTreeId; break; + } + this.folderTree[type] = { children : [] }; + this.makeTree(type, folders, this.folderTree[type], tid ); +} + + +/* builds an in-memory version of the folder trees as well as the UI trees */ +oilsRptFolderManager.prototype.makeTree = function(type, folders, node, parentId) { + 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()); + + id = oilsNextId(); + oilsRptFolderTree.addNode(id, parentId, node.folder.name()); + node.treeId = id; + node.children = []; + childNodes = grep(folders, + function(i){return (i.parent() == node.folder.id())}); + + var req = new Request(OILS_RPT_FETCH_FOLDER_DATA,SESSION,type,node.folder.id()); + req.callback + + } + + if(!childNodes) return; + for( var i = 0; i < childNodes.length; i++ ) + this.makeTree( type, folders, { folder : childNodes[i] }, id ); +} + +//oilsRptFolderManager.prototype.make + + + + + diff --git a/Open-ILS/web/reports/oils_rpt_vars.js b/Open-ILS/web/reports/oils_rpt_vars.js index 75cc54e199..bf1d2b648f 100644 --- a/Open-ILS/web/reports/oils_rpt_vars.js +++ b/Open-ILS/web/reports/oils_rpt_vars.js @@ -10,6 +10,9 @@ var oilsRpt; /* UI tree */ var oilsRptTree; +/* UI tree of report folders */ +var oilsRptFolderTree; + /* URL to retrieve the IDL from */ var OILS_IDL_URL = "/reports/fm_IDL.xml"; @@ -33,34 +36,6 @@ var oilsPageYMid; var oilsIDLReportsNS = 'http://open-ils.org/spec/opensrf/IDL/reporter/v1'; var oilsIDLPersistNS = 'http://open-ils.org/spec/opensrf/IDL/persistance/v1'; -/* transforms for the different data types */ -/* -var oilsRptTransforms = { - 'string' : [ 'substring' ], - 'numeric' : [ 'sum', 'average' ], - 'timestamp' : [ 'month_trunc', 'months_ago', 'quarters_ago', 'age' ], - 'all' : [ 'raw', 'count', 'count_distinct', 'min', 'max' ] -}; -*/ - -/* for ease of use, shove everything in the 'all' slot into the other tforms */ -/* -for( var t in oilsRptTransforms ) { - if( t == 'all' ) continue; - for( var a in oilsRptTransforms['all'] ) - oilsRptTransforms[t].push( oilsRptTransforms['all'][a] ); -} -delete oilsRptTransforms.all; -*/ -/* --------------------------------------------------- */ - - -/* -var oilsRptRegexClasses = { - 'number' : /\d+/ -} -*/ - /* the current transform manager for the builder transform window */ var oilsRptCurrentTform; @@ -69,3 +44,8 @@ var oilsRptCurrentFilterTform; /* the current operation manager for the filter window */ var oilsRptCurrentFilterOpManager; + +var OILS_RPT_FETCH_FOLDERS = 'open-ils.reporter:open-ils.reporter.folder.visible.retrieve'; +var OILS_RPT_FETCH_FOLDER_DATA = 'open-ils.reporter:open-ils.reporter.folder_data.retrieve'; + +var oilsRptCurrentFolderManager; -- 2.11.0