.welcome_box { position:absolute; top: 5px; right: 5px; }
+/* override some slimtree settings */
+.fm_table thead tr { background: #F0F0F0; }
+
.oils_rpt_main_link {
padding: 5px;
font-size: 10pt;
.oils_rpt_folder_window {
border: 1px solid blue;
- background: #E0F0F0;
+ background: #E6F0F0;
text-align: left;
}
#oils_rpt_folder_window_contents_div {
width: 100%;
+ margin-top: 15px;
}
.oils_rpt_param_table thead td {
#oils_rpt_param_editor_table {
width: 100%;
+}
+
+#oils_rpt_param_editor_table td {
border: 1px solid #808080;
}
#oils_rpt_editor_div {
width: 100%;
}
+
+
+
+.oils_rpt_table_row_borders { width: 100%; }
+.oils_rpt_table_row_borders tr { border: 1px solid #808080; }
+.oils_rpt_table_row_borders td { padding: 5px; }
+
+.oils_rpt_generic_table { width: 100%; }
+.oils_rpt_generic_table td { border: 1px solid #808080; padding: 5px; }
+
+
+
+
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = setMousePos;
- DEBUG = 1;
var cgi = new CGI();
fetchUser(cgi.param('ses'));
DOM.oils_rpt_user.appendChild(text(USER.usrname()));
oilsRptDebugEnabled = cgi.param('dbg');
+ if(oilsRptDebugEnabled) DEBUG = 1;
+
+ DEBUG = 1;
+
+ oilsLoadRptTree(
+ function() {
+ hideMe(DOM.oils_rpt_tree_loading);
+ unHideMe(DOM.oils_rpt_folder_table);
+ }
+ )
}
function oilsRtpInitFolders() {
function oilsCleanupReports() {
try {oilsRptDebugWindow.close();} catch(e) {}
DOM = null;
+ oilsRptObjectCache = null;
+ oilsRptObject.objectCache = null;
}
<a class='oils_rpt_main_link' href='javascript:_l("oils_rpt_builder.xhtml");'>Build a New Report</a>
</div>
+ <div id='oils_rpt_tree_loading'>
+ Loading...
+ </div>
- <table id='oils_rpt_folder_table'>
+ <table id='oils_rpt_folder_table' class='hide_me'>
<tbody>
<tr>
<td id='oils_rpt_folder_table_left_td'>
<td id='oils_rpt_folder_table_right_td' class='hide_me'>
<div class='oils_rpt_folder_window'>
- <table class='oils_rpt_tab_table'><tbody>
+ <table class='oils_rpt_tab_table' id='oils_rpt_folder_manager_tab_table'><tbody>
<tr>
- <td width='33%'>
+ <td width='50%'>
<a id='oils_rpt_folder_window_manage_tab' href='javascript:void(0);'>Manage Folder Contents</a></td>
- <td width='33%'>
- <a id='oils_rpt_folder_window_edit_tab' href='javascript:void(0);'>Edit This Folder</a></td>
- <td width='33%'>
- <a id='oils_rpt_child_folders_tab' href='javascript:void(0);'>Add New Folders</a></td>
+ <td width='50%'>
+ <a id='oils_rpt_folder_window_edit_tab' href='javascript:void(0);'>Manage Folder</a></td>
</tr>
</tbody></table>
<tbody>
<tr>
<td>
- <span><b id='oils_rpt_folder_name_label'/>: created by </span><b id='oils_rpt_folder_creator_label'/>
+ <span><b id='oils_rpt_folder_name_label'/>:
+ created by </span> <b id='oils_rpt_folder_creator_label'/>
</td>
</tr>
</tbody>
<div>
<!--#include virtual="oils_rpt_folder_window.xhtml"-->
</div>
+ <div>
+ <!--#include virtual="oils_rpt_folder_manager.xhtml"-->
+ </div>
</div>
</td>
</tr>
</tbody>
</table>
-
+
+ <span class='hide_me' id='oils_rpt_generic_success'>
+ Action Succeeded
+ </span>
</body>
</html>
*/
-/* creates a label "path" based on the column path */
-function oilsRptMakeLabel(path) {
- var parts = path.split(/-/);
- var str = '';
- for( var i = 0; i < parts.length; i++ ) {
- if(i%2 == 0) {
- if( i == 0 )
- str += oilsIDL[parts[i]].label;
- } else {
- var f = oilsRptFindField(oilsIDL[parts[i-1]], parts[i]);
- str += ":"+f.label;
- }
- }
- return str;
-}
-
-
/* adds an item to the display window */
function oilsAddRptDisplayItem(path, name, tform, params) {
if( ! oilsAddSelectorItem(oilsRptDisplaySelector, path, name) )
<div id='oils_rpt_editor_div'>
- <table>
+ <table width='100%'>
<tbody>
<tr>
<td>Template Name:</td>
</tr>
<tr><td colspan='2'><hr/></td></tr>
<tr>
+ <td>Choose a report folder as the destination: </td>
+ <td id='oils_rpt_report_editor_dest_folder'/>
+ </tr>
+ <tr><td colspan='2'><hr/></td></tr>
+ <tr>
<td colspan='2'>
<!--#include virtual="oils_rpt_param_editor.xhtml"-->
</td>
--- /dev/null
+<div id='oils_rpt_folder_manager_div' class='hide_me' style='margin-top: 10px; text-align: center;'>
+ <select id='oils_rpt_folder_manager_actions'>
+ <option value='change_name'>Change folder name</option>
+ <option value='create_sub_folder'>Create a new sub-folder</option>
+ <option id='oils_rpt_folder_manager_share_opt' value='share'>Share this folder</option>
+ <option id='oils_rpt_folder_manager_unshare_opt' value='unshare'>Hide (un-share) this folder</option>
+ </select>
+ <input id='oils_rpt_folder_manager_actions_submit' type='submit' value='Go'/>
+
+ <div id='oils_rpt_folder_manager_action_div' style='margin: 15px;'>
+
+ <div id='oils_rpt_folder_manager_change_name_div'>
+ Enter new name:
+ <input id='oils_rpt_folder_manager_name_input' type='text'/>
+ <input type='submit' value='Submit' id='oils_rpt_folder_manager_change_name_submit'/>
+ </div>
+
+ <div id='oils_rpt_folder_manager_create_sub'>
+ <table class='oils_rpt_generic_table'>
+ <tbody>
+ <tr>
+ <td>Folder Name:</td>
+ <td><input id='oils_rpt_folder_manager_sub_name' type='text'/></td>
+ </tr>
+ <tr>
+ <td>Share this folder:</td>
+ <td>
+ <select id='oils_rpt_folder_manager_sub_shared'>
+ <option value='no'>Do not share</option>
+ <option value='yes'>Share</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>Share with:</td>
+ <td><select id='oils_rpt_folder_manager_sub_lib_picker'/></td>
+ </tr>
+ <tr><td colspan='2' align='center'>
+ <input type='submit' value='Create Sub Folder'
+ id='oils_rpt_folder_manager_sub_lib_create'/>
+ </td></tr>
+ </tbody>
+ </table>
+ </div>
+
+ </div>
+
+ <span class='hide_me' id='oils_rpt_folder_manager_change_name_confirm'>
+ Are you sure you wish to change this folder's name?
+ </span>
+ <span class='hide_me' id='oils_rpt_folder_manager_new_confirm'>
+ Are you sure you wish to create new subfolder
+ </span>
+
+</div>
-
function oilsRptFetchTemplate(id) {
var t = oilsRptGetCache('rt', id);
if(!t) {
}
-
/* generic folder window class */
oilsRptSetSubClass('oilsRptFolderWindow', 'oilsRptObject');
function oilsRptFolderWindow(type, folderId) {
oilsRptFolderWindow.prototype.draw = function() {
+ unHideMe(DOM.oils_rpt_folder_window_contents_div);
+ hideMe(DOM.oils_rpt_folder_manager_div);
+
+ DOM.oils_rpt_folder_window_manage_tab.onclick = function() {
+ unHideMe(DOM.oils_rpt_folder_window_contents_div);
+ hideMe(DOM.oils_rpt_folder_manager_div);
+ }
+ DOM.oils_rpt_folder_window_edit_tab.onclick = function() {
+ hideMe(DOM.oils_rpt_folder_window_contents_div);
+ unHideMe(DOM.oils_rpt_folder_manager_div);
+ }
+
+ this.setFolderEditActions();
hideMe(DOM.oils_rpt_template_folder_new_report);
unHideMe(DOM.oils_rpt_folder_table_right_td);
unHideMe(opt);
else hideMe(opt);
}
+
+ this.drawEditActions();
+
+}
+
+oilsRptFolderWindow.prototype.drawEditActions = function() {
+ if( this.folderNode.folder.owner().id() != USER.id() )
+ hideMe(DOM.oils_rpt_folder_manager_tab_table);
+ else
+ unHideMe(DOM.oils_rpt_folder_manager_tab_table);
+
+ if( isTrue(this.folderNode.folder.shared())) {
+ DOM.oils_rpt_folder_manager_share_opt.disabled = true;
+ DOM.oils_rpt_folder_manager_unshare_opt.disabled = false;
+ } else {
+ DOM.oils_rpt_folder_manager_share_opt.disabled = false;
+ DOM.oils_rpt_folder_manager_unshare_opt.disabled = true;
+ }
+
+ this.hideFolderActions();
+ var obj = this;
+
+ DOM.oils_rpt_folder_manager_actions_submit.onclick = function() {
+ var act = getSelectorVal(DOM.oils_rpt_folder_manager_actions);
+ _debug("doing folder action: " + act);
+ obj.hideFolderActions();
+ switch(act) {
+ case 'change_name':
+ unHideMe(DOM.oils_rpt_folder_manager_change_name_div);
+ break;
+ case 'create_sub_folder':
+ unHideMe(DOM.oils_rpt_folder_manager_create_sub);
+ obj.myOrgSelector = new oilsRptMyOrgsWidget(
+ DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou());
+ obj.myOrgSelector.draw();
+ break;
+ }
+ }
+
+}
+
+
+oilsRptFolderWindow.prototype.hideFolderActions = function() {
+ hideMe(DOM.oils_rpt_folder_manager_change_name_div);
+ hideMe(DOM.oils_rpt_folder_manager_create_sub);
}
+
oilsRptFolderWindow.prototype.doFolderAction = function() {
var objs = this.fmTable.getSelected();
if( objs.length == 0 )
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]));
+ new oilsRptReportEditor(new oilsReport(objs[0]), this);
break;
}
}
}
-/*
-oilsRptTemplateFolderWindow.prototype = new oilsRptFolderWindow();
-oilsRptTemplateFolderWindow.prototype.constructor = oilsRptTemplateFolderWindow;
-oilsRptTemplateFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
-function oilsRptTemplateFolderWindow(node) { this.init2(node, 'template'); }
-
-oilsRptTemplateFolderWindow.prototype.draw = function() {
- this.openWindow();
- this.fetchFolderData('template', DOM.oils_rpt_folder_contents_selector, oilsRptTemplateCache);
- var obj = this;
-
- DOM.oils_rpt_template_folder_window_go.onclick = function() {
- var action = getSelectorVal(DOM.oils_rpt_template_action_selector);
- var template = getSelectorVal(DOM.oils_rpt_template_selector);
- switch(action) {
- case 'create_report':
- obj.createReport(template);
- break;
- }
- }
-}
-
-
-oilsRptTemplateFolderWindow.prototype.createReport = function(templateId) {
- unHideMe(DOM.oils_rpt_template_folder_new_report);
- DOM.oils_rpt_template_folder_new_report_next.onclick = function() {
- var name = DOM.oils_rpt_template_folder_new_report_name.value;
- var desc = DOM.oils_rpt_template_folder_new_report_desc.value;
- var rpt = new rr();
- rpt.template(templateId);
- rpt.name(name);
- rpt.description(desc);
- DOM.oils_rpt_template_folder_window_contents_div.appendChild(
- DOM.oils_rpt_param_editor_div);
- unHideMe(DOM.oils_rpt_param_editor_div);
- var e = new oilsRptParamEditor(
- new oilsReport(oilsRptFetchTemplate(templateId), rpt),
- DOM.oils_rpt_param_editor_tbody);
- e.draw();
- }
+oilsRptFolderWindow.prototype.setSelected = function(folderNode) {
+ this.selectedFolder = folderNode;
}
+oilsRptFolderWindow.prototype.setFolderEditActions = function() {
+ var folder = this.folderNode.folder;
-
-oilsRptReportFolderWindow.prototype = new oilsRptFolderWindow();
-oilsRptReportFolderWindow.prototype.constructor = oilsRptReportFolderWindow;
-oilsRptReportFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
-function oilsRptReportFolderWindow(node) { this.init2(node, 'report'); }
-
-oilsRptReportFolderWindow.prototype.draw = function() {
- this.openWindow();
var obj = this;
- this.fetchFolderData('report',
- DOM.oils_rpt_report_selector, oilsRptReportCache,
- function() {
- appendClear(DOM.oils_rpt_report_description,
- text(obj.getSelectedReport().description()));
+ DOM.oils_rpt_folder_manager_name_input.value = folder.name();
+ DOM.oils_rpt_folder_manager_change_name_submit.onclick = function() {
+ var name = DOM.oils_rpt_folder_manager_name_input.value;
+ if(name) {
+ folder.name( name );
+ if(confirmId('oils_rpt_folder_manager_change_name_confirm')) {
+ oilsRptUpdateFolder(folder, obj.type,
+ function(success) {
+ if(success) oilsRptAlertSuccess();
+ }
+ );
}
- );
-
- DOM.oils_rpt_report_folder_window_go.onclick = function() {
- var rpt = obj.getSelectedReport();
- var tmpl = oilsRptFetchTemplate(rpt.template());
- obj.oilsReport = new oilsReport( tmpl, rpt );
- };
-}
-
-oilsRptReportFolderWindow.prototype.drawParamEditor = function(params) {
- _debug('drawing params: \n' + formatJSON(js2JSON(params)));
-}
-
-
-var oilsRptReportFolderSelectParamRow;
-oilsRptReportFolderWindow.prototype.drawSelectParamEditor = function(params) {
- if(params.length == 0) return;
- //unHideMe(DOM.oils_rpt_report_folder_window_display_params_table);
-
- //var tbody = $n(DOM.oils_rpt_report_folder_window_display_params_table,'tbody');
- //if(!oilsRptReportFolderSelectParamRow)
- //oilsRptReportFolderSelectParamRow = tbody.removeChild($n(tbody,'tr'));
-//
- //for( var p = 0; p < params.length; p++ ) {
-//
- //var row = oilsRptReportFolderSelectParamRow.cloneNode(true);
- //var par = params[p];
- //$n(row, 'column').appendChild(text(par.column.colname));
- //$n(row, 'transform').appendChild(text(par.column.transform));
-//
- //if( typeof par.value == 'string' ) {
- //unHideMe($n(row, 'param'));
- //$n(row, 'param').value = par.value;
- //} else {
- //switch(par.transform) {
- //case 'substring':
- //unHideMe($n(row,'string_substring_widget'));
- //break;
- //}
- //}
- //tbody.appendChild(row);
- //}
-}
-
-oilsRptReportFolderWindow.prototype.drawWhereParamEditor = function(params) {
-}
-
-oilsRptReportFolderWindow.prototype.drawHavingParamEditor = function(params) {
-}
-
-
-
-oilsRptReportFolderWindow.prototype.getSelectedReport = function() {
- return oilsRptReportCache[getSelectorVal(DOM.oils_rpt_report_selector)];
-}
-
-oilsRptReportFolderWindow.prototype.getSelectedAction = function() {
- return getSelectorVal(DOM.oils_rpt_report_selector, force);
-}
+ }
+ }
+ DOM.oils_rpt_folder_manager_sub_lib_create.onclick = function() {
+ var folder;
+ if( obj.type == 'report' ) folder = new rrf();
+ if( obj.type == 'template' ) folder = new rtf();
+ if( obj.type == 'output' ) folder = new rof();
+ folder.owner(USER.id());
+ folder.parent(obj.folderNode.folder.id());
+ folder.name(DOM.oils_rpt_folder_manager_sub_name.value);
+ var shared = getSelectorVal(DOM.oils_rpt_folder_manager_sub_shared);
+ folder.shared( (shared == 'yes') ? 't' : 'f');
+ if( folder.shared() == 't' )
+ folder.share_with( obj.myOrgSelector.getValue() );
+ _debug("Creating new folder: " + js2JSON(folder));
-oilsRptOutputFolderWindow.prototype = new oilsRptFolderWindow();
-oilsRptOutputFolderWindow.prototype.constructor = oilsRptOutputFolderWindow;
-oilsRptOutputFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
-function oilsRptOutputFolderWindow(node) { this.init2(node, 'output'); }
+ if(confirm(DOM.oils_rpt_folder_manager_new_confirm.innerHTML + ' "'+folder.name()+'"')) {
+ oilsRptCreateFolder(folder, obj.type,
+ function(success) {
+ if(success) oilsRptAlertSuccess();
+ }
+ );
+ }
+ }
-oilsRptOutputFolderWindow.prototype.draw = function() {
- this.hideWindows();
- this.openWindow(null);
}
-*/
</tr>
</tbody>
</table>
-
- <!--
- <table id='oils_rpt_report_folder_window_display_params_table' class='hide_me oils_rpt_param_table'>
-
- <thead>
- <tr><td colspan='3' align='center'>Display Transforms</td></tr>
- <tr><td>Column</td><td>Transform</td><td>Parameters</td></tr>
- </thead>
-
- <tbody name='tbody'>
- <tr name='tr'>
- <td name='column'/>
- <td name='transform'/>
- <td>
- <input name='param' type='text' class='hide_me'/>
-
- <div widget='1' name='string_substring_widget' class='hide_me'>
- <span style='padding-left: 5px;'>Offset: </span>
- <input name='string_substring_offset' size='3' value='1'/>
- <span style='padding-left: 5px;'>Length: </span>
- <input name='string_substring_length' size='3' value='1'/>
- </div>
-
- </td>
- </tr>
- </tbody>
- </table>
- -->
-
</div>
this.stId = oilsNextId();
this.srId = oilsNextId();
this.soId = oilsNextId();
- this.orgTrail = {};
- this.orgTrail.template = {};
- this.orgTrail.report = {};
- this.orgTrail.output = {};
+
+ this.ownerFolders = {};
+ this.ownerFolders.template = {};
+ this.ownerFolders.report = {};
+ this.ownerFolders.output = {};
}
oilsRptFolderManager.prototype.draw = function(auth) {
folders = folders.sort(
function(a,b) {
- var asw = a.share_with().id();
- var bsw = b.share_with().id();
- if( asw ) asw = findOrgDepth(findOrgUnit(asw));
+ var asw = a.share_with();
+ var bsw = b.share_with();
+ if( asw ) asw = findOrgDepth(findOrgUnit(asw.id()));
else asw = -1;
- if( bsw ) bsw = findOrgDepth(findOrgUnit(bsw));
+ if( bsw ) bsw = findOrgDepth(findOrgUnit(bsw.id()));
else bsw = -1;
if( asw < bsw ) return 1;
if( asw > bsw ) return -1;
var node = { folder : folder, treeId : id };
oilsRptFolderNodeCache[type][folder.id()] = node;
node.folderWindow = new oilsRptFolderWindow(type, folder.id())
+ _debug("creating folder node for "+folder.name()+" : id = "+folder.id()+' treeId = '+id);
}
}
}
+ id = this.findNode(type, folder.id()).treeId;
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());
id = oilsNextId();
}
}
+ */
+
+ var fname = folder.name();
+
+ if(!mine) {
+ fname = folder.name() + ' ('+folder.share_with().shortname()+')';
+ if(!this.ownerFolders[type][folder.owner().id()]) {
+ tree.addNode(id, pid, folder.owner().usrname());
+ tree.close(pid);
+ pid = id;
+ id = oilsNextId();
+ this.ownerFolders[type][folder.owner().id()] = pid;
+ } else {
+ pid = this.ownerFolders[type][folder.owner().id()];
+ id = oilsNextId();
+ }
+ } else {
+ if(isTrue(folder.shared()))
+ fname = folder.name() + ' ('+folder.share_with().shortname()+')';
+ }
var action = 'javascript:oilsRptObject.find('+
node.folderWindow.id+').draw();'+treename+'.toggle("'+id+'");';
- _debug('adding node '+folder.name()+' pid = '+pid);
- tree.addNode(id, pid, folder.name(), action);
+
+ _debug('adding node '+fname+' id = ' + id + ' pid = '+pid + ' parent = ' + folder.parent() );
+
+ tree.addNode(id, pid, fname, action);
tree.close(pid);
}
}
+/* this only works if the initial folder tree has been drawn
+ if defined, "action" must be a function pointer that takes the
+ folder node as the param */
+var __someid;
+function oilsRptBuildFolder(type, node, treeVar, rootName, action) {
+ removeChildren(node);
+ var tree = new SlimTree(node, treeVar);
+ this.treeId = oilsNextId();
+ tree.addNode(this.treeId, -1, rootName);
+
+ __someid = oilsNextId();
+
+ var cache = oilsRptFolderNodeCache[type];
+
+ for( var c in cache ) {
+ var tid = cache[c].treeId + __someid;
+ var pid = this.treeId;
+ var f = cache[c].folder;
+
+ if(f.parent()) {
+ /* find the parent's tree id so we can latch on to it */
+ var pnode = cache[f.parent()];
+ var pid = pnode.treeId + __someid;
+ }
+
+ tree.addNode(tid, pid, f.name(), __setFolderCB(tree, tid, action, cache[c]));
+ }
+ eval(treeVar +' = tree;');
+}
+
+function __setFolderCB(tree, id, action, node) {
+ var act;
+ if( action )
+ act = function() { tree.toggle(id); action( node ); };
+ return act;
+}
for( var p = 0; p < params.length; p++ ) {
var par = params[p];
var row = oilsRptParamEditor.row.cloneNode(true);
+ $n(row, 'object').appendChild(text(oilsRptMakeLabel(par.relation)));
$n(row, 'column').appendChild(text(par.column.colname));
$n(row, 'action').appendChild(text(par.op));
this.buildWidget(par, $n(row, 'widget')).draw();
<table id='oils_rpt_param_editor_table'>
<thead>
- <tr><td>Column</td><td>Action</td><td>User Params</td></tr>
+ <tr><td>Object</td><td>Column</td><td>Action</td><td>User Params</td></tr>
</thead>
<tbody id='oils_rpt_param_editor_tbody'>
<tr name='tr'>
+ <td name='object'/>
<td name='column'/>
<td name='action'/>
<td name='widget'/>
oilsRptSetSubClass('oilsRptReportEditor', 'oilsRptObject');
+var oilsRptReportEditorFolderTree;
function oilsRptReportEditor(rptObject) {
var tmpl = rptObject.templateObject;
var rpt = rptObject.reportObject;
+ this.folderWindow = folderWindow;
appendClear(DOM.oils_rpt_report_editor_template_name, tmpl.name());
appendClear(DOM.oils_rpt_report_editor_template_creator, tmpl.owner().usrname());
this.paramEditor = new oilsRptParamEditor(
rptObject, DOM.oils_rpt_param_editor_tbody);
this.paramEditor.draw();
+
+ var obj = this;
+ oilsRptBuildFolder(
+ 'report',
+ DOM.oils_rpt_report_editor_dest_folder,
+ 'oilsRptReportEditorFolderTree',
+ 'Report Folders',
+ function(node) { obj.selectedFolder = node; });
}
+
+
+
/* fetchs and draws the report tree */
function oilsDrawRptTree(callback) {
- oilsLoadRptTree(callback);
+ oilsLoadRptTree(function(){oilsRenderRptTree(callback)});
}
/* fetches the IDL XML */
oilsIDL[id] = obj;
}
- oilsRenderRptTree(callback);
+ if( callback ) callback();
+ //oilsRenderRptTree(callback);
}
/* parses the links and fields portion of the IDL */
}
+/*
function oilsRptCacheObject(obj) {
var id = oilsNextId();
oilsRptObjectCache[id] = obj;
function oilsRptFindObject(id) {
return oilsRptObjectCache[id];
}
+*/
function oilsRptCacheObject(type, obj, id) {
if( !oilsRptObjectCache[type] )
return parts.join('-');
}
+/* creates a label "path" based on the column path */
+function oilsRptMakeLabel(path) {
+ var parts = path.split(/-/);
+ var str = '';
+ for( var i = 0; i < parts.length; i++ ) {
+ if(i%2 == 0) {
+ if( i == 0 )
+ str += oilsIDL[parts[i]].label;
+ } else {
+ var f = oilsRptFindField(oilsIDL[parts[i-1]], parts[i]);
+ str += ":"+f.label;
+ }
+ }
+ return str;
+}
+
+
function oilsRptResetParams() {
eval(str);
}
+
+function oilsRptUpdateFolder(folder, type, callback) {
+
+ _debug("updating folder " + folder.id() + ' : ' + folder.name());
+
+ var req = new Request(OILS_RPT_UPDATE_FOLDER, SESSION, type, folder);
+ if( callback ) {
+ req.callback(
+ function(r) {
+ if( r.getResultObject() == 1 )
+ callback(true);
+ else callback(false);
+ }
+ );
+ req.send();
+ } else {
+ req.send(true);
+ return req.result();
+ }
+}
+
+function oilsRptCreateFolder(folder, type, callback) {
+ _debug("creating folder "+ folder.name());
+ var req = new Request(OILS_RPT_CREATE_FOLDER, SESSION, type, folder);
+ if( callback ) {
+ req.callback(
+ function(r) {
+ if( r.getResultObject() > 0 )
+ callback(true);
+ else callback(false);
+ }
+ );
+ req.send();
+ } else {
+ req.send(true);
+ return req.result();
+ }
+}
+
+function oilsRptAlertSuccess() { alertId('oils_rpt_generic_success'); }
+
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 OILS_RPT_FETCH_TEMPLATE = 'open-ils.reporter:open-ils.reporter.template.retrieve';
+var OILS_RPT_UPDATE_FOLDER = 'open-ils.reporter:open-ils.reporter.folder.update';
+var OILS_RPT_CREATE_FOLDER = 'open-ils.reporter:open-ils.reporter.folder.create';
+var OILS_RPT_FETCH_ORG_FULL_PATH = 'open-ils.reporter:open-ils.reporter.org_unit.full_path';
var oilsRptCurrentFolderManager;
}
+/* --------------------------------------------------------------------- */
+
+/* standalone org widget */
+function oilsRptMyOrgsWidget(node, orgid) {
+ this.node = node;
+ this.orgid = orgid;
+}
+
+oilsRptMyOrgsWidget.prototype.draw = function() {
+ var req = new Request(OILS_RPT_FETCH_ORG_FULL_PATH, this.orgid);
+ var obj = this;
+ req.callback(
+ function(r) { obj.drawWidget(r.getResultObject()); }
+ );
+ req.send();
+}
+
+oilsRptMyOrgsWidget.prototype.drawWidget = function(orglist) {
+ var sel = this.node;
+ _debug('here');
+ for( var i = 0; i < orglist.length; i++ ) {
+ var org = orglist[i];
+ _debug('here + ' + org.shortname());
+ var opt = insertSelectorVal( this.node, -1,
+ org.name(), org.id(), null, findOrgDepth(org) );
+ if( org.id() == this.orgid )
+ opt.selected = true;
+ }
+}
+
+oilsRptMyOrgsWidget.prototype.getValue = function() {
+ return getSelectorVal(this.node);
+}
+