6 PROCESS logic_header.ttk;
9 templates = DBI.tie('reporter.stage2', 'id')
14 tid = CGI.param('id');
15 tmpl = templates.$tid;
20 INCLUDE header.ttk + navbar.ttk title="Report Templates";
22 IF CGI.param('action') == 'save';
24 ELSIF CGI.param('action') == 'edit';
26 ELSIF CGI.param('action') == 'run';
39 stage1 = CGI.param('stage1');
40 pub = CGI.param('publictemplate') OR 'f';
46 logme([p,CGI.param(p)]);
55 AND (CGI.param("$p1:$p2:$p3") == p4)
56 AND (CGI.param("$p1:$p2").list.grep(p3).size > 0)
57 AND (CGI.param("$p1").list.grep(p2).size > 0);
59 p_obj.$p1.$p2.$p3.$p4 = CGI.param(p);
62 AND (CGI.param("$p1").list.grep(p2).size > 0);
65 p_obj.$p1 = CGI.param(p);
70 params = utils.perl2JSON( p_obj );
72 logme([stage1, params, owner, pub]);
74 q = DBI.prepare( stage2_insert );
75 CALL q.execute(stage1, params, owner, pub);
77 FOR new_s2 = DBI.query("SELECT * FROM reporter.stage2_id_seq;");
78 tid = new_s2.last_value;
79 INCLUDE view_stage2 tmpl = templates.$tid;
96 params = utils.JSON2perl( tmpl.params );
98 WRAPPER html/table border=0 width='100%';
100 WRAPPER html/cell colspan=5 align='center';
101 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
103 content=config.findvalue( s1_name_xpath )
104 href="stage1?id=" _ params.stage1;
105 ' :: ' _ params.templatename _ '<br>';
107 content="Create a report from this template"
108 href=CGI.url('-path', 1) _ '?action=run&id=' _ tmpl.id;
113 INCLUDE html/cell colspan=4 content="<b>Filterable Attributes:</b>";
116 FOR f_table IN params.filter.keys;
118 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
121 INCLUDE html/cell colspan=4 align='left' content=table.findvalue( 'label' );
124 FOR f_field IN params.filter.$f_table.keys;
125 logme([f_table,f_field]);
126 FOR f_fam IN params.filter.$f_table.$f_field.keys;
127 logme([f_table,f_field,f_fam]);
128 f_widget = params.filter.$f_table.$f_field.$f_fam;
129 logme([f_table,f_field,f_fam,f_widget]);
132 field = table.findnodes( "fields/field[@name='$f_field']" );
133 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
134 widget = fam.findnodes( "widget[@name='$f_widget']" );
136 INCLUDE html/cell colspan=2;
137 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
138 INCLUDE html/cell align='center' content=fam.findvalue( 'label' );
139 INCLUDE html/cell align='left' content=widget.findvalue( 'label' );
146 INCLUDE html/cell colspan=5 content="<br>";
150 INCLUDE html/cell colspan=5 content="<b>Attributes Available for Output</b>";
153 FOR f_table IN params.dims.keys;
154 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
155 tname = table.findvalue( "label" );
156 tdesc = table.findvalue( "desription" );
158 NEXT IF table.findvalue('@fact-table') == 'true';
162 INCLUDE html/cell colspan=4 align='left' content=tname;
166 FOR field IN table.findnodes('fields/field[not(@primary) or @primary != "true"]');
167 fname = field.findvalue( "label" );
168 fdesc = field.findvalue( "desription" );
172 INCLUDE html/cell colspan=2;
173 INCLUDE html/cell align='right' content=fname;
174 INCLUDE html/cell colspan=2 align='center' content=fdesc;
188 params = utils.JSON2perl( tmpl.params );
191 WRAPPER form id="stage3_new" name="stage3_new" action="stage3" method="POST";
192 INCLUDE hidden name='stage2' value=CGI.param('id');
195 INCLUDE text name='reportname';
197 WRAPPER html/table border=0 width='100%';
199 WRAPPER html/cell colspan=4 align='center';
200 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
202 content=config.findvalue( s1_name_xpath )
203 href="stage1?id=" _ params.stage1;
204 ' :: ' _ params.templatename;
209 INCLUDE html/cell colspan=4 content="<b>Filterable Attributes:</b>";
212 FOR f_table IN params.filter.keys;
214 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
216 INCLUDE html/cell colspan=3 align='left' content=table.findvalue( 'label' );
219 FOR f_field IN params.filter.$f_table.keys;
220 logme([f_table,f_field]);
221 FOR f_fam IN params.filter.$f_table.$f_field.keys;
222 logme([f_table,f_field,f_fam]);
223 f_widget = params.filter.$f_table.$f_field.$f_fam;
224 logme([f_table,f_field,f_fam,f_widget]);
227 field = table.findnodes( "fields/field[@name='$f_field']" );
228 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
229 widget = fam.findnodes( "widget[@name='$f_widget']" );
231 w_file = 'widgets/' _ fam.findvalue('@name') _ '.' _ widget.findvalue('@name');
233 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
235 WRAPPER html/cell align='center';
237 classname = table.findvalue('@id');
238 fieldname = field.findvalue('@name');
239 widgetname = widget.findvalue('@name');
240 famname = fam.findvalue('@name');
242 input_prefix = "filter:$classname:$fieldname:$famname:$widgetname";
244 INCLUDE $w_file widget_family=fam;
246 %]ARG!! Couldn't render widget [% $w_file %] ([% error.info %])!!![%
255 INCLUDE html/cell colspan=4 content="<br>";
259 INCLUDE html/cell colspan=4 content="<b>Attributes Available for Output</b>";
262 FOR f_table IN params.dims.keys;
263 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
264 classname = table.findvalue( "@id" );
265 tname = table.findvalue( "label" );
266 tdesc = table.findvalue( "desription" );
269 INCLUDE html/cell colspan=4 align='left' content=tname;
274 'fields/field[not(@primary) or @primary != "true"]';
275 FOR field IN table.findnodes(fields_xpath);
276 link_test = '../../links/link[@field="' _ field.findvalue('@name') _ '"]';
277 logme(['link_test',link_test]);
278 NEXT IF field.findnodes( link_test );
280 fname = field.findvalue( "label" );
281 fid = field.findvalue( "@name" );
285 WRAPPER html/cell align='right';
286 INCLUDE checkbox name="output:$classname:$fid" value="include";
288 INCLUDE html/cell align='right' content=fname;
289 WRAPPER html/cell align='center';
290 'Output Transformation: ';
291 dtype = field.findvalue('@datatype');
292 WRAPPER select name="xform:type:$classname:$fid";
293 INCLUDE option value='' content='None' selected=1;
294 FOR xform IN dtype_xform_map.$dtype;
295 xform_label = dtype_xforms.$xform.label;
296 IF dtype_xforms.$xform.param;
297 xform_label = "$xform_label (*)";
299 INCLUDE option value=xform content=xform_label;
303 '<small><super>*</super>Output Tranformation Parameter: </small>';
304 INCLUDE text name="xform:param:$classname:$fid";
311 INCLUDE checkbox name="publicreport" value="t";
313 INCLUDE submit name="action" value="Run Now";
314 INCLUDE submit name="action" value="Schedule";