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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 110 by torben, Thu Nov 29 17:06:38 2007 UTC revision 111 by torben, Fri Nov 30 16:05:11 2007 UTC
# Line 3  Line 3 
3  #include <tntdb/connection.h>  #include <tntdb/connection.h>
4  #include <tntdb/result.h>  #include <tntdb/result.h>
5  #include <tntdb/row.h>  #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>  </%pre>
17    
18  <%config>  <%config>
# Line 12  dburl; Line 22  dburl;
22  <&header title="Installation details">  <&header title="Installation details">
23  </&header>  </&header>
24    
25    <%args>
26    int id;
27    </%args>
28    
29  <h2>Installation details</h2>  <h2>Installation details</h2>
30    
31    
32  <{  <{
33  tntdb::Connection conn;  tntdb::Connection conn;
34    
35  conn = tntdb::connect(dburl); //letting exceptions flow up and to tntnet and let it display an error message  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    

Legend:
Removed from v.110  
changed lines
  Added in v.111

  ViewVC Help
Powered by ViewVC 1.1.20