diff --git a/gosa-core/include/class_CopyPasteHandler.inc b/gosa-core/include/class_CopyPasteHandler.inc
index d9e8948c23a60a748c8e5a76f05cadb9c514c8f4..4d6fb1ddb04928d4e27061661fa2e7dfc6607ba6 100644 (file)
* 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));
$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;
}
$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);
$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"){
/* 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 */