add a CVS Format link to the advanced query page
[monitor.git] / web / MonitorWeb / monitorweb / templates / query.kid
index c44202a..5a6774f 100644 (file)
@@ -6,20 +6,29 @@ from monitor import config
 from time import mktime
 from pcucontrol.reboot import pcu_name, model_to_object
 from links import *
+import cherrypy
 ?>
 <html py:layout="'sitemenu.kid'"
       xmlns:py="http://purl.org/kid/ns#"
          xmlns:mochi="http://www.mochi.org">
 
   <div py:match="item.tag == 'content'">
-               <h2>Functional, but Under Development...</h2>
+               <h2>Advanced Search</h2>
+
+<img id="toggle-image-visible-query" src="/plekit/icons/toggle-visible.png" style="height:18px;" onclick="plc_toggle('query')" />
+<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>
+
+<div id="toggle-area-query">
                <table>
                        <tr>
                                <td>${queryform.display(method="GET", value=data)}</td>
                        </tr>
                </table>
+</div>
+
 <h4>Results</h4>
-       <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-50" width="100%">
+    <a href="${link('query', tg_format='plain', **cherrypy.request.params)}">CSV Format</a>
+       <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%">
        <thead>
        <tr class='pagesize_area'><td class='pagesize_area' colspan='5'>
                 <form class='pagesize' action='satisfy_xhtml_validator'><fieldset>
@@ -43,21 +52,93 @@ from links import *
             <img class='reset' src="/planetlab/icons/clear.png" alt="reset search"
                  onmousedown='plekit_table_filter_reset("querylist","querylist_search","querylist_search_and");' />
        </fieldset></div></td></tr>
+
+<tr style="border:0px;">
+  <span py:for="key in sorted(fields.keys())" ><td></td></span>
+<td style="text-align:right;padding:0.5em;">
+  <span style="display:none" id="values_box_clippy"></span>
+    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
+            width="110"
+            height="14"
+            id="clippy" >
+      <param name="movie" value="static/flash/clippy.swf?v5"/>
+      <param name="allowScriptAccess" value="always" />
+      <param name="quality" value="high" />
+      <param name="scale" value="noscale" />
+      <param name="bgcolor" value="#FFFFFF" />
+      <param name="FlashVars" value="id=values_box_clippy" />
+        <embed src="static/flash/clippy.swf"
+               width="110"
+               height="14"
+               name="clippy"
+               quality="high"
+               allowScriptAccess="always"
+               type="application/x-shockwave-flash"
+               pluginspage="http://www.macromedia.com/go/getflashplayer"
+               FlashVars="id=values_box_clippy"
+               bgcolor="#FFFFFF"
+               />
+    </object>
+</td></tr>
+
                <!-- for keys show each th -->
                <tr>
                        <span py:for="key in sorted(fields.keys())" >
-                               <th class="sortable plekit_table">${key}</th>
+                               <span py:if="key == 'uptime'">
+                                       <th class="sortable-numeric plekit_table">${key}</th>
+                               </span>
+                               <span py:if="key != 'uptime'">
+                                       <th class="sortable plekit_table">${key}</th>
+                               </span>
                        </span>
+                        <th class="plekit_table"> C </th>
                </tr>
        </thead>
        <tbody>
                <!-- for keys show value -->
+<?python
+num = 0
+?>
                <tr py:for="row in query"  >
+<?python
+values = []
+num += 1
+checkboxname="checkbox%d" % num
+?>
                        <span py:for="key in sorted(fields.keys())" >
                                <td>${row[key]}</td>
+<?python
+values.append(str(row[key]))
+?>
                        </span>
+<?python
+values = ",".join(values)
+?>
+
+                        <td><input type="checkbox" class="clippy_checkbox" name="${checkboxname}" value="${values}" onclick="setup_clippy()"/></td>
+
                </tr>
-      </tbody>
+        </tbody>
        </table>
+        
+<script type="text/javascript">
+var lst = $("querylist");
+var tbody = lst.getElementsBySelector("tbody")[0];
+var trs = tbody.getElementsBySelector("tr");
+if (trs.length > 2) {
+ plc_toggle("query");
+}
+
+
+function setup_clippy () {
+var values = "";
+var checkboxes = $$$('.clippy_checkbox').each(function(e){if (e.checked == true) {values += e.value + "\n";} });
+$$$('#values_box_clippy').each(function(e){e.innerHTML=values;});
+}
+
+</script>
+
   </div>
+
+
 </html>