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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

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 111 conn = tntdb::connect(dburl);
36 torben 104
37 torben 111 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 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    
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 torben 104 <&footer>
134     </&footer>

  ViewVC Help
Powered by ViewVC 1.1.20