#oils_rpt_folder_window_contents_table td {
text-align: center;
}
+
+#oils_rpt_editor_div {
+ width: 100%;
+}
_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;
</table>
<div>
-
<!--#include virtual="oils_rpt_folder_window.xhtml"-->
-
- <!--
- <|||#include virtual="oils_rpt_template_folder_window.xhtml"||>
- <|||#include virtual="oils_rpt_report_folder_window.xhtml"||>
- -->
</div>
</div>
</td>
+
+ <td id='oils_rpt_folder_table_alt_td' class='hide_me'>
+ <div class='oils_rpt_folder_window'>
+ <!--#include virtual="oils_rpt_editor.xhtml"-->
+ </div>
+ </td>
+
</tr>
</tbody>
</table>
- <!--#include virtual="oils_rpt_param_editor.xhtml"-->
</body>
</html>
<script type="text/javascript" src="oils_rpt_widget.js"></script>
<script type="text/javascript" src="oils_rpt_param_editor.js"></script>
<script type="text/javascript" src="oils_rpt.js"></script>
+<script type="text/javascript" src="oils_rpt_report_editor.js"></script>
<link type='text/css' rel='stylesheet' href="/opac/common/css/fm_table.css"/>
<link rel="stylesheet" type="text/css" href="oils_rpt.css"> </link>
--- /dev/null
+<div id='oils_rpt_editor_div'>
+ <table>
+ <tbody>
+ <tr>
+ <td>Template Name:</td>
+ <td><b id='oils_rpt_report_editor_template_name'/></td>
+ </tr>
+ <tr>
+ <td>Template Creator:</td>
+ <td><b id='oils_rpt_report_editor_template_creator'/></td>
+ </tr>
+ <tr>
+ <td>Template Description:</td>
+ <td><b id='oils_rpt_report_editor_template_description'/></td>
+ </tr>
+
+ <tr>
+ <td>Report Name:</td>
+ <td><input type='text' id='oils_rpt_report_editor_name'/></td>
+ </tr>
+ <tr>
+ <td>Report Description:</td>
+ <td><input type='text' id='oils_rpt_report_editor_name'/></td>
+ </tr>
+ <tr><td colspan='2'><hr/></td></tr>
+ <tr>
+ <td colspan='2'>
+ <!--#include virtual="oils_rpt_param_editor.xhtml"-->
+ </td>
+ </tr>
+ <tr><td colspan='2'><hr/></td></tr>
+ <tr>
+ <td colspan='2'>
+ Add scheduling interface ...
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</div>
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;
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;
+ }
}
<td>
<span>
<select id='oils_rpt_folder_contents_action_selector' style='width: auto;'>
- <option type='template' value='clone_template'>Clone template</option>
<option type='template' value='create_report'>Create a new report from template</option>
+ <option type='template' value='clone_template'>Clone template</option>
<option type='report' value='change_params'>Clone report</option>
<option type='report' value='schedule_report'>Schedule report</option>
</select>
<tr class='oils_rpt_folder_window_contents_row'>
<td width='100%' align='center'>
<table width='100%'><tbody>
- <tr><td align='center'><b>Folder Contents</b></td></tr>
+ <tr><td align='center'><h4>Folder Contents</h4></td></tr>
<tr><td><div id='oils_rpt_folder_contents_selector'/></td></tr>
</tbody></table>
</td>
}
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);
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;
}
}
+ 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());
}
}
- 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);
}
-/*
-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];
}
--- /dev/null
+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});
+ }
+}
+
+
+
--- /dev/null
+<div id='oils_rpt_param_editor_div'>
+ <div>
+ <b id='oils_rpt_param_editor_report_name'> </b>
+ </div>
+
+ <table id='oils_rpt_param_editor_table'>
+ <thead>
+ <tr><td>Column</td><td>Action</td><td>User Params</td></tr>
+ </thead>
+ <tbody id='oils_rpt_param_editor_tbody'>
+ <tr name='tr'>
+ <td name='column'/>
+ <td name='action'/>
+ <td name='widget'/>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+
+
--- /dev/null
+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();
+}