border: 1px solid red;
padding: 0px; margin: -3px;
}
+
+#oils_rpt_main_table {
+ margin-top: 15px;
+}
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;
<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>
<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();'>
--- /dev/null
+<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>
+
+
+
--- /dev/null
+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
+
+
+
+
+
/* 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";
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;
/* 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;