]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/reports/oils_rpt_folder_window.js
made the folder window more generic, showing contents via fm_table objects
[working/Evergreen.git] / Open-ILS / web / reports / oils_rpt_folder_window.js
1
2
3 function oilsRptFetchTemplate(id) {
4         var t = oilsRptGetCache('rt', id);
5         if(!t) {
6                 var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
7                 r.send(true);
8                 t = r.result();
9                 oilsRptCacheObject('rt', t, id);
10         }
11         return t;
12 }
13
14
15
16 /* generic folder window class */
17 oilsRptSetSubClass('oilsRptFolderWindow', 'oilsRptObject');
18 function oilsRptFolderWindow(type, folderId) { 
19         var node = oilsRptCurrentFolderManager.findNode(type, folderId);
20         this.init2(node, type);
21         this.selector = DOM.oils_rpt_folder_contents_selector;
22 }
23
24
25 oilsRptFolderWindow.prototype.init2 = function(node, type) {
26         this.folderNode = node;
27         this.type = type;
28         this.init();
29 }
30
31
32 oilsRptFolderWindow.prototype.draw = function() {
33
34         hideMe(DOM.oils_rpt_template_folder_new_report);
35         hideMe(DOM.oils_rpt_param_editor_div);
36         unHideMe(DOM.oils_rpt_folder_table_right_td);
37         this.drawFolderDetails();
38
39         var obj = this;
40         DOM.oils_rpt_folder_content_action_go.onclick = 
41                 function() {obj.doFolderAction()}
42
43         this.fetchFolderData();
44
45         var sel = DOM.oils_rpt_folder_contents_action_selector;
46         for( var i = 0; i < sel.options.length; i++ ) {
47                 var opt = sel.options[i];
48                 if( opt.getAttribute('type') == this.type )
49                         unHideMe(opt);
50                 else hideMe(opt);
51         }
52 }
53
54 oilsRptFolderWindow.prototype.doFolderAction = function() {
55         var objs = this.fmTable.getSelected();
56 }
57
58
59 oilsRptFolderWindow.prototype.drawFolderDetails = function() {
60         appendClear(DOM.oils_rpt_folder_creator_label, 
61                 text(this.folderNode.folder.owner().usrname()));
62         appendClear(DOM.oils_rpt_folder_name_label, 
63                 text(this.folderNode.folder.name()));
64 }
65
66
67 oilsRptFolderWindow.prototype.fetchFolderData = function(callback) {
68         removeChildren(this.selector);
69         var req = new Request(OILS_RPT_FETCH_FOLDER_DATA, 
70                 SESSION, this.type, this.folderNode.folder.id());
71         var obj = this;
72         req.callback(
73                 function(r) {
74                         obj.fmTable = drawFMObjectTable( 
75                                 { 
76                                         dest : obj.selector, 
77                                         obj : r.getResultObject(),
78                                         selectCol : true,
79                                         selectColName : 'Select Row'    
80                                 }
81                         );
82                         //sortables_init();
83                         if(callback) callback();
84                 }
85         );
86         req.send();
87 }
88
89
90 /*
91 oilsRptTemplateFolderWindow.prototype = new oilsRptFolderWindow();
92 oilsRptTemplateFolderWindow.prototype.constructor = oilsRptTemplateFolderWindow;
93 oilsRptTemplateFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
94 function oilsRptTemplateFolderWindow(node) { this.init2(node, 'template'); }
95
96 oilsRptTemplateFolderWindow.prototype.draw = function() {
97         this.openWindow();
98         this.fetchFolderData('template', DOM.oils_rpt_folder_contents_selector, oilsRptTemplateCache);
99         var obj = this;
100
101         DOM.oils_rpt_template_folder_window_go.onclick = function() {
102                 var action = getSelectorVal(DOM.oils_rpt_template_action_selector);
103                 var template = getSelectorVal(DOM.oils_rpt_template_selector);
104                 switch(action) {
105                         case 'create_report':
106                                 obj.createReport(template);
107                                 break;
108                 }
109         }
110 }
111
112
113 oilsRptTemplateFolderWindow.prototype.createReport = function(templateId) {
114         unHideMe(DOM.oils_rpt_template_folder_new_report);
115         DOM.oils_rpt_template_folder_new_report_next.onclick = function() {
116                 var name = DOM.oils_rpt_template_folder_new_report_name.value;
117                 var desc = DOM.oils_rpt_template_folder_new_report_desc.value;
118                 var rpt = new rr();
119                 rpt.template(templateId);
120                 rpt.name(name);
121                 rpt.description(desc);
122                 DOM.oils_rpt_template_folder_window_contents_div.appendChild(
123                         DOM.oils_rpt_param_editor_div);
124                 unHideMe(DOM.oils_rpt_param_editor_div);
125                 var e = new oilsRptParamEditor(
126                         new oilsReport(oilsRptFetchTemplate(templateId), rpt),
127                         DOM.oils_rpt_param_editor_tbody);
128                 e.draw();
129         }
130 }
131
132
133
134 oilsRptReportFolderWindow.prototype = new oilsRptFolderWindow();
135 oilsRptReportFolderWindow.prototype.constructor = oilsRptReportFolderWindow;
136 oilsRptReportFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
137 function oilsRptReportFolderWindow(node) { this.init2(node, 'report'); }
138
139 oilsRptReportFolderWindow.prototype.draw = function() {
140         this.openWindow();
141         var obj = this;
142         this.fetchFolderData('report', 
143                 DOM.oils_rpt_report_selector, oilsRptReportCache, 
144                         function() {
145                                 appendClear(DOM.oils_rpt_report_description, 
146                                         text(obj.getSelectedReport().description()));
147                         }
148         );
149
150         DOM.oils_rpt_report_folder_window_go.onclick = function() {
151                 var rpt = obj.getSelectedReport();
152                 var tmpl = oilsRptFetchTemplate(rpt.template());
153                 obj.oilsReport = new oilsReport( tmpl, rpt );
154         };
155 }
156
157 oilsRptReportFolderWindow.prototype.drawParamEditor = function(params) {
158         _debug('drawing params: \n' + formatJSON(js2JSON(params)));
159 }
160
161
162 var oilsRptReportFolderSelectParamRow;
163 oilsRptReportFolderWindow.prototype.drawSelectParamEditor = function(params) {
164         if(params.length == 0) return;
165         //unHideMe(DOM.oils_rpt_report_folder_window_display_params_table);
166
167         //var tbody = $n(DOM.oils_rpt_report_folder_window_display_params_table,'tbody');
168         //if(!oilsRptReportFolderSelectParamRow)
169                 //oilsRptReportFolderSelectParamRow = tbody.removeChild($n(tbody,'tr'));
170 //
171         //for( var p = 0; p < params.length; p++ ) {
172 //
173                 //var row = oilsRptReportFolderSelectParamRow.cloneNode(true);
174                 //var par = params[p];
175                 //$n(row, 'column').appendChild(text(par.column.colname));
176                 //$n(row, 'transform').appendChild(text(par.column.transform));
177 //
178                 //if( typeof par.value == 'string' ) {
179                         //unHideMe($n(row, 'param'));
180                         //$n(row, 'param').value = par.value;
181                 //} else {
182                         //switch(par.transform) {
183                                 //case 'substring':
184                                         //unHideMe($n(row,'string_substring_widget'));
185                                         //break;
186                         //}
187                 //}
188                 //tbody.appendChild(row);
189         //}
190 }
191
192 oilsRptReportFolderWindow.prototype.drawWhereParamEditor = function(params) {
193 }
194
195 oilsRptReportFolderWindow.prototype.drawHavingParamEditor = function(params) {
196 }
197
198
199
200 oilsRptReportFolderWindow.prototype.getSelectedReport = function() {
201         return oilsRptReportCache[getSelectorVal(DOM.oils_rpt_report_selector)];
202 }
203
204 oilsRptReportFolderWindow.prototype.getSelectedAction = function() {
205         return getSelectorVal(DOM.oils_rpt_report_selector, force);
206 }
207
208
209
210
211
212 oilsRptOutputFolderWindow.prototype = new oilsRptFolderWindow();
213 oilsRptOutputFolderWindow.prototype.constructor = oilsRptOutputFolderWindow;
214 oilsRptOutputFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
215 function oilsRptOutputFolderWindow(node) { this.init2(node, 'output'); }
216
217 oilsRptOutputFolderWindow.prototype.draw = function() {
218         this.hideWindows();
219         this.openWindow(null);
220 }
221 */
222
223
224
225