(*) slices list has links towards the slice page with the details area closed and...
[plewww.git] / planetlab / tags / nodegroups.php
index 6917d6a..82bac8c 100644 (file)
@@ -17,6 +17,7 @@ include 'plc_header.php';
 require_once 'plc_functions.php';
 require_once 'linetabs.php';
 require_once 'table.php';
+require_once 'form.php';
 
 // -------------------- 
 // recognized URL arguments
@@ -55,27 +56,62 @@ if ( ! $nodegroups ) {
   return;
  }
   
+$headers=array();
+$notes=array();
 
-$headers = array ( "Name"=>"string",
-                  "Tag"=>"string",
-                  "Value"=>"string",
-                  "Nodes"=>"int");
+$headers['group name']='string';
+$headers['tag name']='string';
+$headers['tag value']='string';
+$headers['# N']='int';
+$notes []= '# N = number of nodes in the group';
 
+$headers["Id"]="int";
+if (plc_is_admin()) $headers[plc_delete_icon()]="none";
+
+$form=new PlekitForm(l_actions(),NULL);
+$form->start();
 # initial sort on groupname
-$table=new PlekitTable("nodegroups",$headers,0);
+$table=new PlekitTable("nodegroups",$headers,0,array('notes'=>$notes));
 $table->start();
 
 foreach ($nodegroups as $nodegroup) {
   $table->row_start();
-  $table->cell (href(l_nodegroup($nodegroup['nodegroup_id']),$nodegroup['groupname']));
+  $nodegroup_id=$nodegroup['nodegroup_id'];
+  $table->cell (href(l_nodegroup($nodegroup_id),$nodegroup['groupname']));
   // yes, a nodegroup is not a tag, but knows enough for this to work
   $table->cell (l_tag_obj($nodegroup));
   $table->cell ($nodegroup['value']);
   $table->cell (count($nodegroup['node_ids']));
+  $table->cell ($nodegroup_id);
+  $table->cell ($form->checkbox_html('nodegroup_ids[]',$nodegroup_id));
   $table->row_end();
 }
 
+$table->tfoot_start();
+
+$table->row_start();
+$table->cell($form->submit_html ("delete-nodegroups","Remove groups"),
+            array('hfill'=>true,'align'=>'right'));
+$table->row_end();
+
+// an inline area to add a tag type
+$table->row_start();
+
+// build the tagname selector
+$relevant_tags = $api->GetTagTypes( array("category"=>'*node*'));
+function selector_argument ($tt) { return array('display'=>$tt['tagname'],"value"=>$tt['tag_type_id']); }
+$selectors=array_map("selector_argument",$relevant_tags);
+$tagname_input=$form->select_html("tag_type_id",$selectors,array('label'=>"Tag Name"));
+
+
+$table->cell($form->text_html('groupname',''));
+$table->cell($tagname_input);
+$table->cell($form->text_html('value',''));
+$table->cell($form->submit_html("add-nodegroup","Add"),3);
+$table->row_end();
+
 $table->end();
+$form->end();
 
 //plekit_linetabs ($tabs,"bottom");