4ward
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 14 Jan 2009 17:29:10 +0000 (17:29 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 14 Jan 2009 17:29:10 +0000 (17:29 +0000)
planetlab/css/plc_tables.css
planetlab/includes/plc_tables.php
planetlab/js/plc_tables.js
planetlab/nodes/newindex.php

index f82053c..2f17ed7 100644 (file)
@@ -107,7 +107,7 @@ table.table_dialogs {
     width:100%;
     border:1px;
 }
-.table_size_label{
+.pagesize_label{
     font-weight:bold;
 }
 .table_search_label{
index 95e23be..a5f92f3 100644 (file)
@@ -1,20 +1,24 @@
 <?php
-  /* table_id */
-function plc_table_header ($table_id,$size_init,$size_def) {
-  $tablesize_text_id = $table_id . "_tablesize";
+
+////////////////////////////////////////
+// table_id: <table>'s id tag
+// pagesize_init: the initial pagination size
+// pagesize_def: the page size when one clisks the pagesize reset button
+function plc_table_search_area ($table_id,$pagesize_init,$pagesize_def) {
+  $pagesize_text_id = $table_id . "_pagesize";
   $search_text_id = $table_id . "_search";
   $search_reset_id = $table_id . "_search_reset";
   $search_and_id = $table_id . "_search_and";
   print <<< EOF
 <table class='table_dialogs'> <tr>
 <td class='table_flushleft'>
-<form class='table_size'>
-   <input class='table_size_input' type='text' id="$tablesize_text_id" value=$size_init 
-      onkeyup='plc_table_setsize("$table_id","$tablesize_text_id", $size_init);' 
+<form class='pagesize'>
+   <input class='pagesize_input' type='text' id="$pagesize_text_id" value=$pagesize_init 
+      onkeyup='plc_pagesize_set("$table_id","$pagesize_text_id", $pagesize_init);' 
       size=3 maxlength=3 /> 
-  <label class='table_size_label'> items/page </label>   
+  <label class='pagesize_label'> items/page </label>   
   <img class='table_reset' src="/planetlab/icons/clear.png" 
-      onmousedown='plc_table_size_reset("$table_id","$tablesize_text_id",$size_def);'>
+      onmousedown='plc_pagesize_reset("$table_id","$pagesize_text_id",$pagesize_def);'>
 </form>
 </td>
 
@@ -35,5 +39,67 @@ function plc_table_header ($table_id,$size_init,$size_def) {
 </tr></table>
 EOF;
 }
+
+////////////////////////////////////////
+// table_id: <table>'s id tag
+// headers: an associative array "label"=>"type" 
+// pagesize: the initial page
+// column_init_sort: the column to sort on at load-time
+// max_pages: the max number of pages to display in the paginator
+function plc_table_head ($table_id,$headers,$pagesize,$column_init_sort,$max_pages) {
+  $paginator=$table_id."_paginator";
+  $classname="paginationcallback-".$paginator;
+  $classname.=" max-pages-" . $max_pages;
+  $classname.=" paginate-" . $pagesize;
+  print <<< EOF
+<!-- instantiate paginator callback -->
+<script type"text/javascript"> 
+function $paginator (opts) { plc_table_paginator (opts,"$table_id"); }
+</script>
+<br/>
+<table id="$table_id" cellpadding="0" cellspacing="0" border="0" 
+class="plc_table sortable-onload-$column_init_sort rowstyle-alt colstyle-alt no-arrow $classname">
+<thead>
+<tr>
+EOF;
+
+  foreach ($headers as $label => $type) {
+    if ($type == "string") $type="";
+    if ($type == "int") $type="";
+    if ($type == "float") $type="";
+    $class="sortable";
+    if ( ! empty($type)) $class .= "-" . $type;
+    print '<th class="' . $class . ' plc_table">' . $label . "</th>\n";
+  }
+
+  print <<< EOF
+</tr>
+</thead>
+<tbody>
+EOF;
+}
+
+////////////////////////////////////////
+function plc_table_foot () {
+  print <<< EOF
+</tbody>
+<tfoot>
+</tfoot>
+</table>
+EOF;
+}
+
+////////////////////////////////////////
+function plc_table_notes () {
+  print <<< EOF
+<p class='plc_filter_note'> 
+Notes: Enter & or | in the search area to alternate between <bold>AND</bold> and <bold>OR</bold> search modes
+<br/> 
+Hold down the shift key to select multiple columns to sort 
+</p>
+EOF;
+}
+
+
 ?>
 
index 7226ab4..aecc1a2 100644 (file)
@@ -47,7 +47,7 @@ function plc_table_paginator (opts,tablename) {
 
 
 /* locates a table from its id and alters the classname to reflect new table size */
-function plc_table_setsize (table_id,size_id,def_size) {
+function plc_pagesize_set (table_id,size_id,def_size) {
   var table=document.getElementById(table_id);
   var size_area=document.getElementById(size_id);
   if ( ! size_area.value ) {
@@ -58,7 +58,7 @@ function plc_table_setsize (table_id,size_id,def_size) {
   tablePaginater.init(table_id);
 }
 
-function plc_table_size_reset(table_id, size_id, size) {
+function plc_pagesize_reset(table_id, size_id, size) {
   var table=document.getElementById(table_id);
   var size_area=document.getElementById(size_id);
   size_area.value=size;
index d19e706..8660e05 100644 (file)
@@ -109,43 +109,21 @@ foreach ($peers as $peer) {
     $peer_hash[$peer['peer_id']]=$peer;
 }
 
-?>
-
-<?php
-$tablesize=25;
-plc_table_header("nodes",$tablesize,999);
-?>
-
-<!------------------------------------------------------------>
-<!-- instantiate generic mechanisms for nodes -->
-<script type"text/javascript">
-function nodes_paginator (opts) {
-  plc_table_paginator (opts,"nodes");
-}
-</script>
-
-<br/>
-<!------------------------------------------------------------>
-<!------------------------------------------------------------>
-<table id="nodes" cellpadding="0" cellspacing="0" border="0" 
-class="plc_table sortable-onload-4 rowstyle-alt colstyle-alt no-arrow paginationcallback-nodes_paginator max-pages-15 paginate-<?php print $tablesize; ?>">
-<thead>
-<tr>
-<th class="sortable plc_table">Peer</th>
-<th class="sortable plc_table">Region</th>
-<th class="sortable plc_table">Site</th>
-<th class="sortable plc_table">State</th>
-<th class="sortable plc_table">Hostname</th>
-<th class="sortable-sortIPAddress plc_table">IP</th>
-<th class="sortable plc_table">Load</th>
-<th class="sortable plc_table">Avg Load</th>
-</tr>
-</thead>
-<tbody>
-
-<?php
-
-  $fake1=1; $fake2=3.14; $fake_i=0;
+$pagesize=25;
+plc_table_search_area("nodes",$pagesize,999);
+$columns = array ("Peer"=>"string",
+                 "Region"=>"string",
+                 "Site"=>"string",
+                 "State"=>"string",
+                 "Hostname"=>"string",
+                 "IP"=>"IPAddress",
+                 "Load"=>"int",
+                 "Avg Load"=>"float");
+
+plc_table_head("nodes",$columns,$pagesize,"4",15);
+
+// write rows
+$fake1=1; $fake2=3.14; $fake_i=0;
 foreach ($nodes as $node) {
     $hostname=$node['hostname'];
     $node_id=$node['node_id'];
@@ -176,14 +154,8 @@ foreach ($nodes as $node) {
     $fake_i += 1;
 }
 
+plc_table_foot();
+
+plc_table_notes();
 ?>
-</tbody>
-<tfoot>
-</tfoot>
-</table>
-
-<p class='plc_filter_note'> 
-Notes: Enter & or | in the search area to alternate between <bold>AND</bold> and <bold>OR</bold> search modes
-<br/> 
-Hold down the shift key to select multiple columns to sort 
-</p>
+