add/remove node actions were missing
[plewww.git] / planetlab / common / actions.php
index 9c519b8..ecde471 100644 (file)
@@ -67,12 +67,18 @@ $known_actions []= "update-site";
 //     expects:        site_id & name abbreviated_name url latitude longitude [login_base max_slices]
 
 //////////////////////////////////////// slices
+$known_actions []= "update-slice";     
+//     expects:        slice_id, name, description, url
 $known_actions []= "renew-slice";
 //     expects:        slice_id & expires
 $known_actions []= 'remove-persons-from-slice';
 //     expects:        slice_id & person_ids
 $known_actions []= 'add-persons-in-slice';
 //     expects:        slice_id & person_ids
+$known_actions []= 'remove-nodes-from-slice';
+//     expects:        slice_id & node_ids
+$known_actions []= 'add-nodes-in-slice';
+//     expects:        slice_id & node_ids
 
 //////////////////////////////////////// tag types
 $known_actions []= "update-tag-type";
@@ -434,6 +440,25 @@ switch ($action) {
  }
 
 //////////////////////////////////////////////////////////// slices
+ case 'update-slice': {
+   $slice_id = $_POST['slice_id'];
+   $name = $_POST['name'];
+   $description= $_POST['description'];
+   $url= $_POST['url'];
+
+   $fields= array( "description"=>$description, "url"=>$url );
+   $api->UpdateSlice( intval( $slice_id ), $fields );
+   $error= $api->error();
+
+   if( empty( $error ) ) {
+     drupal_set_message("Update slice $name");
+     plc_redirect(l_slice($slice_id));
+   } else {
+     drupal_set_error($error);
+   }
+   break;
+ }
+
  case 'renew-slice': {
    $slice_id = intval ($_POST['slice_id']);    
    $expires = intval ($_POST['expires']);
@@ -473,7 +498,7 @@ switch ($action) {
      drupal_set_message ("Deleted $counter person(s)");
    else
      drupal_set_error ("Could not delete all selected persons, only $counter were removed");
-   plc_redirect(l_slice($slice_id));
+   plc_redirect(l_slice($slice_id) . " &show_persons=true");
    break;
  }
 
@@ -483,7 +508,7 @@ switch ($action) {
    
    $success=true;
    $counter=0;
-   foreach( $person_ids as $person_id ) {
+   foreach ($person_ids as $person_id) {
      if ($api->AddPersonToSlice(intval($person_id),$slice_id) != 1) 
        $success=false;
      else
@@ -493,7 +518,32 @@ switch ($action) {
      drupal_set_message ("Added $counter person(s)");
    else
      drupal_set_error ("Could not add all selected persons, only $counter were added");
-   plc_redirect(l_slice($slice_id));
+   plc_redirect(l_slice($slice_id) . "&show_persons=true" );
+   break;
+ }
+
+ case 'remove-nodes-from-slice': {
+   $slice_id = intval ($_POST['slice_id']);    
+   $node_ids = array_map("intval",$_POST['node_ids']);
+   $count=count($node_ids);
+   
+   if ($api->DeleteSliceFromNodes($slice_id,$node_ids) == 1) 
+     drupal_set_message ("Removed $count node(s)");
+   else
+     drupal_set_error ("Could not remove selected nodes");
+   plc_redirect(l_slice($slice_id) . " &show_nodes=true");
+   break;
+ }
+
+ case 'add-nodes-in-slice': {
+   $slice_id = intval ($_POST['slice_id']);    
+   $node_ids = array_map("intval",$_POST['node_ids']);
+   $count=count($node_ids);
+   if ($api->AddSliceToNodes($slice_id,$node_ids) == 1) 
+     drupal_set_message ("Added $count node(s)");
+   else
+     drupal_set_error ("Could not add all selected nodes");
+   plc_redirect(l_slice($slice_id) . "&show_nodes=true" );
    break;
  }