From 5c3ec1cce75bc9e50fbcfdc4aa659883f3ef0e17 Mon Sep 17 00:00:00 2001 From: hickert Date: Mon, 9 Nov 2009 07:59:02 +0000 Subject: [PATCH] Updated copy&paste handler -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 | 7 ++++++- gosa-core/include/class_management.inc | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gosa-core/include/class_CopyPasteHandler.inc b/gosa-core/include/class_CopyPasteHandler.inc index d9e8948c2..643633055 100644 --- a/gosa-core/include/class_CopyPasteHandler.inc +++ b/gosa-core/include/class_CopyPasteHandler.inc @@ -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"){ diff --git a/gosa-core/include/class_management.inc b/gosa-core/include/class_management.inc index 4439b559a..dcf8c1658 100644 --- a/gosa-core/include/class_management.inc +++ b/gosa-core/include/class_management.inc @@ -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!"); } } -- 2.30.2