Code

Fix missing elements for copy'n paste
[gosa.git] / gosa-core / include / class_management.inc
index dcf8c1658194cc9619c0a7507a391f2f46c44a80..6f8babb4222eac399cefc5fb5f850025d6dac5e3 100644 (file)
@@ -3,7 +3,7 @@
  * This code is part of GOsa (http://www.gosa-project.org)
  * Copyright (C) 2003-2008 GONICUS GmbH
  *
- * ID: $$Id: class_plugin.inc 14584 2009-10-12 14:04:22Z hickert $$
+ * ID: $$Id$$
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -164,6 +164,10 @@ class management
       foreach($this->storagePoints as $sp){
         $bases[] = $sp.$this->headpage->getBase();
       }
+
+      // No bases specified? Try base  
+      if(!count($bases)) $bases[] = $this->headpage->getBase();
+
       $this->snapHandler->setSnapshotBases($bases);
     }
     
@@ -323,7 +327,7 @@ class management
 
         // Delete the object
         $this->dn = $dn;
-        $this->tabObject= new $tabClass($this->config,$this->config->data['TABS'][$tabType], $this->dn, $aclCategory);
+        $this->tabObject= new $tabClass($this->config,$this->config->data['TABS'][$tabType], $this->dn, $aclCategory, true, true);
         $this->tabObject->set_acl_base($this->dn);
         $this->tabObject->delete ();
         $this->tabObject->parent = &$this;
@@ -474,6 +478,9 @@ class management
       }
     }
 
+    // No bases specified? Try base  
+    if(!count($bases)) $bases[] = $this->headpage->getBase();
+
     // No target, open the restore removed object dialog.
     if(!count($target)){ 
       $entry = $this->headpage->getBase();
@@ -586,7 +593,14 @@ class management
      *     }
      *   }
      * }
-     **/ 
+     **/
+
+    // Do not create a new tabObject while there is already one opened,
+    //  the user may have just pressed F5 to reload the page.
+    if(is_object($this->tabObject)){
+      return;
+    }
     $tabType = $this->tabType;
     $tabClass = $this->tabClass;
     $aclCategory = $this->aclCategory;
@@ -673,6 +687,18 @@ class management
         $this->remove_lock();
         $this->closeDialogs();
       }
+    }elseif($this->dialogObject instanceOf plugin){
+      $this->dialogObject->save_object();
+      $msgs = $this->dialogObject->check();
+      if(count($msgs)){
+        msg_dialog::displayChecks($msgs); 
+        return("");
+      }else{
+        $this->dialogObject->save();
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Entry saved!");
+        $this->remove_lock();
+        $this->closeDialogs();
+      }
     }
   }