1 oilsRptSetSubClass('oilsRptReportEditor', 'oilsRptObject');
2 var oilsRptReportEditorFolderTree;
4 function oilsRptReportEditor(rptObject, folderWindow) {
5 var tmpl = rptObject.templateObject;
6 var rpt = rptObject.reportObject;
7 this.folderWindow = folderWindow;
12 appendClear(DOM.oils_rpt_report_editor_template_name, tmpl.name());
13 appendClear(DOM.oils_rpt_report_editor_template_creator, tmpl.owner().usrname());
14 appendClear(DOM.oils_rpt_report_editor_template_description, tmpl.description());
17 DOM.oils_rpt_report_editor_name.value = rpt.name();
18 DOM.oils_rpt_report_editor_description.value = rpt.description();
20 this.paramEditor = new oilsRptParamEditor(
21 rptObject, DOM.oils_rpt_param_editor_tbody);
22 this.paramEditor.draw();
27 DOM.oils_rpt_report_editor_dest_folder,
28 'oilsRptReportEditorFolderTree',
31 appendClear(DOM.oils_rpt_report_editor_selected_folder, node.folder.name());
32 obj.selectedFolder = node; });
37 DOM.oils_rpt_output_dest_folder,
38 'oilsRptReportEditorOutputTree',
41 appendClear(DOM.oils_rpt_output_selected_folder, node.folder.name());
42 obj.selectedOutputFolder = node; });
46 DOM.oils_rpt_report_editor_save.onclick = function(){obj.save();}
47 DOM.oils_rpt_param_editor_sched_email.value = USER.email();
48 DOM.oils_rpt_param_editor_sched_start_date.value = mkYearMonDay();
52 oilsRptReportEditor.prototype.save = function() {
53 var report = new rr();
55 if(!this.selectedFolder)
56 return alert('Please provide a report folder');
58 report.owner( USER.id() );
59 report.template( this.template.id() );
60 report.folder( this.selectedFolder.folder.id() );
61 report.name( DOM.oils_rpt_report_editor_name.value );
62 report.description( DOM.oils_rpt_report_editor_desc.value );
63 report.recur(this.paramEditor.recur());
64 report.recurance(this.paramEditor.recurInterval());
67 /* collect the param data */
69 for( var p in this.paramEditor.params ) {
70 var par = this.paramEditor.params[p];
71 _debug("adding report param "+par.key+" to report data");
73 if( par.relWidgetChecked )
74 data[par.key] = par.relWidget.getValue();
77 data[par.key] = par.widget.getValue();
81 _debug("complete report data = "+data);
84 _debug("Built report:\n"+js2JSON(report));
88 if( DOM.oils_rpt_report_editor_run_now.checked ) {
89 DOM.oils_rpt_report_editor_run_now.checked = false;
94 var dt = DOM.oils_rpt_param_editor_sched_start_date.value;
95 if(!dt || !dt.match(/^\d{4}-\d{2}-\d{2}$/) ) {
96 /* for now.. make this better in the future */
97 alert('invalid start date - YYYY-MM-DD');
100 var hour = getSelectorVal(DOM.oils_rpt_param_editor_sched_start_hour);
101 time = dt +'T'+hour+':00';
102 _debug("built run_time "+time);
105 if(!this.selectedOutputFolder)
106 return alert('Please provide an output folder');
108 var schedule = new rs();
109 schedule.folder(this.selectedOutputFolder.folder.id());
110 schedule.email(DOM.oils_rpt_param_editor_sched_email.value);
111 schedule.run_time(time);
112 schedule.runner(USER.id());
114 schedule.excel_format((DOM.oils_rpt_format_excel.checked) ? 't' : 'f');
115 schedule.html_format((DOM.oils_rpt_format_html.checked) ? 't' : 'f');
116 schedule.csv_format((DOM.oils_rpt_format_csv.checked) ? 't' : 'f');
117 //schedule.chart_pie((DOM.oils_rpt_format_chart_pie.checked) ? 't' : 'f');
118 schedule.chart_bar((DOM.oils_rpt_format_chart_bar.checked) ? 't' : 'f');
119 schedule.chart_line((DOM.oils_rpt_format_chart_line.checked) ? 't' : 'f');
122 debugFMObject(report);
123 debugFMObject(schedule);
128 var req = new Request(OILS_RPT_CREATE_REPORT, SESSION, report, schedule );
131 var res = r.getResultObject();
132 oilsRptAlertSuccess();
133 oilsRptCurrentFolderManager.draw();
134 obj.folderWindow.draw();