oilsRpt.name = n;
oilsRptDisplaySelector = DOM.oils_rpt_display_selector;
oilsRptFilterSelector = DOM.oils_rpt_filter_selector;
- oilsRptHavingSelector= DOM.oils_rpt_agg_filter_selector;
+ oilsRptHavingSelector = DOM.oils_rpt_agg_filter_selector;
removeChildren(oilsRptDisplaySelector);
removeChildren(oilsRptFilterSelector);
removeChildren(oilsRptHavingSelector);
+ //removeChildren(oilsRptOrderBySelector);
oilsRptResetParams();
}
hideMe(DOM.oils_rpt_tform_div);
hideMe(DOM.oils_rpt_filter_div);
hideMe(DOM.oils_rpt_agg_filter_div);
+ hideMe(DOM.oils_rpt_order_by_div);
}
oilsRptDrawTransformWindow(path, col, cls, field);
oilsRptDrawFilterWindow(path, col, cls, field);
oilsRptDrawHavingWindow(path, col, cls, field);
+ oilsRptDrawOrderByWindow(path, col, cls, field);
buildFloatingDiv(div, 600);
function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_filter_div)};
DOM.oils_rpt_agg_filter_tab.onclick =
function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_agg_filter_div)};
+ DOM.oils_rpt_order_by_tab.onclick =
+ function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_order_by_div)};
DOM.oils_rpt_tform_tab.onclick();
DOM.oils_rpt_column_editor_close_button.onclick = function(){hideMe(div);};
DOM.oils_rpt_tform_label_input.value, tformPicker.getSelected() );
};
-
DOM.oils_rpt_tform_label_input.focus();
DOM.oils_rpt_tform_label_input.select();
_debug("Building transform window for datatype "+dtype);
}
+
+
+function oilsRptDrawOrderByWindow(path, col, cls, field) {
+ var sel = DOM.oils_rpt_order_by_selector;
+ removeChildren(sel);
+ DOM.oils_rpt_order_by_submit.onclick = function() {
+ alert('make me work');
+ }
+}
+
+
+
<table id='oils_rpt_editor_tab_table' class='oils_rpt_tab_table'><tbody>
<tr>
- <td width='33%'><a id='oils_rpt_tform_tab' href='javascript:void(0);'>Display Items</a></td>
- <td width='33%'><a id='oils_rpt_filter_tab' href='javascript:void(0);'>Filters</a></td>
- <td width='33%'><a id='oils_rpt_agg_filter_tab' href='javascript:void(0);'>Aggregate Filters</a></td>
+ <td width='25%'><a id='oils_rpt_tform_tab' href='javascript:void(0);'>Display Items</a></td>
+ <td width='25%'><a id='oils_rpt_filter_tab' href='javascript:void(0);'>Filters</a></td>
+ <td width='25%'><a id='oils_rpt_agg_filter_tab' href='javascript:void(0);'>Aggregate Filters</a></td>
+ <td width='25%'><a id='oils_rpt_order_by_tab' href='javascript:void(0);'>Column Sorting</a></td>
</tr>
</tbody></table>
</div>
+
+ <div id='oils_rpt_order_by_div' class='hide_me'>
+ <div class='oils_rpt_field_editor_window'>
+ <div style='margin-bottom: 10px;'>
+ Select how the columns should be sorted
+ </div>
+ <div>
+ <table><tbody>
+ <!--
+ <tr>
+ <td>Choose a column: </td>
+ <td>
+ <select id='oils_rpt_order_by_selector'/>
+ </td>
+ </tr>
+ -->
+ <tr>
+ <td>Choose the direction the sorting should occur: </td>
+ <td>
+ <select id='oils_rpt_order_by_dir'>
+ <option selected='selected'>Ascending</option>
+ <option value='descending'>Descending</option>
+ </select>
+ </td>
+ </tr></tbody></table>
+ </div>
+ </div>
+ <button id='oils_rpt_order_by_submit'>Add Sort</button>
+ </div>
+
+
+
<div id='oils_rpt_column_editor_close_div'>
<button id='oils_rpt_column_editor_close_button'>Close Window</button>
</div>
oilsRptFolderWindow.prototype.draw = function() {
- _debug(this.folderNode.folder.owner().id() + ' : ' + USER.id());
+ _debug('drawing folder window for ' + this.folderNode.folder.name() );
var obj = this;
setSelector(DOM.oils_rpt_output_limit_selector, oilsRptOutputLimit);
var action = getSelectorVal(DOM.oils_rpt_folder_contents_action_selector);
var obj = this;
+ var successCallback = function(errid) {
+ if(errid) alertId(errid)
+ else oilsRptAlertSuccess();
+ obj.draw();
+ };
+
+ var obj = this;
switch(action) {
case 'create_report' :
hideMe(DOM.oils_rpt_folder_table_right_td);
new oilsRptReportEditor(new oilsReport(objs[0]), this);
break;
case 'delete_report' :
- for(var r = 0; r < objs.length; r++)
- this.deleteReport(objs[r]);
+ if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return;
+ this.deleteReports(objs, 0, successCallback);
break;
+
case 'delete_template' :
- for(var r = 0; r < objs.length; r++)
- this.deleteTemplate(objs[r]);
+ if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return;
+ this.deleteTemplates(objs, 0, successCallback);
break;
+
case 'show_output':
this.showOutput(objs[0]);
break;
+
case 'delete_output':
- for( var i = 0; i < objs.length; i++ ) {
- if( objs[i].runner().id() != USER.id() )
- return alertId('oils_rpt_folder_contents_no_delete');
- }
- this.deleteOutputs(objs,0,
- function(){
- oilsRptAlertSuccess();
- obj.draw();
- }
- );
+ if(!confirmId('oils_rpt_folder_contents_confirm_delete')) return;
+ this.deleteOutputs(objs,0, successCallback);
break;
}
}
-oilsRptFolderWindow.prototype.deleteOutputs = function(list, idx, callback) {
- if( idx >= list.length ) return callback();
- var req = new Request(OILS_RPT_DELETE_SCHEDULE,SESSION,list[idx].id());
- var obj = this;
- req.callback(function(){obj.deleteOutputs(list, ++idx, callback);});
- req.send();
+oilsRptFolderWindow.prototype.deleteOutputs = function(list, idx, callback, errid) {
+ if( idx >= list.length ) return callback(errid);
+ var output = list[idx];
+
+ if( list.runner().id() != USER.id() ) {
+ this.deleteOutputs(list, ++idx,
+ callback, 'oils_rpt_folder_contents_no_delete');
+
+ } else {
+ _debug('deleting output ' + output.id());
+ var req = new Request(OILS_RPT_DELETE_SCHEDULE,SESSION,output.id());
+ var obj = this;
+ req.callback(function(){obj.deleteOutputs(list, ++idx, callback, errid);});
+ req.send();
+ }
}
oilsRptFolderWindow.prototype.showOutput = function(sched) {
}
-oilsRptFolderWindow.prototype.deleteReport = function(report) {
- if( report.owner().id() != USER.id() )
- return alertId('oils_rpt_folder_contents_no_delete');
- if(!confirmId('oils_rpt_folder_contents_confirm_report_delete')) return;
- var req = new Request(OILS_RPT_DELETE_REPORT, SESSION, report.id());
- req.callback(
- function(r) {
- var res = r.getResultObject();
- if( res == 1 ) {
- oilsRptAlertSuccess();
- oilsRptCurrentFolderManager.draw();
+oilsRptFolderWindow.prototype.deleteReports = function(list, idx, callback, errid) {
+ if( idx >= list.length ) return callback(errid);
+ var report = list[idx];
+
+ if( report.owner().id() != USER.id() ) {
+ this.deleteReports(list, ++idx,
+ callback, 'oils_rpt_folder_contents_no_delete');
+
+ } else {
+
+ var obj = this;
+ var req0 = new Request(OILS_RPT_REPORT_HAS_OUTS, SESSION, report.id());
+ req0.callback(
+ function(r0) {
+ var r0es = r0.getResultObject();
+ if( r0es != '0' ) {
+ obj.deleteReports(list, ++idx,
+ callback, 'oils_rpt_folder_contents_report_no_delete');
+ } else {
+ _debug('deleting report ' + report.id());
+ var req = new Request(OILS_RPT_DELETE_REPORT, SESSION, report.id());
+ req.callback(function(r) {
+ var res = r.getResultObject();
+ if( res != 1 ) return oilsRptAlertFailure();
+ obj.deleteReports(list, ++idx, callback, errid)
+ });
+ req.send();
+ }
}
- }
- );
- req.send();
+ );
+
+ req0.send();
+ }
}
-oilsRptFolderWindow.prototype.deleteTemplate = function(tmpl) {
- if( tmpl.owner().id() != USER.id() )
- return alertId('oils_rpt_folder_contents_no_delete');
- var req0 = new Request( OILS_RPT_TEMPLATE_HAS_RPTS, SESSION, tmpl.id() );
- req0.callback(
- function(r0) {
- var resp = r0.getResultObject();
- if( resp != '0' )
- return alertId('oils_rpt_folder_contents_template_no_delete');
- if(!confirmId('oils_rpt_folder_contents_confirm_template_delete')) return;
- var req = new Request(OILS_RPT_DELETE_TEMPLATE, SESSION, tmpl.id());
- req.callback(
- function(r) {
- var res = r.getResultObject();
- if( res == 1 ) {
- oilsRptAlertSuccess();
- oilsRptCurrentFolderManager.draw();
- }
+oilsRptFolderWindow.prototype.deleteTemplates = function(list, idx, callback, errid) {
+ if( idx >= list.length ) return callback(errid);
+ var tmpl = list[idx];
+
+ var obj = this;
+ if( tmpl.owner().id() != USER.id() ) {
+ this.deleteTemplates(list, ++idx,
+ callback, 'oils_rpt_folder_contents_no_delete');
+
+ } else {
+
+ var req0 = new Request( OILS_RPT_TEMPLATE_HAS_RPTS, SESSION, tmpl.id() );
+ req0.callback(
+ function(r0) {
+ var resp = r0.getResultObject();
+
+ if( resp != '0' ) {
+ obj.deleteTemplates(list, ++idx,
+ callback, 'oils_rpt_folder_contents_template_no_delete');
+
+ } else {
+ _debug('deleting template ' + tmpl.id());
+ var req = new Request(OILS_RPT_DELETE_TEMPLATE, SESSION, tmpl.id());
+ req.callback(function(r) {
+ var res = r.getResultObject();
+ if( res != 1 ) return oilsRptAlertFailure();
+ obj.deleteTemplates(list, ++idx, callback, errid)
+ });
+ req.send();
}
- );
- req.send();
- }
- );
- req0.send();
+ }
+ );
+ req0.send();
+ }
}
<div id='oils_rpt_folder_window_contents_div'>
- <div style='width:100%;text-align: center; margin: 10px;'>
+
+
+ <!--
+ <div style='width:100%;text-align: right; margin: 10px; vertical-align: top'>
<a id='oils_rpt_folder_window_contents_new_template' href='javascript:void(0);'><b>Create a new Template for this folder</b></a>
</div>
+ -->
<table id='oils_rpt_folder_window_contents_table'>
<tbody>
<tr>
- <td>
+ <td colspan='2'>
<span>
<select id='oils_rpt_folder_contents_action_selector' style='width: auto;'>
<option type='template' value='create_report'>Create a new report from selected template</option>
</select>
</div>
</td>
+ <td style='text-align:right;'>
+ <a id='oils_rpt_folder_window_contents_new_template'
+ href='javascript:void(0);'><b>Create a new Template for this folder</b></a>
+ </td>
</tr>
<tr class='oils_rpt_folder_window_contents_row'>
- <td width='100%'>
+ <td colspan='2'>
<div id='oils_rpt_folder_contents_selector'/>
</td>
</tr>
</tbody>
</table>
- <span class='hide_me' id='oils_rpt_folder_contents_confirm_report_delete'>
- Are you sure you wish to delete the selected report(s)?
+ <span class='hide_me' id='oils_rpt_folder_contents_confirm_delete'>
+ Are you sure you wish to delete the selected item(s)?
</span>
- <span class='hide_me' id='oils_rpt_folder_contents_confirm_template_delete'>
- Are you sure you wish to delete the selected template(s)?
+ <span class='hide_me' id='oils_rpt_folder_contents_template_no_delete'>
+ One or more of the selected templates could not be deleted because
+ there are reports that depend on them.
</span>
- <span class='hide_me' id='oils_rpt_folder_contents_template_no_delete'>
- The selected template could not be deleted because there are reports
- that depend on it.
+ <span class='hide_me' id='oils_rpt_folder_contents_report_no_delete'>
+ One or more of The selected reports could not be deleted because
+ there are outputs that depend on them.
</span>
+
<span class='hide_me' id='oils_rpt_folder_contents_no_delete'>
You may not delete another user's items
</span>