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;
77 widgetArgs.value = param.value;
81 widgetArgs.type = 'date';
82 atomicWidget = oilsRptTruncPicker;
85 widgetArgs.type = 'hour';
86 atomicWidget = oilsRptTruncPicker;
89 widgetArgs.type = 'month';
90 atomicWidget = oilsRptTruncPicker;
93 widgetArgs.type = 'year';
94 atomicWidget = oilsRptTruncPicker;
97 atomicWidget = oilsRptCalWidget;
100 atomicWidget = oilsRptAgeWidget;
104 widgetArgs.start = 1;
105 atomicWidget = oilsRptNumberWidget
108 widgetArgs.size = 12;
109 widgetArgs.start = 1;
110 atomicWidget = oilsRptNumberWidget
114 widgetArgs.start = 1;
115 atomicWidget = oilsRptNumberWidget
118 widgetArgs.size = 20;
119 widgetArgs.start = 1;
120 atomicWidget = oilsRptNumberWidget
124 widgetArgs.start = 0;
125 atomicWidget = oilsRptNumberWidget
128 widgetArgs.size = 31;
129 widgetArgs.start = 1;
130 atomicWidget = oilsRptNumberWidget
133 widgetArgs.size = 365;
134 widgetArgs.start = 1;
135 atomicWidget = oilsRptNumberWidget
138 widgetArgs.size = 52;
139 widgetArgs.start = 1;
140 atomicWidget = oilsRptNumberWidget
143 widgetArgs.size = 12;
144 widgetArgs.start = 1;
145 atomicWidget = oilsRptNumberWidget
149 widgetArgs.start = 1;
150 atomicWidget = oilsRptNumberWidget
153 widgetArgs.size = 24;
154 widgetArgs.start = 0;
155 atomicWidget = oilsRptNumberWidget
159 atomicWidget = oilsRptSubstrWidget
163 if( field.selector ) {
164 atomicWidget = oilsRptRemoteWidget;
165 widgetArgs.class = cls;
166 widgetArgs.field = field;
167 widgetArgs.column = param.column.colname;
172 atomicWidget = oilsRptOrgSelector;
178 atomicWidget = oilsRptBoolWidget;
182 atomicWidget = oilsRptOrgSelector;
186 if(widgetArgs.value != undefined)
187 return new oilsRptTemplateWidget(widgetArgs);
193 widgetArgs.inputWidget = atomicWidget;
194 return new oilsRptSetWidget(widgetArgs);
199 return new oilsRptNullWidget(widgetArgs);
202 widgetArgs.startWidget = atomicWidget;
203 widgetArgs.endWidget = atomicWidget;
204 return new oilsRptBetweenWidget(widgetArgs);
206 return new atomicWidget(widgetArgs);