4 PROCESS logic_header.ttk;
6 templates = DBI.tie('reporter.stage2', 'id')
11 tid = CGI.param('id');
12 tmpl = templates.$tid;
17 INCLUDE header.ttk title="Report Templates";
20 IF CGI.param('action') == 'save';
22 ELSIF CGI.param('action') == 'edit';
24 ELSIF CGI.param('action') == 'run';
37 stage1 = CGI.param('stage1');
38 pub = CGI.param('publictemplate') OR 'f';
44 logme([p,CGI.param(p)]);
53 AND (CGI.param("$p1:$p2:$p3") == p4)
54 AND (CGI.param("$p1:$p2").list.grep("^$p3$"))
55 AND (CGI.param("$p1").list.grep("^$p2$"));
57 p_obj.$p1.$p2.$p3.$p4 = CGI.param(p);
60 p_obj.$p1 = CGI.param(p);
65 params = utils.perl2JSON( p_obj );
67 logme([stage1, params, owner, pub]);
69 q = DBI.prepare( stage2_insert );
70 junk = q.execute(stage1, params, owner, pub);
72 FOR new_s2 = DBI.query("SELECT * FROM reporter.stage2_id_seq;");
73 tid = new_s2.last_value;
74 INCLUDE view_stage2 tmpl = templates.$tid;
91 params = utils.JSON2perl( tmpl.params );
93 WRAPPER html/table border=0 width='100%';
95 WRAPPER html/cell colspan=5 align='center';
96 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
98 text=config.findvalue( s1_name_xpath )
99 href="stage1?id=" _ params.stage1;
100 ' :: ' _ params.templatename _ '<br>';
102 text="Create a report from this template"
103 href=CGI.url('-path', 1, '-query', 1) _ '&action=run';
108 INCLUDE html/cell colspan=5 content="Filters:";
111 FOR f_table IN params.filter.keys;
113 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
116 INCLUDE html/cell colspan=4 align='left' content=table.findvalue( 'label' );
119 FOR f_field IN params.filter.$f_table.keys;
120 logme([f_table,f_field]);
121 FOR f_fam IN params.filter.$f_table.$f_field.keys;
122 logme([f_table,f_field,f_fam]);
123 f_widget = params.filter.$f_table.$f_field.$f_fam;
124 logme([f_table,f_field,f_fam,f_widget]);
127 field = table.findnodes( "fields/field[@name='$f_field']" );
128 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
129 widget = fam.findnodes( "widget[@name='$f_widget']" );
131 INCLUDE html/cell colspan=2;
132 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
133 INCLUDE html/cell align='center' content=fam.findvalue( 'label' );
134 INCLUDE html/cell align='left' content=widget.findvalue( 'label' );
141 INCLUDE html/cell colspan=5 content="Available Attributes:";
153 params = utils.JSON2perl( tmpl.params );
155 %]<br/><form id="stage3_new" name="stage3_new" action="stage3" method="POST">[%
157 WRAPPER html/table border=0 width='100%';
159 WRAPPER html/cell colspan=4 align='center';
160 s1_name_xpath = '/reporter/tables/table[@id="' _ params.stage1 _ '"]/label';
162 text=config.findvalue( s1_name_xpath )
163 href="stage1?id=" _ params.stage1;
164 ' :: ' _ params.templatename;
169 INCLUDE html/cell colspan=4 content="Filters:";
172 FOR f_table IN params.filter.keys;
174 table = config.findnodes( "/reporter/tables/table[@id='$f_table']");
177 INCLUDE html/cell colspan=3 align='left' content=table.findvalue( 'label' );
180 FOR f_field IN params.filter.$f_table.keys;
181 logme([f_table,f_field]);
182 FOR f_fam IN params.filter.$f_table.$f_field.keys;
183 logme([f_table,f_field,f_fam]);
184 f_widget = params.filter.$f_table.$f_field.$f_fam;
185 logme([f_table,f_field,f_fam,f_widget]);
188 field = table.findnodes( "fields/field[@name='$f_field']" );
189 fam = config.findnodes( "/reporter/widgets/widget-family[@name='$f_fam']" );
190 widget = fam.findnodes( "widget[@name='$f_widget']" );
192 w_file = 'widgets/' _ fam.findvalue('@name') _ '.' _ widget.findvalue('@name');
193 INCLUDE html/cell colspan=2;
194 INCLUDE html/cell align='right' content=field.findvalue( 'label' );
196 WRAPPER html/cell align='center';
200 %]ARG!! Couldn't render widget [% $w_file %] ([% error.info %])!!![%
209 INCLUDE html/cell colspan=5 content="Available Attributes:";
214 INCLUDE submit name="action" value="schedule";