]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/reports/oils_rpt_param_editor.js
added report and template delete actions, added report save actions
[working/Evergreen.git] / Open-ILS / web / reports / oils_rpt_param_editor.js
1 oilsRptSetSubClass('oilsRptParamEditor','oilsRptObject');
2 function oilsRptParamEditor(report, tbody) {
3         this.tbody = tbody;
4         this.report = report;
5 }
6
7
8 oilsRptParamEditor.prototype.draw = function() {
9         var params = this.report.gatherParams();
10         this.params = params;
11
12         if(!oilsRptParamEditor.row)
13                 oilsRptParamEditor.row = 
14                         DOM.oils_rpt_param_editor_tbody.removeChild(
15                         $n(DOM.oils_rpt_param_editor_tbody, 'tr'));
16
17         removeChildren(this.tbody);
18         _debug(formatJSON(js2JSON(params)));
19                         
20         for( var p = 0; p < params.length; p++ ) {
21                 var par = params[p];
22                 var row = oilsRptParamEditor.row.cloneNode(true);
23                 $n(row, 'object').appendChild(text(oilsRptMakeLabel(par.relation)));
24                 $n(row, 'column').appendChild(text(par.column.colname));
25                 $n(row, 'transform').appendChild(text(par.column.transform));
26                 $n(row, 'action').appendChild(text(par.op));
27                 par.widget = this.buildWidget(par, $n(row, 'widget'));
28                 par.widget.draw();
29                 this.tbody.appendChild(row);
30         }
31 }
32
33
34 oilsRptParamEditor.prototype.buildWidget = function(param, node) {
35         var cls = param.relation.split(/-/).pop();
36         _debug("building widget with param class:" + cls + ' col: '+param.column.colname + ' op: '+ param.op);
37         switch(param.op) {
38                 case 'in':
39                 case 'not in':
40
41                         /* we have to special case org selection for now, 
42                                 until we have generic object fetch support */
43                         if( cls == 'aou' ) {
44                                 return new oilsRptOrgMultiSelect({node:node});
45                         } else {
46                                 return new oilsRptOrgMultiSelect({node:node});
47                         }
48
49                 default:
50                         return new oilsRptWidget({node:node});
51         }
52 }
53
54 //oilsRptParamEditor.prototype.get = function(param, node) {
55
56
57
58