return multiple site list for 'my site' link.
authorStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 4 Jun 2009 16:50:05 +0000 (16:50 +0000)
committerStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 4 Jun 2009 16:50:05 +0000 (16:50 +0000)
modules/planetlab.module
planetlab/includes/plc_functions.php

index 9eae1d3..2f4ebd3 100644 (file)
@@ -108,74 +108,68 @@ function planetlab_block($op = 'list', $delta = 0, $edit = array()) {
       $block['content'] .= p( href(l_site_register(),"File a site registration") );
     } else {
       $block['subject'] = truncate($plc->person['email'],30);
+      $is_admin = in_array(10,$plc->person['role_ids']);
+      $is_pi    = in_array(20,$plc->person['role_ids']);
+      $is_user  = in_array(30,$plc->person['role_ids']);
+      $is_tech  = in_array(40,$plc->person['role_ids']);
 
-      //////////////////// Logout 
-      $bullet_item = '';
+      //////////////////// Logout
       if ($user->uid) {
        // Drupal logout (destroys the session and cleans up $user)
        // Thierry unclear when this triggers, I suspect this is obsolete
-       $bullet_item .= l(t('Logout of %s', 
-                         array('%s' => variable_get('site_name', 'local'))), 'logout');
+       $items[] = leaf (l(t('Logout of %s', 
+                            array('%s' => variable_get('site_name', 'local'))), 'logout'));
       } else {
        // PlanetLab logout (just destroy the session)
-       $bullet_item .= href (l_logout(),'Logout');
+       $items[] = leaf ( href (l_logout(),'Logout'));
       }
-      $bullet_item .= ul_start();
-      // logout 
+      
+      //////////////////// Sites
+      $site_item = '';
+      $site_item .= href(l_sites(),"Sites");
+      $site_item .= ul_start();
+      #$site_item .= leaf( href(l_site(plc_my_site_id()),"My Site"));
+      $site_item .= plc_my_site_links(); # leaf( href(l_site(plc_my_site_id()),"My Site"));
+      if ( $is_admin ) 
+       $site_item .= leaf( href(l_sites_pending(),"Pending Requests"));
+      $site_item .= ul_end();
+      $items[] = expanded($site_item);
+
+      //////////////////// Users
+      $user_item = '';
+      $user_item .= href(l_persons(),'Users');
+      $user_item .= ul_start();
+      $user_item .= leaf( l_person_t(plc_my_person_id(),"My Account"));
+      if (is_pi) 
+       $user_item .= leaf( href( l_persons_site(plc_my_site_id()), "My Users"));
       if ( $plc->alt_person && $plc->alt_auth) {
        $email = truncate($plc->person['email'],20); 
-       $bullet_item .= leaf( href( l_sulogout(),"Un-become $email"));
+       $user_item .= leaf( href( l_sulogout(),"Logout of $email"));
       }        
-      $bullet_item .= ul_end();
-      $items []= expanded ($bullet_item);
-
-      //////////////////// accounts
-      $bullet_item = '';
-      $bullet_item .=  l_person_t(plc_my_person_id(),"My Account");
-      $bullet_item .= ul_start();
-      if (plc_is_admin() || plc_is_pi()) 
-       $bullet_item .= leaf( href( l_persons_site(plc_my_site_id()), "My Users"));
-      if (plc_is_admin()) {
-       $bullet_item .= leaf(href(l_persons_peer('local'),'Local users (looong)'));
-       $bullet_item .= leaf(href(l_persons(),'All users (looong)'));
-      }
-       
-      $bullet_item .= ul_end();
-      $items [] = expanded($bullet_item);
-
-      //////////////////// Sites
-      $bullet_item = '';
-      $bullet_item .= href(l_sites(),"Sites");
-      $bullet_item .= ul_start();
-      $bullet_item .= leaf( href(l_site(plc_my_site_id()),"My Site"));
-      if ( plc_is_admin() ) 
-       $bullet_item .= leaf( href(l_sites_pending(),"Pending Requests"));
-      $bullet_item .= ul_end();
-      $items[] = expanded($bullet_item);
+      $user_item .= ul_end();
+      $items [] = expanded($user_item);
 
       //////////////////// Nodes
-      $bullet_item = '';
-      $bullet_item .= href(l_nodes(),"Nodes");
-      $bullet_item .= ul_start();
-      $bullet_item .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes"));
-      $bullet_item .= leaf( href (l_register_node(),"Register Node"));
-      $bullet_item .= ul_end();
-      $items [] = expanded($bullet_item);
+      $node_item = '';
+      $node_item .= href(l_nodes(),"Nodes");
+      $node_item .= ul_start();
+      $node_item .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes"));
+      $node_item .= leaf( href (l_node_add(),"Add Node"));
+      $node_item .= ul_end();
+      $items [] = expanded($node_item);
 
       //////////////////// Slices
-      $bullet_item = '';
-      //if( !( plc_is_tech() && ! plc_is_user() && ! plc_is_pi() && ! plc_is_admin() ) ) 
-      $bullet_item .= href(l_slices(),"Slices");
-      $bullet_item .= ul_start();
-      if (plc_is_admin()) 
-       $bullet_item .= leaf ( href(l_slices_site(plc_my_site_id()), 'My Site Slices'));
-      if( plc_is_admin() || plc_is_pi() ) {
-       $bullet_item .= leaf(href(l_slice_add(),"Create Slice"));
+      $slice_item = '';
+      //if( !( $is_tech && ! $is_user && ! $is_pi && ! $is_admin ) ) 
+      $slice_item .= href(l_slices(),"Slices");
+      $slice_item .= ul_start();
+      if( $is_admin || $is_pi ) {
+       $slice_item .= leaf(href(l_slice_add(),"Create Slice"));
       }
-      if( !( plc_is_tech() && ! plc_is_user() && ! plc_is_pi() && ! plc_is_admin() ) ) 
-       $bullet_item .= leaf(href(l_sirius(),"Sirius"));
-      $bullet_item .= ul_end();
-      $items [] = expanded($bullet_item);
+      if( !( $is_tech && ! $is_user && ! $is_pi && ! $is_admin ) ) 
+       $slice_item .= leaf(href(l_sirius(),"Sirius"));
+      $slice_item .= ul_end();
+      $items [] = expanded($slice_item);
 
       //////////////////// Admin
       if( plc_is_admin() || plc_is_pi() ) {
@@ -192,13 +186,13 @@ function planetlab_block($op = 'list', $delta = 0, $edit = array()) {
        $items [] = expanded($bullet_item);
       }
 
-      $bullet_item = '';
-      $bullet_item .= href(l_about(),'About MyPLC');
-      $bullet_item .= ul_start();
-      $bullet_item .= leaf ( href (l_doc_plcapi(),"PLCAPI doc"));
-      $bullet_item .= leaf ( href (l_doc_nmapi(),"NMAPI doc"));
-      $bullet_item .= ul_end();
-      $items[] = expanded($bullet_item);
+      $doc_item = '';
+      $doc_item .= href(l_about(),'About MyPLC');
+      $doc_item .= ul_start();
+      $doc_item .= leaf ( href (l_doc_plcapi(),"PLCAPI doc"));
+      $doc_item .= leaf ( href (l_doc_nmapi(),"NMAPI doc"));
+      $doc_item .= ul_end();
+      $items[] = expanded($doc_item);
 
       //$block['content'] = theme('list_item', $items);
       $block['content'] = menu_theme($items);
index adffb69..4e8928c 100644 (file)
@@ -36,6 +36,27 @@ function plc_my_site_ids () {
   global $plc;
   return $plc->person['site_ids'];
 }
+function plc_my_site_names () {
+  global $plc;
+  global $api;
+  $ret = $api->GetSites($plc->person['site_ids'], array('site_id', 'abbreviated_name'));
+  return $ret;
+}
+
+function plc_my_site_links()
+{
+  $site_item = '';
+  if ( sizeof(plc_my_site_ids()) > 1 )
+  {
+    foreach (plc_my_site_names() as $site) 
+    {
+       $site_item .= leaf( href(l_site($site['site_id']),$site['abbreviated_name']));
+    }
+  } else {
+      $site_item .= leaf( href(l_site(plc_my_site_id()),"My Site"));
+  }
+  return $site_item;
+}
 
 function plc_my_site_id () {
   global $plc;