Code

Updated FAI partition handling
[gosa.git] / gosa-plugins / fai / admin / fai / class_faiGroupHandle.inc
index 2ae27825ec5129907fe21c3c697c95a046e57f9d..eb31295ad968ea011760147a6dde4dedeccd5daf 100644 (file)
@@ -10,7 +10,7 @@ class faiGroupHandle{
 
   public function __construct($FAI_group, $Action)
   {
-    if(in_array($Action,array("edit","remove"))){
+    if(in_array($Action,array("edit","remove","copy","cut"))){
       $this->mode = $Action;
     }else{
       trigger_error("Wrong action type '".$Action."'.");
@@ -18,14 +18,14 @@ class faiGroupHandle{
     }
 
     /* Preset required values */
+    $select_set = FALSE;
     foreach($FAI_group as $type => $data){
       $FAI_group[$type]['selected'] = FALSE;
-    }
-    
-    /* Select first entry in edit mode */
-    if($this->mode == "edit"){
-      reset($FAI_group);
-      $FAI_group[key($FAI_group)]['selected'] = TRUE;
+      $FAI_group[$type]['freezed'] = isset($data['FAIstate']) && preg_match("/freeze/",$data['FAIstate']);
+      if(!$select_set && ($this->mode == "cut" || $this->mode == "edit") && !$FAI_group[$type]['freezed']){
+        $FAI_group[$type]['selected'] = TRUE;
+        $select_set =TRUE;
+      }
     }
     $this->FAI_group = $FAI_group;
   }
@@ -42,7 +42,7 @@ class faiGroupHandle{
   function save_object()
   {
     if(isset($_POST['faiGroupHandle'])){
-      if($this->mode == "remove"){
+      if(in_array($this->mode,array("copy","cut","remove"))){
         foreach($this->FAI_group as $key => $group){
           if(isset($_POST[$this->mode."_".$key])){
             $this->FAI_group[$key]['selected'] = TRUE;