6 PROCESS logic_header.ttk;
8 templates = DBI.tie('reporter.stage2', 'id')
13 tid = CGI.param('id');
14 tmpl = templates.$tid;
19 INCLUDE header.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 text=config.findvalue( s1_name_xpath )
104 href="stage1?id=" _ params.stage1;
105 ' :: ' _ params.templatename _ '<br>';
107 text="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 );
190 %]<br/><form id="stage3_new" name="stage3_new" action="stage3" method="POST">[%
192 INCLUDE hidden name='stage2' value=CGI.param('id');
194 WRAPPER html/table border=0 width='100%';
196 WRAPPER html/cell colspan=4 align='center';
197 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
199 text=config.findvalue( s1_name_xpath )
200 href="stage1?id=" _ params.stage1;
201 ' :: ' _ params.templatename;
206 INCLUDE html/cell colspan=4 content="<b>Filterable Attributes:</b>";
209 FOR f_table IN params.filter.keys;
211 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
213 INCLUDE html/cell colspan=3 align='left' content=table.findvalue( 'label' );
216 FOR f_field IN params.filter.$f_table.keys;
217 logme([f_table,f_field]);
218 FOR f_fam IN params.filter.$f_table.$f_field.keys;
219 logme([f_table,f_field,f_fam]);
220 f_widget = params.filter.$f_table.$f_field.$f_fam;
221 logme([f_table,f_field,f_fam,f_widget]);
224 field = table.findnodes( "fields/field[@name='$f_field']" );
225 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
226 widget = fam.findnodes( "widget[@name='$f_widget']" );
228 w_file = 'widgets/' _ fam.findvalue('@name') _ '.' _ widget.findvalue('@name');
230 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
232 WRAPPER html/cell align='center';
234 classname = table.findvalue('@id');
235 fieldname = field.findvalue('@name');
236 widgetname = widget.findvalue('@name');
237 famname = fam.findvalue('@name');
239 input_prefix = "filter:$famname:$widgetname:$classname:$fieldname";
241 INCLUDE $w_file widget_family=fam;
243 %]ARG!! Couldn't render widget [% $w_file %] ([% error.info %])!!![%
252 INCLUDE html/cell colspan=4 content="<br>";
256 INCLUDE html/cell colspan=4 content="<b>Attributes Available for Output</b>";
259 FOR f_table IN params.dims.keys;
260 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
261 classname = table.findvalue( "@id" );
262 tname = table.findvalue( "label" );
263 tdesc = table.findvalue( "desription" );
266 INCLUDE html/cell colspan=4 align='left' content=tname;
271 'fields/field[not(@primary) or @primary != "true"]';
272 FOR field IN table.findnodes(fields_xpath);
273 link_test = '../../links/link[@field="' _ field.findvalue('@name') _ '"]';
274 logme(['link_test',link_test]);
275 NEXT IF field.findnodes( link_test );
277 fname = field.findvalue( "label" );
278 fid = field.findvalue( "@name" );
282 WRAPPER html/cell align='right';
283 INCLUDE checkbox name="output:$classname:$fid" value="include";
285 INCLUDE html/cell align='right' content=fname;
286 WRAPPER html/cell align='center';
287 'Output Transformation: ';
288 dtype = field.findvalue('@datatype');
289 WRAPPER select name="xform:type:$classname:$fid";
290 INCLUDE option value='' content='None' selected=1;
291 FOR xform IN dtype_xform_map.$dtype;
292 xform_label = dtype_xforms.$xform.label;
293 IF dtype_xforms.$xform.param;
294 xform_label = "$xform_label (*)";
296 INCLUDE option value=xform content=xform_label;
300 '<small><super>*</super>Output Tranformation Parameter: </small>';
301 INCLUDE text name="xform:param:$classname:$fid";
308 INCLUDE checkbox name="publicreport" value="t";
310 INCLUDE submit name="action" value="Run Now";
311 INCLUDE submit name="action" value="Schedule";