1 oilsRptSetSubClass('oilsRptParamEditor','oilsRptObject');
2 function oilsRptParamEditor(report, tbody) {
8 oilsRptParamEditor.prototype.recur = function() {
9 //var cb = $n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur');
10 var cb = DOM.oils_rpt_recur;
11 return (cb.checked) ? 't' : 'f';
14 oilsRptParamEditor.prototype.recurInterval = function() {
16 var count = getSelectorVal($n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur_count'));
17 var intvl = getSelectorVal($n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur_interval_type'));
19 var count = getSelectorVal(DOM.oils_rpt_recur_count);
20 var intvl = getSelectorVal(DOM.oils_rpt_recur_interval_type);
21 return count+''+intvl;
24 oilsRptParamEditor.prototype.draw = function() {
25 var params = this.report.gatherParams();
28 if(!oilsRptParamEditor.row)
29 oilsRptParamEditor.row =
30 DOM.oils_rpt_param_editor_tbody.removeChild(
31 $n(DOM.oils_rpt_param_editor_tbody, 'tr'));
33 removeChildren(this.tbody);
34 _debug(formatJSON(js2JSON(params)));
36 for( var p = 0; p < params.length; p++ ) {
38 var row = oilsRptParamEditor.row.cloneNode(true);
39 this.tbody.appendChild(row);
40 $n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path)));
41 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
42 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
43 par.widget = this.buildWidget(par, $n(row, 'widget'));
47 /** draw the pre-defined template params so the user will know
48 what params are already set */
49 var tparams = this.report.gatherTemplateParams();
51 for( var p = 0; p < tparams.length; p++ ) {
53 var row = oilsRptParamEditor.row.cloneNode(true);
54 this.tbody.appendChild(row);
55 $n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path)));
56 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
57 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
58 par.widget = this.buildWidget(par, $n(row, 'widget'));
63 oilsRptParamEditor.prototype.buildWidget = function(param, node) {
64 var transform = param.column.transform;
65 var cls = oilsRptPathClass(param.path);
66 var field = oilsRptFindField(oilsIDL[cls], oilsRptPathCol(param.path));
67 var dtype = field.datatype;
69 _debug("building widget with param class:" + cls + ' col: '+param.column.colname + ' op: '+ param.op);
71 /* get the atomic widget from the datatype */
72 var atomicWidget = oilsRptTextWidget;
73 var widgetArgs = {node:node};
74 widgetArgs.calFormat = OILS_RPT_TRANSFORMS[transform].cal_format;
75 widgetArgs.inputSize = OILS_RPT_TRANSFORMS[transform].input_size;
76 widgetArgs.regex = OILS_RPT_TRANSFORMS[transform].regex;
80 widgetArgs.type = 'date';
81 atomicWidget = oilsRptTruncPicker;
84 widgetArgs.type = 'hour';
85 atomicWidget = oilsRptTruncPicker;
88 widgetArgs.type = 'month';
89 atomicWidget = oilsRptTruncPicker;
92 widgetArgs.type = 'year';
93 atomicWidget = oilsRptTruncPicker;
96 atomicWidget = oilsRptCalWidget;
99 atomicWidget = oilsRptAgeWidget;
103 widgetArgs.start = 1;
104 atomicWidget = oilsRptNumberWidget
107 widgetArgs.size = 12;
108 widgetArgs.start = 1;
109 atomicWidget = oilsRptNumberWidget
113 widgetArgs.start = 1;
114 atomicWidget = oilsRptNumberWidget
117 widgetArgs.size = 20;
118 widgetArgs.start = 1;
119 atomicWidget = oilsRptNumberWidget
123 widgetArgs.start = 0;
124 atomicWidget = oilsRptNumberWidget
127 widgetArgs.size = 31;
128 widgetArgs.start = 1;
129 atomicWidget = oilsRptNumberWidget
132 widgetArgs.size = 365;
133 widgetArgs.start = 1;
134 atomicWidget = oilsRptNumberWidget
137 widgetArgs.size = 52;
138 widgetArgs.start = 1;
139 atomicWidget = oilsRptNumberWidget
142 widgetArgs.size = 12;
143 widgetArgs.start = 1;
144 atomicWidget = oilsRptNumberWidget
148 widgetArgs.start = 1;
149 atomicWidget = oilsRptNumberWidget
152 widgetArgs.size = 24;
153 widgetArgs.start = 0;
154 atomicWidget = oilsRptNumberWidget
158 atomicWidget = oilsRptSubstrWidget
162 if( field.selector ) {
163 atomicWidget = oilsRptRemoteWidget;
164 widgetArgs.class = cls;
165 widgetArgs.field = field;
166 widgetArgs.column = param.column.colname;
171 atomicWidget = oilsRptOrgSelector;
177 atomicWidget = oilsRptBoolWidget;
181 atomicWidget = oilsRptOrgSelector;
189 widgetArgs.inputWidget = atomicWidget;
190 return new oilsRptSetWidget(widgetArgs);
193 return new oilsRptNullWidget(widgetArgs);
196 widgetArgs.startWidget = atomicWidget;
197 widgetArgs.endWidget = atomicWidget;
198 return new oilsRptBetweenWidget(widgetArgs);
200 return new atomicWidget(widgetArgs);