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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 111 - (show annotations) (download)
Fri Nov 30 16:05:11 2007 UTC (16 years, 5 months ago) by torben
File size: 3255 byte(s)
Sync

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::connect(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 ";
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
76
77 </table>
78
79
80 <p align="center"><img src="temperaturegraph?id=<$id$>"></p>
81
82 <{
83 query.str(""); //reset stringstream
84 query << "SELECT messagenr, date_trunc('second', logtime) AS logtime, temperature, flamedetector, solidfuelempty, conveyorerror,powerfailure ";
85 query << "FROM logtable ";
86 query << "WHERE installationnr = " << id;
87 query << "ORDER BY messagenr DESC";
88 res = conn.select(query.str());
89
90
91 out << "<table border=1 cellspacing=0 align='center'>\n";
92 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";
93
94 for (int i=0; i<res.size(); ++i)
95 {
96 int messagenr = res[i].getInt(0);
97 std::string logtime = res[i].getString(1);
98 int temperature = res[i].getInt(2);
99 bool flamedetector = res[i].getBool(3);
100 bool solidfuelempty = res[i].getBool(4);
101 bool conveyorerror = res[i].getBool(5);
102 bool powerfailure = res[i].getBool(6);
103
104 std::string critical = " class='critical'";
105
106 out << "<tr>";
107
108 out << "<td align='center'>" << messagenr << "</td>\n";
109 out << "<td align='center'>" << logtime << "</td>\n";
110 out << "<td align='center'" << (temperature >90 ? critical : "" ) << ">" << temperature << "</td>\n";
111 out << "<td align='center'" << (flamedetector==false ? critical : "") << ">" << convert_bool(flamedetector) << "</td>\n";
112 out << "<td align='center'>" << convert_bool(solidfuelempty) << "</td>\n";
113 out << "<td align='center'" << (conveyorerror==true ? critical : "") << ">" << convert_bool(conveyorerror) << "</td>\n";
114 out << "<td align='center'" << (powerfailure==true ? critical : "") << ">" << convert_bool(powerfailure) << "</td>\n";
115
116 out << "</tr>";
117 }
118
119
120 }>
121
122
123
124 <{
125 }
126 else
127 {
128 reply.out() << "<i>No installation with this ID</i>";
129 }
130
131 }>
132
133 <&footer>
134 </&footer>

  ViewVC Help
Powered by ViewVC 1.1.20