added utf8 decode for the site name
[plewww.git] / planetlab / sites / sites.php
index dbab8ba..d4ab6b9 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-  // $Id: index.php 11750 2009-01-29 10:11:53Z thierry $
+  // $Id$
   //
 
   // Require login
@@ -16,8 +16,9 @@ include 'plc_header.php';
 // Common functions
 require_once 'plc_functions.php';
 require_once 'plc_peers.php';
-require_once 'plc_minitabs.php';
-require_once 'plc_tables.php';
+require_once 'linetabs.php';
+require_once 'table.php';
+require_once 'nifty.php';
 
 // -------------------- 
 // recognized URL arguments
@@ -27,27 +28,31 @@ $pattern=$_GET['pattern'];
 // --- decoration
 $title="Sites";
 $tabs=array();
-$tabs []= tab_mysite();
+$tabs []= tab_sites();
 $tabs []= tab_sites_local();
+$tabs []= tab_mysite();
 
 // -------------------- 
 $site_filter=array();
 
 function site_status ($site) {
 
+  $class=($site['peer_id']) ? 'plc-foreign' : 'plc-warning';
+
   $messages=array();
   
   if (empty ($site['node_ids'])) 
     $messages [] = "No node";
 
-  $class=($site['peer_id']) ? 'plc-foreign' : 'plc-warning';
-
   // do all this stuff on local sites only
   if ( ! $site['peer_id'] ) {
     
     // check that site is enabled
     if ( ! $site['enabled']) 
       $messages [] = "Not enabled";
+    global $PENDING_CONSORTIUM_ID;
+    if ( $site['ext_consortium_id'] === $PENDING_CONSORTIUM_ID )
+      $messages [] = "Pending registration";
   
     // check that site has at least a PI and a tech
     global $api;
@@ -94,21 +99,29 @@ if (! plc_is_admin()) {
   $site_filter = array_merge ($site_filter, array ("enabled" => TRUE));
  } else {
   $site_columns = array("site_id", "name", "abbreviated_name", "login_base" , "peer_id" , 
-                       "enabled", "person_ids", "max_slices", "slice_ids", "node_ids");
+                       "is_public", "enabled", "ext_consortium_id",
+                       "person_ids", "max_slices", "slice_ids", "node_ids");
  }
 
 if (plc_is_admin()) 
-  $tabs['Pending'] = array ('url'=>l_sites_pending(),
-                           'bubble'=>'Review pending join requests');
+  $tabs['Joining Sites'] = array ('url'=>l_sites_pending(),
+                                 'bubble'=>'Review pending join requests');
 
 drupal_set_title($title);
-plc_tabs($tabs);
+plekit_linetabs($tabs);
 
 // go
 $sites= $api->GetSites( $site_filter , $site_columns);
 
 $peers=new Peers($api);
 
+$nifty=new PlekitNifty ('','objects-list','big');
+$nifty->start();
+
+$headers=array();
+if (plc_is_admin()) {
+  $headers['I']='int';
+}
 $headers['Peer']="string";
 $headers['Full Name']="string";
 $headers['Login']="string";
@@ -120,29 +133,46 @@ if (plc_is_admin()) {
   $headers['?']="string";
  }
 
-$table=new PlcTable("sites",$headers,2);
+if (plc_is_admin()) {
+  $table=new PlekitTable("sites",$headers,3);
+} else {
+  $table=new PlekitTable("sites",$headers,2);
+}
 $table->start();
 
 if ($sites) foreach ($sites as $site) {
-  $shortname = $peers->shortname($site['peer_id']);
+  $peer_id=$site['peer_id'];
+  $site_id=$site['site_id'];
+  $login_base=$site['login_base'];
   $table->row_start();
-  $table->cell($shortname);
-  $table->cell (l_site_t($site['site_id'],htmlentities($site['name'])));
-  $table->cell ($site['login_base']);
+  if (plc_is_admin()) {
+    $table->cell(l_site_t($site_id,$site_id));
+  }
+  $peers->cell($table,$peer_id);
+  $table->cell (l_site_t($site_id,htmlentities(utf8_decode($site['name']))));
+  $table->cell (l_site_t($site_id,$login_base));
   $table->cell (htmlentities($site['abbreviated_name']));
   if (plc_is_admin()) {
-    $table->cell(count($site['node_ids']));
-    $table->cell(count($site['person_ids']));
-    $table->cell(count($site['slice_ids']));
+    $table->cell(href(l_nodes_site($site_id),count($site['node_ids'])));
+    $table->cell(href(l_persons_site($site_id),count($site['person_ids'])));
+    $table->cell(href(l_slices_site($site_id),count($site['slice_ids'])));
     $table->cell(site_status($site));
   }
   $table->row_end();
 }
-$notes=array("N = number of sites / U = number of users / S = number of slices");
+$notes=array();
+if (plc_is_admin()) {
+  $notes []= "N = number of nodes";
+  $notes []= "U = number of users";
+  $notes []= "S = number of slices";
+  $notes []= "I = site_id";
+  $notes []= "? = status";
+ }
 
 $table->end(array('notes'=>$notes));
+$nifty->end();
 
-//plc_tabs ($tabs,"bottom");
+//plekit_linetabs ($tabs,"bottom");
 
 // Print footer
 include 'plc_footer.php';