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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 206 - (hide 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 torben 104 <%pre>
2     #include <tntdb/connect.h>
3     #include <tntdb/connection.h>
4     #include <tntdb/result.h>
5     #include <tntdb/row.h>
6 torben 111
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 torben 104 </%pre>
17    
18     <%config>
19     dburl;
20     </%config>
21    
22     <&header title="Installation details">
23     </&header>
24    
25 torben 111 <%args>
26     int id;
27     </%args>
28    
29 torben 104 <h2>Installation details</h2>
30    
31 torben 111
32 torben 104 <{
33     tntdb::Connection conn;
34    
35 torben 195 conn = tntdb::connectCached(dburl);
36 torben 104
37 torben 111 std::stringstream query;
38 torben 114 query << "SELECT c.name, c.address AS caddress, i.description, i.address AS iadress, i.furnacetype, i.updaterate, i.commerror ";
39 torben 111 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 torben 104 }>
49    
50 torben 111 <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 torben 114 <tr>
76     <td>Comm. status: </td>
77 torben 127 <td><img src="bullet?rgb=<$ (res[0].getBool(6) ? "ff0000" : "00ff00") $>" alt="Status Indicator"></td>
78 torben 114 </tr>
79 torben 111
80    
81     </table>
82    
83 torben 206 <br>
84 torben 122 <p align="center"><img src="temperaturegraph?id=<$id$>" alt="Temperature graph"></p>
85 torben 111
86 torben 206 <br>
87 torben 111 <{
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 torben 159 query << "ORDER BY messagenr DESC, logtime DESC ";
93 torben 111 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 torben 126 for (unsigned int i=0; i<res.size(); ++i)
100 torben 111 {
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 torben 202 out << "<td align='center'>&nbsp;" << logtime << "&nbsp;</td>\n";
115 torben 111 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 torben 122 out << "</table>\n";
124 torben 111
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 torben 104 <&footer>
140     </&footer>

  ViewVC Help
Powered by ViewVC 1.1.20