brute-force changed access to $_GET['key'] to use get_array instead
[plewww.git] / planetlab / tags / tags.php
index 282c9c5..c17df62 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 
-// $Id$
-
 // Require login
 require_once 'plc_login.php';
 
@@ -15,28 +13,26 @@ include 'plc_header.php';
 
 // Common functions
 require_once 'plc_functions.php';
-require_once 'plc_minitabs.php';
-require_once 'plc_tables.php';
-require_once 'plc_forms.php';
+require_once 'linetabs.php';
+require_once 'table.php';
+require_once 'form.php';
 
 // -------------------- 
 // recognized URL arguments
-$pattern=$_GET['pattern'];
+$pattern=get_array($_GET, 'pattern');
 
 // --- decoration
 $title="Tag Types";
 $tabs=array();
-$tabs['Tag Types']=array('url'=>l_tags(),'bubble'=>"Create a new tag type");
-$tabs['All Nodes']=array('url'=>l_nodes(),'bubble'=>"Nodes from all peers");
-$tabs['Local Nodes']=array('url'=>l_nodes(),'values'=>array('peerscope'=>'local'),'bubble'=>"All local nodes");
-//$tabs['Interfaces']=l_interfaces();
-$tabs['All Slices']=array('url'=>l_slices(),'bubble'=>"Slices from all peers");
+$tabs []= tab_tags();
+$tabs []= tab_nodes_local();
+$tabs []= tab_slices();
 
 // -------------------- 
 drupal_set_title($title);
-plc_tabs($tabs);
+plekit_linetabs($tabs);
 
-$tag_type_columns = array( "tag_type_id", "tagname", "category", "description", "min_role_id" );
+$tag_type_columns = array( "tag_type_id", "tagname", "category", "description", "roles");
 
 $tag_type_filter=NULL;
 if ($pattern) 
@@ -46,33 +42,35 @@ if ($pattern)
 $tag_types= $api->GetTagTypes($tag_type_filter, $tag_type_columns);
   
 $headers=array();
+$notes=array();
 // delete button
 $headers['Name']="string";
 $headers['Description']="string";
 $headers['Category']="string";
-$headers['Min role']="string";
+$headers['Roles']="string";
+
+// xxx ref count would be helpful but seem too expensive to compute at this stage 
+// the individual tag page show those ref counts per type
+
 $headers["Id"]="int";
 if (plc_is_admin()) $headers[plc_delete_icon()]="none";
 
-$form=new PlcForm(l_actions(),NULL);
+$form=new PlekitForm(l_actions(),NULL);
 $form->start();
 
-$table = new PlcTable("tags",$headers,0);
+$table = new PlekitTable("tags",$headers,0,array('notes'=>$notes));
 $table->start();
 
-$roles_hash=plc_role_global_hash($api);
-
 $description_width=40;
 
 foreach( $tag_types as $tag_type ) {
-  $role_name=$roles_hash[$tag_type['min_role_id']];
 
   $table->row_start();
   $tag_type_id=$tag_type['tag_type_id'];
   $table->cell(href(l_tag($tag_type_id),$tag_type['tagname']));
   $table->cell(wordwrap($tag_type['description'],$description_width,"<br/>"));
   $table->cell($tag_type['category']);
-  $table->cell($role_name);
+  $table->cell(plc_vertical_table ($tag_type['roles']));
   $table->cell($tag_type_id);
   if (plc_is_admin()) 
     $table->cell ($form->checkbox_html('tag_type_ids[]',$tag_type_id));
@@ -84,29 +82,25 @@ if (plc_is_admin()) {
 
   $table->row_start();
   $table->cell($form->submit_html ("delete-tag-types","Remove tags"),
-              $table->columns(),"right");
+              array('hfill'=>true,'align'=>'right'));
   $table->row_end();
 
   // an inline area to add a tag type
   $table->row_start();
   
-  // build the role selector
-  $relevant_roles = $api->GetRoles( array("~role_id"=>$role_ids));
-  function selector_argument ($role) { return array('display'=>$role['name'],"value"=>$role['role_id']); }
-  $selectors=array_map("selector_argument",$relevant_roles);
-  $role_input=$form->select_html("min_role_id",$selectors,array('label'=>"Role"));
-
   $table->cell($form->text_html('tagname',''));
   $table->cell($form->textarea_html('description','',$description_width,2));
   $table->cell($form->text_html('category',''));
-  $table->cell($role_input);
-  $table->cell($form->submit_html("add-tag-type","Add Type"),2);
+  $table->cell("<span class='note_roles'>add roles later</span>");
+  $table->cell($form->submit_html("add-tag-type","Add"),2);
   $table->row_end();
  }
 
 $table->end();
 $form->end();
 
+//plekit_linetabs ($tabs,"bottom");
+
 // Print footer
 include 'plc_footer.php';