29d896e84abdb1761dcb779ac776ef1b0d332edc
[monitor.git] / web / MonitorWeb / monitorweb / templates / query.kid
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <?python
3 layout_params['page_title'] = "MyOps Detail View"
4 from monitor.util import diff_time
5 from monitor import config
6 from time import mktime
7 from pcucontrol.reboot import pcu_name, model_to_object
8 from links import *
9 ?>
10 <html py:layout="'sitemenu.kid'"
11       xmlns:py="http://purl.org/kid/ns#"
12           xmlns:mochi="http://www.mochi.org">
13
14   <div py:match="item.tag == 'content'">
15                 <h2>Functional, but Under Development...</h2>
16
17 <img id="toggle-image-visible-query" src="/plekit/icons/toggle-visible.png" style="height:18px;" onclick="plc_toggle('query')" />
18 <img id="toggle-image-hidden-query" src="/plekit/icons/toggle-hidden.png" style="height:18px;display:none" onclick="plc_toggle('query')" /> <span style="font-size:2em;">Monitor Query</span>
19
20 <div id="toggle-area-query">
21                 <table>
22                         <tr>
23                                 <td>${queryform.display(method="GET", value=data)}</td>
24                         </tr>
25                 </table>
26 </div>
27
28 <h4>Results</h4>
29         <table py:if="fields and len(fields.keys()) > 0" id="querylist" cellpadding="0" border="0" class="plekit_table sortable-onload-0 colstyle-alt no-arrow paginationcallback-querylist_paginator max-pages-10 paginate-999" width="100%">
30         <thead>
31         <tr class='pagesize_area'><td class='pagesize_area' colspan='5'>
32          <form class='pagesize' action='satisfy_xhtml_validator'><fieldset>
33             <input class='pagesize_input' type='text' id="querylist_pagesize" value='50'
34                    onkeyup='plekit_pagesize_set("querylist","querylist_pagesize", 50);' 
35                    size='3' maxlength='3' />                                                          
36             <label class='pagesize_label'> items/page </label>                                     
37             <img class='reset' src="/planetlab/icons/clear.png" alt="reset visible size"           
38                  onmousedown='plekit_pagesize_reset("querylist","querylist_pagesize", 999);' />
39         </fieldset></form></td></tr>                                                                        
40         <tr class='search_area'><td class='search_area' colspan='5'>
41         <div class='search'><fieldset>
42             <label class='search_label'> Search </label>                 
43             <input class='search_input' type='text' id='querylist_search' 
44                    onkeyup='plekit_table_filter("querylist","querylist_search","querylist_search_and");'
45                    size='self.search_width' maxlength='256' />                                            
46             <label>and</label>                                                                        
47             <input id='querylist_search_and' class='search_and'                                        
48                    type='checkbox' checked='checked'                                                      
49                    onchange='plekit_table_filter("querylist","querylist_search","querylist_search_and");' />
50             <img class='reset' src="/planetlab/icons/clear.png" alt="reset search"
51                  onmousedown='plekit_table_filter_reset("querylist","querylist_search","querylist_search_and");' />
52         </fieldset></div></td></tr>
53
54 <tr style="border:0px;">
55   <span py:for="key in sorted(fields.keys())" ><td></td></span>
56 <td style="text-align:right;padding:0.5em;">
57   <span style="display:none" id="values_box_clippy"></span>
58     <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
59             width="110"
60             height="14"
61             id="clippy" >
62       <param name="movie" value="static/flash/clippy.swf?v5"/>
63       <param name="allowScriptAccess" value="always" />
64       <param name="quality" value="high" />
65       <param name="scale" value="noscale" />
66       <param name="bgcolor" value="#FFFFFF" />
67       <param name="FlashVars" value="id=values_box_clippy" />
68         <embed src="static/flash/clippy.swf"
69                width="110"
70                height="14"
71                name="clippy"
72                quality="high"
73                allowScriptAccess="always"
74                type="application/x-shockwave-flash"
75                pluginspage="http://www.macromedia.com/go/getflashplayer"
76                FlashVars="id=values_box_clippy"
77                bgcolor="#FFFFFF"
78                />
79     </object>
80 </td></tr>
81
82                 <!-- for keys show each th -->
83                 <tr>
84                         <span py:for="key in sorted(fields.keys())" >
85                                 <span py:if="key == 'uptime'">
86                                         <th class="sortable-numeric plekit_table">${key}</th>
87                                 </span>
88                                 <span py:if="key != 'uptime'">
89                                         <th class="sortable plekit_table">${key}</th>
90                                 </span>
91                         </span>
92                         <th class="plekit_table"> C </th>
93                 </tr>
94         </thead>
95         <tbody>
96                 <!-- for keys show value -->
97 <?python
98 num = 0
99 ?>
100                 <tr py:for="row in query"  >
101 <?python
102 values = []
103 num += 1
104 checkboxname="checkbox%d" % num
105 ?>
106                         <span py:for="key in sorted(fields.keys())" >
107                                 <td>${row[key]}</td>
108 <?python
109 values.append(str(row[key]))
110 ?>
111                         </span>
112 <?python
113 values = ",".join(values)
114 ?>
115
116                         <td><input type="checkbox" class="clippy_checkbox" name="${checkboxname}" value="${values}" onclick="setup_clippy()"/></td>
117
118                 </tr>
119         </tbody>
120         </table>
121         
122 <script type="text/javascript">
123 var lst = $("querylist");
124 var tbody = lst.getElementsBySelector("tbody")[0];
125 var trs = tbody.getElementsBySelector("tr");
126 if (trs.length > 2) {
127  plc_toggle("query");
128 }
129
130
131 function setup_clippy () {
132 var values = "";
133 var checkboxes = $$$('.clippy_checkbox').each(function(e){if (e.checked == true) {values += e.value + "\n";} });
134 $$$('#values_box_clippy').each(function(e){e.innerHTML=values;});
135 }
136
137 </script>
138
139   </div>
140
141
142 </html>