Code

Updated copy&paste handler
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 9 Nov 2009 07:59:02 +0000 (07:59 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 9 Nov 2009 07:59:02 +0000 (07:59 +0000)
-Allow to set a parent object for the copied tab object.

git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@14794 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/include/class_CopyPasteHandler.inc
gosa-core/include/class_management.inc

index d9e8948c23a60a748c8e5a76f05cadb9c514c8f4..6436330550dec8d17e1b0caac0a4da8576389d06 100644 (file)
@@ -61,7 +61,7 @@ class CopyPasteHandler {
    *  array['tab_class']  - Tab object that should be used to initialize the new object
    *  array['tab_object'] - Tab object name used to initialize correct object Type like USERTABS
    */
-  function add_to_queue($dn,$action,$tab_class,$tab_object,$tab_acl_category)
+  function add_to_queue($dn,$action,$tab_class,$tab_object,$tab_acl_category,&$parent = NULL)
   {
     if(!class_available($tab_class)){
       trigger_error(sprintf("Specified class object '%s' does not exists.",$tab_class));
@@ -86,6 +86,7 @@ class CopyPasteHandler {
       $tmp['tab_class'] = $tab_class;
       $tmp['tab_object']= $tab_object;
       $tmp['tab_acl_category']= $tab_acl_category;
+      $tmp['parent']    = $parent;
       $this->queue[]    = $tmp; 
       $this->require_update = TRUE;
     }
@@ -223,6 +224,7 @@ class CopyPasteHandler {
     $tab_c = $entry['tab_class'];
     $tab_o = $entry['tab_object'];
     $tab_a = $entry['tab_acl_category'];
+    $parent = $entry['parent'];
 
     if($entry['method'] == "copy"){
       $entry['object']      = new $tab_c($this->config,$this->config->data['TABS'][$tab_o],"new",$tab_a);
@@ -230,6 +232,9 @@ class CopyPasteHandler {
       $entry['object']      = new $tab_c($this->config,$this->config->data['TABS'][$tab_o],$entry['dn'],$tab_a);
     }
 
+    if($parent ){
+      $entry['object']->parent = $parent;
+    }
     $entry['source_data'] = $this->load_attributes_from_hdd($entry['file_name']);
 
     if($entry['method'] == "copy"){
index 4439b559abb49c2a550fcce68b4cefe0c6ca699a..dcf8c1658194cc9619c0a7507a391f2f46c44a80 100644 (file)
@@ -782,11 +782,11 @@ class management
       $this->cpHandler->cleanup_queue();
       foreach($target as $dn){
         if($action == "copy" && $this->ui->is_copyable($dn,$aclCategory,$aclPlugin)){
-          $this->cpHandler->add_to_queue($dn,"copy",$tabClass,$tabType,$aclCategory);
+          $this->cpHandler->add_to_queue($dn,"copy",$tabClass,$tabType,$aclCategory,$this);
           @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$dn,"Entry copied!");
         }
         if($action == "cut" && $this->ui->is_cutable($dn,$aclCategory,$aclPlugin)){
-          $this->cpHandler->add_to_queue($dn,"cut",$tabClass,$tabType,$aclCategory);
+          $this->cpHandler->add_to_queue($dn,"cut",$tabClass,$tabType,$aclCategory,$this);
           @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$dn,"Entry cutted!");
         }
       }