[%
PROCESS inputs;
PROCESS class_manip;
PROCESS widget_manip;
PROCESS logic_header.ttk;
INCLUDE logout.ttk;
templates = DBI.tie('reporter.stage2', 'id')
reports = DBI.tie('reporter.stage3', 'id')
rpt = {};
tmpl = {};
IF CGI.param('id');
tid = CGI.param('stage2');
tmpl = templates.$tid;
rid = CGI.param('id');
rpt = reports.$rid;
END;
WRAPPER html/html;
INCLUDE header.ttk + navbar.ttk title="Reports";
WRAPPER html/body;
IF CGI.param('action') == 'Schedule';
PROCESS schedule_stage3;
ELSIF CGI.param('action') == 'Save';
PROCESS save_stage3;
ELSIF CGI.param('action') == 'Run Now';
PROCESS save_stage3;
ELSIF CGI.param('id');
PROCESS view_stage3;
ELSE;
PROCESS list_stage3s;
END;
END;
INCLUDE footer.ttk;
END;
BLOCK schedule_stage3;
WRAPPER form method='POST';
'Run Date:';
INCLUDE text name='runtime' value='yyyy-mm-dd';
'
';
'Optional Recurrence:';
INCLUDE text name='recurrence-count' value='0';
WRAPPER select name='recurrence-interval';
INCLUDE option value='days' content='Day(s)';
INCLUDE option value='weeks' content='Week(s)';
INCLUDE option value='months' content='Month(s)';
END;
FOR p IN CGI.param();
NEXT IF p == 'action';
NEXT IF p == 'runtime';
INCLUDE hidden name=p value=CGI.param(p);
END;
'
';
INCLUDE submit name='action' value='Save';
END;
END;
BLOCK list_stage3s;
END;
BLOCK save_stage3;
stage2 = CGI.param('stage2');
runtime = CGI.param('runtime') OR 'now';
pub = CGI.param('publicreport') OR 'f';
owner = user.id();
p_obj = {};
FOR p IN CGI.param();
logme([p,CGI.param(p)]);
parts = p.split(':');
p1 = parts.0;
p2 = parts.1;
p3 = parts.2;
p4 = parts.3;
p5 = parts.4;
p6 = parts.5;
IF p6;
IF p_obj.$p1.$p2.$p3.$p4.$p5.$p6.defined;
IF p_obj.$p1.$p2.$p3.$p4.$p5.$p6.size > 1;
p_obj.$p1.$p2.$p3.$p4.$p5.$p6.push(CGI.param(p));
ELSE;
tmp = [ p_obj.$p1.$p2.$p3.$p4.$p5.$p6, CGI.param(p) ];
p_obj.$p1.$p2.$p3.$p4.$p5.$p6 = tmp;
END;
ELSE;
p_obj.$p1.$p2.$p3.$p4.$p5.$p6 = CGI.param(p);
END;
ELSIF p5;
IF p_obj.$p1.$p2.$p3.$p4.$p5.defined;
IF p_obj.$p1.$p2.$p3.$p4.$p5.size > 1;
p_obj.$p1.$p2.$p3.$p4.$p5.push(CGI.param(p));
ELSE;
tmp = [ p_obj.$p1.$p2.$p3.$p4.$p5, CGI.param(p) ];
p_obj.$p1.$p2.$p3.$p4.$p5 = tmp;
END;
ELSE;
p_obj.$p1.$p2.$p3.$p4.$p5 = CGI.param(p);
END;
ELSIF p4;
IF p_obj.$p1.$p2.$p3.$p4.defined;
IF p_obj.$p1.$p2.$p3.$p4.size > 1;
p_obj.$p1.$p2.$p3.$p4.push(CGI.param(p));
ELSE;
tmp = [ p_obj.$p1.$p2.$p3.$p4, CGI.param(p) ];
p_obj.$p1.$p2.$p3.$p4 = tmp;
END;
ELSE;
p_obj.$p1.$p2.$p3.$p4 = CGI.param(p);
END;
ELSIF p3;
IF p_obj.$p1.$p2.$p3.defined;
IF p_obj.$p1.$p2.$p3.size > 1;
p_obj.$p1.$p2.$p3.push(CGI.param(p));
ELSE;
tmp = [ p_obj.$p1.$p2.$p3, CGI.param(p) ];
p_obj.$p1.$p2.$p3 = tmp;
END;
ELSE;
p_obj.$p1.$p2.$p3 = CGI.param(p);
END;
ELSIF p2;
IF p_obj.$p1.$p2.defined;
IF p_obj.$p1.$p2.size > 1;
p_obj.$p1.$p2.push(CGI.param(p));
ELSE;
tmp = [ p_obj.$p1.$p2, CGI.param(p) ];
p_obj.$p1.$p2 = tmp;
END;
ELSE;
p_obj.$p1.$p2 = CGI.param(p);
END;
ELSE;
p_obj.$p = CGI.param(p);
END;
END;
params = utils.perl2JSON( p_obj );
recurrence = '0 sec';
IF CGI.param('recurrence-count') > 0;
recurrence = CGI.param('recurrence-count') _ ' ' _ CGI.param('recurrence-interval');
END;
logme([stage2, params, owner, pub]);
q = DBI.prepare( stage3_insert );
CALL q.execute(stage2, params, owner, pub, runtime, recurrence);
FOR new_s3 = DBI.query("SELECT * FROM reporter.stage3_id_seq;");
tid = new_s3.last_value;
INCLUDE view_stage3 rpt = reports.$tid;
END;
END;
BLOCK view_stage3;
logme(rpt.params);
params = utils.JSON2perl( rpt.params );
# stuff goes here ...
END;
%]