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)));
43 $n(row, 'column').appendChild(
44 elem('div', {'class':'oils_rpt_field_hint'}, par.field_doc));
47 //$n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path, par.field_doc)));
48 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
49 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
50 par.widget = this.buildWidget(par, $n(row, 'widget'));
54 /** draw the pre-defined template params so the user will know
55 what params are already set */
56 var tparams = this.report.gatherTemplateParams();
58 for( var p = 0; p < tparams.length; p++ ) {
60 var row = oilsRptParamEditor.row.cloneNode(true);
61 this.tbody.appendChild(row);
62 $n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path)));
64 $n(row, 'column').appendChild(
65 elem('div', {'class':'oils_rpt_field_hint'}, par.field_doc));
67 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
68 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
69 par.widget = this.buildWidget(par, $n(row, 'widget'));
74 oilsRptParamEditor.prototype.buildWidget = function(param, node) {
75 var transform = param.column.transform;
76 var cls = oilsRptPathClass(param.path);
77 var field = oilsRptFindField(oilsIDL[cls], oilsRptPathCol(param.path));
78 var dtype = field.datatype;
80 _debug("building widget with param class:" + cls + ' col: '+param.column.colname + ' op: '+ param.op);
82 /* get the atomic widget from the datatype */
83 var atomicWidget = oilsRptTextWidget;
84 var widgetArgs = {node:node};
85 widgetArgs.calFormat = OILS_RPT_TRANSFORMS[transform].cal_format;
86 widgetArgs.inputSize = OILS_RPT_TRANSFORMS[transform].input_size;
87 widgetArgs.regex = OILS_RPT_TRANSFORMS[transform].regex;
88 widgetArgs.value = param.value;
92 widgetArgs.type = 'date';
93 atomicWidget = oilsRptTruncPicker;
96 widgetArgs.type = 'hour';
97 atomicWidget = oilsRptTruncPicker;
100 widgetArgs.type = 'month';
101 atomicWidget = oilsRptTruncPicker;
104 widgetArgs.type = 'year';
105 atomicWidget = oilsRptTruncPicker;
108 atomicWidget = oilsRptCalWidget;
111 atomicWidget = oilsRptAgeWidget;
115 widgetArgs.start = 1;
116 atomicWidget = oilsRptNumberWidget
119 widgetArgs.size = 12;
120 widgetArgs.start = 1;
121 atomicWidget = oilsRptNumberWidget
125 widgetArgs.start = 1;
126 atomicWidget = oilsRptNumberWidget
129 widgetArgs.size = 20;
130 widgetArgs.start = 1;
131 atomicWidget = oilsRptNumberWidget
135 widgetArgs.start = 0;
136 atomicWidget = oilsRptNumberWidget
139 widgetArgs.size = 31;
140 widgetArgs.start = 1;
141 atomicWidget = oilsRptNumberWidget
144 widgetArgs.size = 365;
145 widgetArgs.start = 1;
146 atomicWidget = oilsRptNumberWidget
149 widgetArgs.size = 52;
150 widgetArgs.start = 1;
151 atomicWidget = oilsRptNumberWidget
154 widgetArgs.size = 12;
155 widgetArgs.start = 1;
156 atomicWidget = oilsRptNumberWidget
160 widgetArgs.start = 1;
161 atomicWidget = oilsRptNumberWidget
164 widgetArgs.size = 24;
165 widgetArgs.start = 0;
166 atomicWidget = oilsRptNumberWidget
170 atomicWidget = oilsRptSubstrWidget
174 if( field.selector ) {
175 atomicWidget = oilsRptRemoteWidget;
176 widgetArgs.class = cls;
177 widgetArgs.field = field;
178 widgetArgs.column = param.column.colname;
183 atomicWidget = oilsRptOrgSelector;
189 atomicWidget = oilsRptBoolWidget;
193 atomicWidget = oilsRptOrgSelector;
197 if(widgetArgs.value != undefined)
198 return new oilsRptTemplateWidget(widgetArgs);
204 widgetArgs.inputWidget = atomicWidget;
205 return new oilsRptSetWidget(widgetArgs);
210 return new oilsRptNullWidget(widgetArgs);
213 widgetArgs.startWidget = atomicWidget;
214 widgetArgs.endWidget = atomicWidget;
215 return new oilsRptBetweenWidget(widgetArgs);
217 return new atomicWidget(widgetArgs);