]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/reports/oils_rpt_report_editor.js
added report and template delete actions, added report save actions
[working/Evergreen.git] / Open-ILS / web / reports / oils_rpt_report_editor.js
1 oilsRptSetSubClass('oilsRptReportEditor', 'oilsRptObject');
2 var oilsRptReportEditorFolderTree;
3 function oilsRptReportEditor(rptObject, folderWindow) {
4         var tmpl = rptObject.templateObject;
5         var rpt = rptObject.reportObject;
6         this.folderWindow = folderWindow;
7
8         this.template = tmpl;
9         this.report = rpt;
10
11         appendClear(DOM.oils_rpt_report_editor_template_name, tmpl.name());
12         appendClear(DOM.oils_rpt_report_editor_template_creator, tmpl.owner().usrname());
13         appendClear(DOM.oils_rpt_report_editor_template_description, tmpl.description());
14
15         if( rpt ) {
16                 DOM.oils_rpt_report_editor_name.value = rpt.name();
17                 DOM.oils_rpt_report_editor_description.value = rpt.description();
18         }
19         this.paramEditor = new oilsRptParamEditor(
20                 rptObject, DOM.oils_rpt_param_editor_tbody);
21         this.paramEditor.draw();
22
23         var obj = this;
24         oilsRptBuildFolder(
25                 'report',
26                 DOM.oils_rpt_report_editor_dest_folder,
27                 'oilsRptReportEditorFolderTree',
28                 'Report Folders',
29                 function(node) { 
30                         appendClear(DOM.oils_rpt_report_editor_selected_folder, node.folder.name());
31                         obj.selectedFolder = node; });
32
33
34         var obj = this;
35         DOM.oils_rpt_report_editor_save.onclick = function(){obj.save();}
36 }
37
38
39 oilsRptReportEditor.prototype.save = function() {
40         var report = new rr();
41         report.owner( USER.id() );
42         report.template( this.template.id() );
43         report.folder( this.selectedFolder.folder.id() );
44         report.name( DOM.oils_rpt_report_editor_name.value );
45         report.description( DOM.oils_rpt_report_editor_desc.value );
46
47         report.recur('f');
48         var data = {};
49
50         for( var p in this.paramEditor.params ) {
51                 var par = this.paramEditor.params[p];
52                 _debug("adding report param "+par.key+" to report data");
53                 data[par.key] = par.widget.getValue();
54         }
55         data = js2JSON(data);
56
57         _debug("complete report data = "+data);
58         report.data(data);
59
60         debug("Built report:\n"+js2JSON(report));
61
62         var req = new Request(OILS_RPT_CREATE_REPORT, SESSION, report );
63         req.callback(
64                 function(r) {
65                         var res = r.getResultObject();
66                         oilsRptAlertSuccess();
67                         oilsRptCurrentFolderManager.draw();
68                 }
69         );
70         req.send();
71 }
72