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 WRAPPER html/table border=0 width='100%';
194 WRAPPER html/cell colspan=4 align='center';
195 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
197 text=config.findvalue( s1_name_xpath )
198 href="stage1?id=" _ params.stage1;
199 ' :: ' _ params.templatename;
204 INCLUDE html/cell colspan=4 content="<b>Filterable Attributes:</b>";
207 FOR f_table IN params.filter.keys;
209 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
212 INCLUDE html/cell colspan=3 align='left' content=table.findvalue( 'label' );
215 FOR f_field IN params.filter.$f_table.keys;
216 logme([f_table,f_field]);
217 FOR f_fam IN params.filter.$f_table.$f_field.keys;
218 logme([f_table,f_field,f_fam]);
219 f_widget = params.filter.$f_table.$f_field.$f_fam;
220 logme([f_table,f_field,f_fam,f_widget]);
223 field = table.findnodes( "fields/field[@name='$f_field']" );
224 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
225 widget = fam.findnodes( "widget[@name='$f_widget']" );
227 w_file = 'widgets/' _ fam.findvalue('@name') _ '.' _ widget.findvalue('@name');
228 INCLUDE html/cell colspan=2;
229 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
231 WRAPPER html/cell align='center';
233 classname = table.findvalue('@id');
234 fieldname = field.findvalue('@name');
235 widgetname = widget.findvalue('@name');
236 famname = fam.findvalue('@name');
238 input_prefix = "$famname:$widgetname:$classname:$fieldname";
240 INCLUDE $w_file widget_family=fam;
242 %]ARG!! Couldn't render widget [% $w_file %] ([% error.info %])!!![%
251 INCLUDE html/cell colspan=5 content="<br>";
255 INCLUDE html/cell colspan=5 content="<b>Attributes Available for Output</b>";
258 FOR f_table IN params.dims.keys;
259 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
260 tname = table.findvalue( "label" );
261 tdesc = table.findvalue( "desription" );
263 NEXT IF table.findvalue('@fact-table') == 'true';
267 INCLUDE html/cell colspan=4 align='left' content=tname;
271 FOR field IN table.findnodes('fields/field[not(@primary) or @primary != "true"]');
272 fname = field.findvalue( "label" );
276 INCLUDE html/cell colspan=2;
277 INCLUDE html/cell align='right' content=fname;
278 WRAPPER html/cell align='center';
286 INCLUDE submit name="action" value="schedule";