X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_CopyPasteHandler.inc;h=4d6fb1ddb04928d4e27061661fa2e7dfc6607ba6;hb=a55a2cf24e33de317de2650582e10a8d88f28d7e;hp=ee772bb300afcc345fba4ed46facca515865fde1;hpb=abb6e783bd08540c2830b3c89410b7f46404b7b7;p=gosa.git diff --git a/gosa-core/include/class_CopyPasteHandler.inc b/gosa-core/include/class_CopyPasteHandler.inc index ee772bb30..4d6fb1ddb 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"){ @@ -353,14 +358,17 @@ class CopyPasteHandler { /* Save edited entry and force loading new one */ - if(isset($_POST['PerformCopyPaste']) && $this->current){ + if(isset($this->current['object']) && method_exists($this->current['object'],"saveCopyDialog")) { $this->current['object']->saveCopyDialog(); + } + + if(isset($_POST['PerformCopyPaste']) && $this->current){ $msgs = $this->check(); /* Load next queue entry */ if(!count($msgs)){ - $this->lastdn = $this->current['object']->dn; $this->current['object']->save(); + $this->lastdn = $this->current['object']->dn; $this->current = FALSE; }else{ foreach( $msgs as $msg){