1 oilsRptSetSubClass('oilsRptParamEditor','oilsRptObject');
2 function oilsRptParamEditor(report, tbody, readonly) {
5 this.readonly = readonly;
9 oilsRptParamEditor.prototype.recur = function() {
10 //var cb = $n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur');
11 var cb = DOM.oils_rpt_recur;
12 return (cb.checked) ? 't' : 'f';
15 oilsRptParamEditor.prototype.recurInterval = function() {
17 var count = getSelectorVal($n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur_count'));
18 var intvl = getSelectorVal($n(DOM.oils_rpt_recur_editor_table,'oils_rpt_recur_interval_type'));
20 var count = getSelectorVal(DOM.oils_rpt_recur_count);
21 var intvl = getSelectorVal(DOM.oils_rpt_recur_interval_type);
22 return count+''+intvl;
25 oilsRptParamEditor.prototype.draw = function() {
26 var params = this.report.gatherParams();
29 if(!oilsRptParamEditor.row)
30 oilsRptParamEditor.row =
31 DOM.oils_rpt_param_editor_tbody.removeChild(
32 $n(DOM.oils_rpt_param_editor_tbody, 'tr'));
34 removeChildren(this.tbody);
35 _debug(formatJSON(js2JSON(params)));
37 for( var p = 0; p < params.length; p++ ) {
39 var row = oilsRptParamEditor.row.cloneNode(true);
40 this.tbody.appendChild(row);
41 $n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path)));
44 $n(row, 'column').appendChild(
45 elem('div', {'class':'oils_rpt_field_hint'}, par.field_doc));
48 //$n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path, par.field_doc)));
49 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
50 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
51 par.widget = this.buildWidget(par, $n(row, 'widget'));
55 /** draw the pre-defined template params so the user will know
56 what params are already set */
57 var tparams = this.report.gatherTemplateParams();
59 for( var p = 0; p < tparams.length; p++ ) {
61 var row = oilsRptParamEditor.row.cloneNode(true);
62 this.tbody.appendChild(row);
63 $n(row, 'column').appendChild(text(oilsRptMakeLabel(par.path)));
65 $n(row, 'column').appendChild(
66 elem('div', {'class':'oils_rpt_field_hint'}, par.field_doc));
68 $n(row, 'transform').appendChild(text(OILS_RPT_TRANSFORMS[par.column.transform].label));
69 $n(row, 'action').appendChild(text(OILS_RPT_FILTERS[par.op].label));
70 par.widget = this.buildWidget(par, $n(row, 'widget'), true);
75 oilsRptParamEditor.prototype.buildWidget = function(param, node, fromTemplate) {
76 var transform = param.column.transform;
77 var cls = oilsRptPathClass(param.path);
78 var field = oilsRptFindField(oilsIDL[cls], oilsRptPathCol(param.path));
79 var dtype = field.datatype;
81 _debug("building widget with param class:" + cls + ' col: '+param.column.colname + ' op: '+ param.op);
83 /* get the atomic widget from the datatype */
84 var atomicWidget = oilsRptTextWidget;
85 var widgetArgs = {node:node};
86 widgetArgs.calFormat = OILS_RPT_TRANSFORMS[transform].cal_format;
87 widgetArgs.inputSize = OILS_RPT_TRANSFORMS[transform].input_size;
88 widgetArgs.regex = OILS_RPT_TRANSFORMS[transform].regex;
89 widgetArgs.value = param.value;
90 widgetArgs.readonly = this.readonly;
94 widgetArgs.type = 'date';
95 atomicWidget = oilsRptTruncPicker;
98 widgetArgs.type = 'hour';
99 atomicWidget = oilsRptTruncPicker;
102 widgetArgs.type = 'month';
103 atomicWidget = oilsRptTruncPicker;
106 widgetArgs.type = 'year';
107 atomicWidget = oilsRptTruncPicker;
110 atomicWidget = oilsRptCalWidget;
113 atomicWidget = oilsRptAgeWidget;
117 widgetArgs.start = 1;
118 atomicWidget = oilsRptNumberWidget
121 widgetArgs.size = 12;
122 widgetArgs.start = 1;
123 atomicWidget = oilsRptNumberWidget
127 widgetArgs.start = 1;
128 atomicWidget = oilsRptNumberWidget
131 widgetArgs.size = 20;
132 widgetArgs.start = 1;
133 atomicWidget = oilsRptNumberWidget
137 widgetArgs.start = 0;
138 atomicWidget = oilsRptNumberWidget
141 widgetArgs.size = 31;
142 widgetArgs.start = 1;
143 atomicWidget = oilsRptNumberWidget
146 widgetArgs.size = 365;
147 widgetArgs.start = 1;
148 atomicWidget = oilsRptNumberWidget
151 widgetArgs.size = 52;
152 widgetArgs.start = 1;
153 atomicWidget = oilsRptNumberWidget
156 widgetArgs.size = 12;
157 widgetArgs.start = 1;
158 atomicWidget = oilsRptNumberWidget
162 widgetArgs.start = 1;
163 atomicWidget = oilsRptNumberWidget
166 widgetArgs.size = 24;
167 widgetArgs.start = 0;
168 atomicWidget = oilsRptNumberWidget
172 atomicWidget = oilsRptSubstrWidget
176 if( field.selector ) {
177 atomicWidget = oilsRptRemoteWidget;
178 widgetArgs.class = cls;
179 widgetArgs.field = field;
180 widgetArgs.column = param.column.colname;
185 atomicWidget = oilsRptOrgSelector;
191 atomicWidget = oilsRptBoolWidget;
195 atomicWidget = oilsRptOrgSelector;
199 // oilsRptTemplateWidget's are pre-set read-only values
200 if(fromTemplate && widgetArgs.value != undefined)
201 return new oilsRptTemplateWidget(widgetArgs);
207 widgetArgs.inputWidget = atomicWidget;
208 return new oilsRptSetWidget(widgetArgs);
213 return new oilsRptNullWidget(widgetArgs);
216 widgetArgs.startWidget = atomicWidget;
217 widgetArgs.endWidget = atomicWidget;
218 return new oilsRptBetweenWidget(widgetArgs);
220 return new atomicWidget(widgetArgs);