add a CVS Format link to the advanced query page
[monitor.git] / web / MonitorWeb / monitorweb / templates / query.kid
index 02f05d1..5a6774f 100644 (file)
@@ -6,13 +6,14 @@ 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>
@@ -26,6 +27,7 @@ from links import *
 </div>
 
 <h4>Results</h4>
+    <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'>
@@ -50,6 +52,35 @@ 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())" >
@@ -60,17 +91,36 @@ from links import *
                                        <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];
@@ -78,6 +128,14 @@ 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>