<%pre> #include #include #include #include #include #include "common.h" inline std::string convert_bool(bool input) { return input ? "on" : "off"; } <%config> dburl; <&header title="Installation details"> <%args> int id;

Installation details

<{ tntdb::Connection conn; conn = tntdb::connect(dburl); std::stringstream query; query << "SELECT c.name, c.address AS caddress, i.description, i.address AS iadress, i.furnacetype, i.updaterate, i.commerror "; query << "FROM installation i INNER JOIN customer c ON c.id = i.customerid "; query << "WHERE i.id = " << id; std::ostream& out = reply.out(); tntdb::Result res = conn.select(query.str()); if (res.size() >0 ) { }>
Customer: <$ res[0].getString(0) $>
Customer address:   <$$ nl2br(res[0].getString(1)) $>
Installation: <$ res[0].getString(2) $>
Location: <$$ nl2br(res[0].getString(3)) $>
Furnace type: <$ res[0].getString(4) $>
Update rate: <$ res[0].getInt(5) $>
Comm. status: ">

<{ query.str(""); //reset stringstream query << "SELECT messagenr, date_trunc('second', logtime) AS logtime, temperature, flamedetector, solidfuelempty, conveyorerror,powerfailure "; query << "FROM logtable "; query << "WHERE installationnr = " << id; query << "ORDER BY messagenr DESC"; res = conn.select(query.str()); out << "\n"; out << "\n"; for (int i=0; i"; out << "\n"; out << "\n"; out << "\n"; out << "\n"; out << "\n"; out << "\n"; out << "\n"; out << ""; } }> <{ } else { reply.out() << "No installation with this ID"; } }> <&footer>
 Message#  Logtime  Temperature  Flamedetector  Solidfuel empty  Conveyor error  Power failure 
" << messagenr << "" << logtime << "90 ? critical : "" ) << ">" << temperature << "" << convert_bool(flamedetector) << "" << convert_bool(solidfuelempty) << "" << convert_bool(conveyorerror) << "" << convert_bool(powerfailure) << "