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;
+ fetchHighestPermOrgs(SESSION, USER.id(), ['RUN_REPORTS']);
+ if( PERMS['RUN_REPORTS'] == -1 ) {
+ unHideMe(DOM.oils_rpt_permission_denied);
+ hideMe(DOM.oils_rpt_tree_loading);
+ return false;
+ }
+
+ oilsRptCookie = new HTTP.Cookies();
oilsRptCurrentOrg = USER.ws_ou();
+ cookieManager.write(COOKIE_SES, SESSION, -1, '/');
+ cookieManager.write('ws_ou', USER.ws_ou(), -1, '/');
oilsRptFetchOrgTree(
function() {
)
}
);
+ return true;
}
function oilsRtpInitFolders() {
<!--#include virtual="oils_rpt_common.xhtml"-->
</head>
- <body onload='oilsInitReports();oilsRtpInitFolders();' onunload='oilsCleanupReports();'>
+ <body onload='if(oilsInitReports())oilsRtpInitFolders();' onunload='oilsCleanupReports();'>
<div class='welcome_box'>
<span>You are logged in as </span><b><span id='oils_rpt_user'/></b>
</div>
+ <div id='oils_rpt_permission_denied' class='hide_me'>
+ You do not have sufficient permissions to run reports
+ </div>
+
<!--
<div>
<a class='oils_rpt_main_link' href='javascript:_l("oils_rpt_builder.xhtml");'>Build a New Report Template</a>
* grabs and builds the IDL tree
*/
function oilsInitReportBuilder() {
- oilsInitReports();
+ if(!oilsInitReports()) return false;
oilsReportBuilderReset();
DOM.oils_rpt_table.onclick =
function(){hideMe(DOM.oils_rpt_column_editor)};
-function oilsRptFetchTemplate(id) {
- var t = oilsRptGetCache('rt', id);
- if(!t) {
- var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
- r.send(true);
- t = r.result();
- oilsRptCacheObject('rt', t, id);
- }
- return t;
-}
+
/* generic folder window class */
_debug(this.folderNode.folder.owner().id() + ' : ' + USER.id());
+ var obj = this;
+ setSelector(DOM.oils_rpt_output_limit_selector, oilsRptOutputLimit);
+ DOM.oils_rpt_output_limit_redraw.onclick = function() {
+ oilsRptOutputLimit = getSelectorVal(DOM.oils_rpt_output_limit_selector);
+ obj.draw();
+ }
+
if( this.folderNode.folder.owner().id() == USER.id() && this.type == 'template')
unHideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
else hideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
hideMe(DOM.oils_rpt_folder_table_alt_td);
this.drawFolderDetails();
- var obj = this;
DOM.oils_rpt_folder_content_action_go.onclick =
function() {obj.doFolderAction()}
}
sel.options[0].selected = true;
+ /*
+ hideMe(DOM.oils_rpt_output_limit_selector.parentNode);
+ if( this.type == 'output' )
+ unHideMe(DOM.oils_rpt_output_limit_selector.parentNode);
+ */
+
this.drawEditActions();
}
oilsRptFolderWindow.prototype.fetchFolderData = function(callback) {
removeChildren(this.selector);
var req = new Request(OILS_RPT_FETCH_FOLDER_DATA,
- SESSION, this.type, this.folderNode.folder.id());
-
- if(this.type == 'output')
- req = new Request(OILS_RPT_FETCH_OUTPUT, SESSION, this.folderNode.folder.id());
+ SESSION, this.type, this.folderNode.folder.id(), oilsRptOutputLimit);
+ if(this.type == 'output') {
+ req = new Request(OILS_RPT_FETCH_OUTPUT,
+ SESSION, this.folderNode.folder.id(), oilsRptOutputLimit);
+ }
var obj = this;
removeChildren(obj.selector);
req.callback(
function(r) {
var res = r.getResultObject();
- obj.fmTable = drawFMObjectTable(
- {
- dest : obj.selector,
- obj : res,
- selectCol : true,
- selectColName : 'Select',
- selectAllName : 'All',
- selectNoneName : 'None'
+ if( obj.type == 'output' ) {
+ obj.fleshSchedules(res, 0);
+ } else {
+ obj.fmTable = drawFMObjectTable(
+ {
+ dest : obj.selector,
+ obj : res,
+ selectCol : true,
+ selectColName : 'Select',
+ selectAllName : 'All',
+ selectNoneName : 'None'
+ }
+ );
+ }
+ }
+ );
+ req.send();
+}
+
+
+oilsRptFolderWindow.prototype.fleshSchedules = function(list, idx) {
+ if( idx >= list.length ) {
+ this.fmTable = drawFMObjectTable(
+ {
+ dest : this.selector,
+ obj : list,
+ selectCol : true,
+ selectColName : 'Select',
+ selectAllName : 'All',
+ selectNoneName : 'None'
+ }
+ );
+ return;
+ }
+
+ var sched = list[idx];
+ var obj = this;
+ oilsRptFetchUser(sched.runner(),
+ function(user) {
+ sched.runner(user);
+ oilsRptFetchReport(sched.report(),
+ function(report) {
+ sched.report(report);
+ oilsRptFetchTemplate(report.template(),
+ function(template) {
+ report.template(template);
+ obj.fleshSchedules(list, ++idx);
+ }
+ );
}
);
- if(callback) callback();
}
);
- req.send();
}
<tr class='oils_rpt_folder_window_contents_row'>
<td width='100%' align='center'>
<table width='100%'><tbody>
- <tr><td align='center'><h4>Folder Contents</h4></td></tr>
+ <tr>
+ <td align='center'>
+ <h4>Folder Contents</h4>
+ <span style='padding-left: 10px;'>
+ Limit output to
+ <select id='oils_rpt_output_limit_selector'>
+ <option value='5'>5</option>
+ <option value='10'>10</option>
+ <option value='25'>25</option>
+ <option value='50'>50</option>
+ <option value=''>All</option>
+ </select>
+ rows.
+ <input type='submit' value='Re-Draw' id='oils_rpt_output_limit_redraw'/>
+ </span>
+ </td>
+ </tr>
<tr><td><div id='oils_rpt_folder_contents_selector'/></td></tr>
</tbody></table>
</td>
schedule.folder(this.selectedOutputFolder.folder.id());
schedule.email(DOM.oils_rpt_param_editor_sched_email.value);
schedule.run_time(time);
+ schedule.runner(USER.id());
+
+ schedule.excel_format((DOM.oils_rpt_format_excel.checked) ? 't' : 'f');
+ schedule.html_format((DOM.oils_rpt_format_html.checked) ? 't' : 'f');
+ schedule.csv_format((DOM.oils_rpt_format_csv.checked) ? 't' : 'f');
+ schedule.chart_pie((DOM.oils_rpt_format_chart_pie.checked) ? 't' : 'f');
+ schedule.chart_bar((DOM.oils_rpt_format_chart_bar.checked) ? 't' : 'f');
+ schedule.chart_line((DOM.oils_rpt_format_chart_line.checked) ? 't' : 'f');
+
+ debugFMObject(schedule);
_debug("Built schedule:\n"+js2JSON(schedule));
+ return; /* XXX */
+
var req = new Request(OILS_RPT_CREATE_REPORT, SESSION, report, schedule );
req.callback(
function(r) {
function oilsRptGetCache(type, id) {
if( !oilsRptObjectCache[type] )
return null;
- return oilsRptObjectCache[type][i];
+ return oilsRptObjectCache[type][id];
}
}
}
+/*
function oilsRptFetchReport(id, callback) {
var req = new Request(OILS_RPT_FETCH_REPORT, SESSION, id);
req.callback(function(r){ callback(r.getResultObject());});
req.send();
}
+*/
+
+function oilsRptFetchReport(id, callback) {
+ var r = oilsRptGetCache('rr', id);
+ if(r) return callback(r);
+ var req = new Request(OILS_RPT_FETCH_REPORT, SESSION, id);
+ req.callback(
+ function(res) {
+ var rpt = res.getResultObject();
+ oilsRptCacheObject('rr', rpt, id);
+ callback(rpt);
+ }
+ );
+ req.send();
+}
+
+function oilsRptFetchUser(id, callback) {
+ var r = oilsRptGetCache('au', id);
+ if(r) return callback(r);
+ var req = new Request(FETCH_FLESHED_USER, SESSION, id, []);
+ req.callback(
+ function(res) {
+ var user = res.getResultObject();
+ oilsRptCacheObject('au', user, id);
+ callback(user);
+ }
+ );
+ req.send();
+}
+
+function oilsRptFetchTemplate(id, callback) {
+ var t = oilsRptGetCache('rt', id);
+ if(t) return callback(t);
+ var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
+ r.callback(
+ function(res) {
+ var tmpl = res.getResultObject();
+ oilsRptCacheObject('rt', tmpl, id);
+ callback(tmpl);
+ }
+ );
+ r.send();
+}
function oilsRptAlertSuccess() { alertId('oils_rpt_generic_success'); }
function oilsRptBuildOutputLink(tid, rid, sid) {
return OILS_IDL_OUTPUT_URL + tid+'/'+rid+'/'+sid+'/'+ OILS_IDL_OUTPUT_FILE;
}
+
+
var oilsRptCurrentOrg;
+var oilsRptCookie;
+
var oilsRptTemplateFolderTree;
var oilsRptReportFolderTree;
var oilsRptOutputFolderTree;
var oilsRptSharedReportFolderTree;
var oilsRptSharedOutputFolderTree;
+var oilsRptOutputLimit = 10;
+
/* URL to retrieve the IDL from */
var OILS_IDL_URL = "/reports/fm_IDL.xml";