started working on user folders for the main page
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 26 Sep 2006 20:46:54 +0000 (20:46 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 26 Sep 2006 20:46:54 +0000 (20:46 +0000)
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
Open-ILS/web/reports/oils_rpt.js
Open-ILS/web/reports/oils_rpt.xhtml
Open-ILS/web/reports/oils_rpt_builder.xhtml
Open-ILS/web/reports/oils_rpt_common.xhtml [new file with mode: 0644]
Open-ILS/web/reports/oils_rpt_folders.js [new file with mode: 0644]
Open-ILS/web/reports/oils_rpt_vars.js

index c829463..a46c901 100644 (file)
@@ -148,3 +148,7 @@ button {
        border: 1px solid red; 
        padding: 0px; margin: -3px;
 }
+
+#oils_rpt_main_table {
+       margin-top: 15px;
+}
index 0ce14c4..7c0820e 100644 (file)
@@ -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;
index 39c2e77..3d63b2b 100644 (file)
 
        <head>
                <title>Evergreen: Reports</title>
-               <script language='javascript' src='/opac/common/js/utils.js'> </script>
-               <script language='javascript' src='/opac/common/js//config.js'> </script> 
-               <script language='javascript' src='/opac/common/js/CGI.js'> </script>
-               <script language='javascript' src='/opac/common/js/Cookie.js'> </script>
-               <script language='javascript' src='/opac/common/js/JSON.js'> </script>
-               <script language='javascript' src='/opac/common/js/fmall.js'> </script>
-               <script language='javascript' src='/opac/common/js/fmgen.js'> </script>
-               <script language='javascript' src='/opac/common/js/Cookies.js'> </script>
-               <script language='javascript' src='/opac/common/js/opac_utils.js'> </script>
-               <script language='javascript' src='/opac/common/js/OrgTree.js'> </script>
-               <script language='javascript' src='/opac/common/js/org_utils.js'> </script>
-               <script language='javascript' src='/opac/common/js/init.js'> </script>
-               <script language='javascript' src='/opac/common/js/RemoteRequest.js'> </script>
-               <script language='javascript' src='slimtree.js'> </script>
-
-               <link rel="stylesheet" type="text/css" media="all" 
-                       href="/opac/common/js/jscalendar/calendar-brown.css" title="win2k-cold-1" />
-               <script type="text/javascript" src="/opac/common/js/jscalendar/calendar.js"></script>
-               <script type="text/javascript" src="/opac/common/js/jscalendar/lang/calendar-en.js"></script>
-               <script type="text/javascript" src="/opac/common/js/jscalendar/calendar-setup.js"></script>
-
-               <script type="text/javascript" src="adminlib.js"></script>
-               <script type="text/javascript" src="oils_rpt_vars.js"></script>
-               <script type="text/javascript" src="oils_rpt_utils.js"></script>
-               <script type="text/javascript" src="oils_rpt_builder.js"></script>
-               <script type="text/javascript" src="oils_rpt_tree.js"></script>
-               <script type="text/javascript" src="oils_rpt.js"></script>
-
-               <link rel="stylesheet" type="text/css" href="oils_rpt.css"> </link>
-
-               <script>function _l(l) { location.href = l + location.search; }</script>
-
+               <!--#include virtual="oils_rpt_common.xhtml"-->
        </head>
 
-       <body onload='oilsInitReports();' onunload='oilsCleanupReports();'>
+       <body onload='oilsInitReports();oilsRtpInitFolders();' onunload='oilsCleanupReports();'>
                <div class='welcome_box'>
                        <span>You are logged in as </span><b><span id='oils_rpt_user'/></b>
                </div>
                <div>
                        <a class='oils_rpt_main_link' href='javascript:_l("oils_rpt_builder.xhtml");'>Build a New Report</a>
                </div>
+
+
+               <table id='oils_rpt_main_table'>
+                       <tbody>
+                               <tr>
+                                       <td>
+                                               <div id='oils_rpt_folder_tree_div'>
+                                               </div>
+                                       </td>
+                               </tr>
+                       </tbody>
+               </table>
+
        </body>
 </html>
 
index e9ecc05..3bacf28 100644 (file)
@@ -9,49 +9,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
 
        <head>
-               <title>Evergreen: Reports</title>
-               <script language='javascript' src='/opac/common/js/utils.js'> </script>
-               <script language='javascript' src='/opac/common/js//config.js'> </script> 
-               <script language='javascript' src='/opac/common/js/CGI.js'> </script>
-               <script language='javascript' src='/opac/common/js/Cookie.js'> </script>
-               <script language='javascript' src='/opac/common/js/JSON.js'> </script>
-               <script language='javascript' src='/opac/common/js/fmall.js'> </script>
-               <script language='javascript' src='/opac/common/js/fmgen.js'> </script>
-               <script language='javascript' src='/opac/common/js/Cookies.js'> </script>
-               <script language='javascript' src='/opac/common/js/opac_utils.js'> </script>
-               <script language='javascript' src='/opac/common/js/OrgTree.js'> </script>
-               <script language='javascript' src='/opac/common/js/org_utils.js'> </script>
-               <script language='javascript' src='/opac/common/js/init.js'> </script>
-               <script language='javascript' src='/opac/common/js/RemoteRequest.js'> </script>
-               <script language='javascript' src='/opac/common/js/slimtree.js'> </script>
-               <script>
-                       stpicopen  = '../opac/images/slimtree/folder2.gif';
-                       stpicclose = '../opac/images/slimtree/folderopen2.gif';
-                       stpicblank = '../opac/images/slimtree/page.gif';
-                       stpicline  = '../opac/images/slimtree/line.gif';
-                       stpicjoin  = '../opac/images/slimtree/join.gif';
-                       stpicjoinb = '../opac/images/slimtree/joinbottom.gif';
-               </script>
-
-
-               <link rel="stylesheet" type="text/css" media="all" 
-                       href="/opac/common/js/jscalendar/calendar-brown.css" title="win2k-cold-1" />
-               <script type="text/javascript" src="/opac/common/js/jscalendar/calendar.js"></script>
-               <script type="text/javascript" src="/opac/common/js/jscalendar/lang/calendar-en.js"></script>
-               <script type="text/javascript" src="/opac/common/js/jscalendar/calendar-setup.js"></script>
-
-               <script type="text/javascript" src="adminlib.js"></script>
-               <script type="text/javascript" src="oils_rpt_vars.js"></script>
-               <script type="text/javascript" src="oils_rpt_utils.js"></script>
-               <script type="text/javascript" src="oils_rpt_tree.js"></script>
-               <script type="text/javascript" src="oils_rpt_builder.js"></script>
-               <script type="text/javascript" src="oils_rpt_builder_widgets.js"></script>
-               <script type="text/javascript" src="oils_rpt.js"></script>
-
-               <link rel="stylesheet" type="text/css" href="oils_rpt.css"> </link>
-
-               <script>function _l(l) { location.href = l + location.search; }</script>
-
+               <title>Evergreen: Report Builder</title>
+               <!--#include virtual="oils_rpt_common.xhtml"-->
        </head>
 
        <body onload='oilsInitReportBuilder();' onunload='oilsCleanupReports();'>
diff --git a/Open-ILS/web/reports/oils_rpt_common.xhtml b/Open-ILS/web/reports/oils_rpt_common.xhtml
new file mode 100644 (file)
index 0000000..72b0f52
--- /dev/null
@@ -0,0 +1,45 @@
+<script language='javascript' src='/opac/common/js/utils.js'> </script>
+<script language='javascript' src='/opac/common/js//config.js'> </script> 
+<script language='javascript' src='/opac/common/js/CGI.js'> </script>
+<script language='javascript' src='/opac/common/js/Cookie.js'> </script>
+<script language='javascript' src='/opac/common/js/JSON.js'> </script>
+<script language='javascript' src='/opac/common/js/fmall.js'> </script>
+<script language='javascript' src='/opac/common/js/fmgen.js'> </script>
+<script language='javascript' src='/opac/common/js/Cookies.js'> </script>
+<script language='javascript' src='/opac/common/js/opac_utils.js'> </script>
+<script language='javascript' src='/opac/common/js/OrgTree.js'> </script>
+<script language='javascript' src='/opac/common/js/org_utils.js'> </script>
+<script language='javascript' src='/opac/common/js/init.js'> </script>
+<script language='javascript' src='/opac/common/js/RemoteRequest.js'> </script>
+<script language='javascript' src='/opac/common/js/slimtree.js'> </script>
+<script>
+       stpicopen  = '../opac/images/slimtree/folder2.gif';
+       stpicclose = '../opac/images/slimtree/folderopen2.gif';
+       stpicblank = '../opac/images/slimtree/page.gif';
+       stpicline  = '../opac/images/slimtree/line.gif';
+       stpicjoin  = '../opac/images/slimtree/join.gif';
+       stpicjoinb = '../opac/images/slimtree/joinbottom.gif';
+</script>
+
+
+<link rel="stylesheet" type="text/css" media="all" 
+       href="/opac/common/js/jscalendar/calendar-brown.css" title="win2k-cold-1" />
+<script type="text/javascript" src="/opac/common/js/jscalendar/calendar.js"></script>
+<script type="text/javascript" src="/opac/common/js/jscalendar/lang/calendar-en.js"></script>
+<script type="text/javascript" src="/opac/common/js/jscalendar/calendar-setup.js"></script>
+
+<script type="text/javascript" src="adminlib.js"></script>
+<script type="text/javascript" src="oils_rpt_vars.js"></script>
+<script type="text/javascript" src="oils_rpt_utils.js"></script>
+<script type="text/javascript" src="oils_rpt_tree.js"></script>
+<script type="text/javascript" src="oils_rpt_builder.js"></script>
+<script type="text/javascript" src="oils_rpt_builder_widgets.js"></script>
+<script type="text/javascript" src="oils_rpt_folders.js"></script>
+<script type="text/javascript" src="oils_rpt.js"></script>
+
+<link rel="stylesheet" type="text/css" href="oils_rpt.css"> </link>
+
+<script>function _l(l) { location.href = l + location.search; }</script>
+
+
+
diff --git a/Open-ILS/web/reports/oils_rpt_folders.js b/Open-ILS/web/reports/oils_rpt_folders.js
new file mode 100644 (file)
index 0000000..fcea6f1
--- /dev/null
@@ -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
+
+
+
+
+
index 75cc54e..bf1d2b6 100644 (file)
@@ -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;