/[H9]/trunk/tntnet/dynamic/installationdetails.ecpp
ViewVC logotype

Contents of /trunk/tntnet/dynamic/installationdetails.ecpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 206 - (show annotations) (download)
Sun Dec 9 21:08:55 2007 UTC (16 years, 5 months ago) by torben
File size: 3517 byte(s)
A little more space around the graph

1 <%pre>
2 #include <tntdb/connect.h>
3 #include <tntdb/connection.h>
4 #include <tntdb/result.h>
5 #include <tntdb/row.h>
6
7 #include <sstream>
8 #include "common.h"
9
10
11 inline std::string convert_bool(bool input)
12 {
13 return input ? "on" : "off";
14 }
15
16 </%pre>
17
18 <%config>
19 dburl;
20 </%config>
21
22 <&header title="Installation details">
23 </&header>
24
25 <%args>
26 int id;
27 </%args>
28
29 <h2>Installation details</h2>
30
31
32 <{
33 tntdb::Connection conn;
34
35 conn = tntdb::connectCached(dburl);
36
37 std::stringstream query;
38 query << "SELECT c.name, c.address AS caddress, i.description, i.address AS iadress, i.furnacetype, i.updaterate, i.commerror ";
39 query << "FROM installation i INNER JOIN customer c ON c.id = i.customerid ";
40 query << "WHERE i.id = " << id;
41
42 std::ostream& out = reply.out();
43
44 tntdb::Result res = conn.select(query.str());
45
46 if (res.size() >0 )
47 {
48 }>
49
50 <table border=1 cellspacing=0 align='center'>
51 <tr>
52 <td><b>Customer</b>: </td>
53 <td><b><$ res[0].getString(0) $></b></td>
54 </tr>
55 <tr>
56 <td>Customer address: &nbsp;</td>
57 <td><$$ nl2br(res[0].getString(1)) $></td>
58 </tr>
59 <tr>
60 <td><b>Installation: </b></td>
61 <td><b><$ res[0].getString(2) $></b></td>
62 </tr>
63 <tr>
64 <td>Location: </td>
65 <td><$$ nl2br(res[0].getString(3)) $></td>
66 </tr>
67 <tr>
68 <td>Furnace type: </td>
69 <td><$ res[0].getString(4) $></td>
70 </tr>
71 <tr>
72 <td>Update rate: </td>
73 <td><$ res[0].getInt(5) $></td>
74 </tr>
75 <tr>
76 <td>Comm. status: </td>
77 <td><img src="bullet?rgb=<$ (res[0].getBool(6) ? "ff0000" : "00ff00") $>" alt="Status Indicator"></td>
78 </tr>
79
80
81 </table>
82
83 <br>
84 <p align="center"><img src="temperaturegraph?id=<$id$>" alt="Temperature graph"></p>
85
86 <br>
87 <{
88 query.str(""); //reset stringstream
89 query << "SELECT messagenr, date_trunc('second', logtime) AS logtime, temperature, flamedetector, solidfuelempty, conveyorerror,powerfailure ";
90 query << "FROM logtable ";
91 query << "WHERE installationnr = " << id;
92 query << "ORDER BY messagenr DESC, logtime DESC ";
93 res = conn.select(query.str());
94
95
96 out << "<table border=1 cellspacing=0 align='center'>\n";
97 out << "<tr><th>&nbsp;Message#&nbsp;</th><th>&nbsp;Logtime&nbsp;</th><th>&nbsp;Temperature&nbsp;</th><th>&nbsp;Flamedetector&nbsp;</th><th>&nbsp;Solidfuel empty&nbsp;</th><th>&nbsp;Conveyor error&nbsp;</th><th>&nbsp;Power failure&nbsp;</th></tr>\n";
98
99 for (unsigned int i=0; i<res.size(); ++i)
100 {
101 int messagenr = res[i].getInt(0);
102 std::string logtime = res[i].getString(1);
103 int temperature = res[i].getInt(2);
104 bool flamedetector = res[i].getBool(3);
105 bool solidfuelempty = res[i].getBool(4);
106 bool conveyorerror = res[i].getBool(5);
107 bool powerfailure = res[i].getBool(6);
108
109 std::string critical = " class='critical'";
110
111 out << "<tr>";
112
113 out << "<td align='center'>" << messagenr << "</td>\n";
114 out << "<td align='center'>&nbsp;" << logtime << "&nbsp;</td>\n";
115 out << "<td align='center'" << (temperature >90 ? critical : "" ) << ">" << temperature << "</td>\n";
116 out << "<td align='center'" << (flamedetector==false ? critical : "") << ">" << convert_bool(flamedetector) << "</td>\n";
117 out << "<td align='center'>" << convert_bool(solidfuelempty) << "</td>\n";
118 out << "<td align='center'" << (conveyorerror==true ? critical : "") << ">" << convert_bool(conveyorerror) << "</td>\n";
119 out << "<td align='center'" << (powerfailure==true ? critical : "") << ">" << convert_bool(powerfailure) << "</td>\n";
120
121 out << "</tr>";
122 }
123 out << "</table>\n";
124
125
126 }>
127
128
129
130 <{
131 }
132 else
133 {
134 reply.out() << "<i>No installation with this ID</i>";
135 }
136
137 }>
138
139 <&footer>
140 </&footer>

  ViewVC Help
Powered by ViewVC 1.1.20