fdb4536da5df3ee6ba1c5477af1bdb0535a17c9e
[monitor.git] / web / MonitorWeb / monitorweb / templates / nodelist.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'] = "Monitor Node List"
4 from monitor.util import diff_time
5 from time import mktime
6 from links import *
7
8 ?>
9 <html py:layout="'sitemenu.kid'"
10       xmlns:py="http://purl.org/kid/ns#"
11           xmlns:mochi="http://www.mochi.org">
12
13 <div py:match="item.tag == 'content'">
14
15   <script type="text/javascript">
16     function nodelist_paginator(opts) { plekit_table_paginator(opts, "nodelist"); }
17   </script>
18
19   <center>
20   <b py:content="'BOOT-PROD: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'boot'])"></b> | 
21   <b py:content="'BOOT-SAFEBOOT: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'safeboot'])"></b> | 
22   <b py:content="'BOOT-REINSTALL: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'reinstall'])"></b><br/>
23   </center>
24
25 <table id="nodelist" cellpadding="0" border="0" class="plekit_table sortable-onload-0 rowstyle-alt colstyle-alt no-arrow paginationcallback-nodelist_paginator max-pages-10 paginate-25">
26   <thead>
27
28     <tr class='pagesize_area'><td class='pagesize_area' colspan='8'>
29         <form class='pagesize' action='satisfy_xhtml_validator'><fieldset>
30             <input class='pagesize_input' type='text' id="nodelist_pagesize" value='25'
31                    onkeyup='plekit_pagesize_set("nodelist","nodelist_pagesize", 25);' 
32                    size='3' maxlength='3' />                                                          
33             <label class='pagesize_label'> items/page </label>                                     
34             <img class='reset' src="/planetlab/icons/clear.png" alt="reset visible size"           
35                  onmousedown='plekit_pagesize_reset("nodelist","nodelist_pagesize", 25);' />
36     </fieldset></form></td></tr>                                                                        
37     
38     <tr class='search_area'><td class='search_area' colspan='8'>
39         <div class='search'><fieldset>
40             <label class='search_label'> Search </label>                 
41             <input class='search_input' type='text' id='nodelist_search' 
42                    onkeyup='plekit_table_filter("nodelist","nodelist_search","nodelist_search_and");'
43                    size='self.search_width' maxlength='256' />                                            
44             <label>and</label>                                                                        
45             <input id='nodelist_search_and' class='search_and'                                        
46                    type='checkbox' checked='checked'                                                      
47                    onchange='plekit_table_filter("nodelist","nodelist_search","nodelist_search_and");' />
48             <img class='reset' src="/planetlab/icons/clear.png" alt="reset search"
49                  onmousedown='plekit_table_filter_reset("nodelist","nodelist_search","nodelist_search_and");' />
50     </fieldset></div></td></tr>
51     
52     <tr>
53       <th class="sortable plekit_table">Site</th>
54       <th class="sortable plekit_table">Ping</th>
55       <th class="sortable plekit_table">SSH</th>
56       <th class="sortable plekit_table">Status</th>
57       <th class="sortable plekit_table">pcu</th>
58       <th class="sortable plekit_table">Hostname</th>
59       <th class="sortable plekit_table">kernel</th>
60       <th class="sortable plekit_table">last_contact</th>
61   </tr>
62   </thead>
63   <tbody>
64     <tr py:for="i,node in enumerate(query)">
65       ${nodewidget.display(node=node, header=None)}
66     </tr>
67
68   </tbody>  
69 </table>
70
71 </div>
72
73 </html>