X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_CopyPasteHandler.inc;h=5336f57c7bde328bb71732b783851d99db38b0a7;hb=30a1a3e3d450aa62cbaa8dbfdb4b6aac5ca274a2;hp=f83b415ba22242efa150765fb19c7f5772c0a676;hpb=1211fc94b23de950e861992327e2fd1bc96fd7d1;p=gosa.git diff --git a/include/class_CopyPasteHandler.inc b/include/class_CopyPasteHandler.inc index f83b415ba..5336f57c7 100644 --- a/include/class_CopyPasteHandler.inc +++ b/include/class_CopyPasteHandler.inc @@ -10,22 +10,21 @@ class CopyPasteHandler { var $dialogOpen = false; var $objectdn = false; + var $lastdn = ""; + var $was_successfull = false; - /* Create CP handler - */ + /* Create CP handler */ function CopyPasteHandler($config){ $this->config = $config; $this->current= NULL; } - /* Returns wether the current object can be pasted - */ + /* Returns wether the current object can be pasted */ function isCurrentObjectPastAble(){ - /* Check if we got a valid object - */ + /* Check if we got a valid object */ if($this->current == NULL){ return(false); } @@ -33,37 +32,39 @@ class CopyPasteHandler { } - /* Clears all copy & paste informations - */ - function Clear($current_too = false) + /* Clears all copy & paste informations */ + function Clear() { $this->copyCurrent = false; $this->cutCurrent = false; $this->dialogOpen = false; - if($current_too){ - $this->current = NULL; - } + $this->current = NULL; } - /* return current obejct dn - */ + /* return current obejct dn */ function GetCurrentDn() { return($this->objectdn); } - /* Add Object which should be copied - */ + /* Add Object which should be copied */ function Copy($obj,$emptyObj) { $this->copyCurrent = true; $this->objectdn = $obj->dn; $this->current = $emptyObj; foreach($obj->by_object as $name => $obj){ - foreach($obj->attributes as $attr){ - $this->current->by_object[$name]->$attr = $obj->$attr; + + /* Prepare every single class, to be copied */ + $this->current->by_object[$name]->PrepareForCopyPaste($obj); + + /* handle some special vars */ + foreach(array("is_account") as $attr){ + if(isset($obj->$attr)){ + $this->current->by_object[$name]->$attr = $obj->$attr; + } } } if($this->isCurrentObjectPastAble()){ @@ -76,8 +77,7 @@ class CopyPasteHandler { } - /* Add Object which should be cutted - */ + /* Add Object which should be cutted */ function Cut($obj){ $this->cutCurrent = true; $this->current = $obj; @@ -93,36 +93,31 @@ class CopyPasteHandler { /* Returns true if current object - * is cutted. And awaits to be pasted anywhere - */ + * is cutted. And awaits to be pasted anywhere */ function isCurrentCutted(){ return($this->cutCurrent); } /* Returns true if current object - * was copied, and awaits to be pasted again - */ + * was copied, and awaits to be pasted again */ function isCurrentCopied(){ return($this->copyCurrent); } - /* stillOpen - */ + /* Returns true if the copy$paste dialog is still open */ function stillOpen(){ if(isset($_POST['AbortCopyPaste'])){ $this->dialogOpen = false; } - return($this->dialogOpen); } /* Displays a dialog which allows the user to fix all dependencies of this object. - Create unique names, ids, or what ever - */ - function execute($displayMessageOnSuccess = true) + Create unique names, ids, or what ever */ + function execute() { $this->dialogOpen = true; @@ -131,10 +126,7 @@ class CopyPasteHandler { if($this->cutCurrent){ $this->current->save(); $this->dialogOpen =false; - $smarty = get_smarty(); - $smarty->assign("Complete",true); $this->Clear(); - return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE))); /* Copy & paste */ @@ -148,37 +140,34 @@ class CopyPasteHandler { }else{ $this->current->save(); $this->dialogOpen =false; - $smarty = get_smarty(); - $smarty->assign("Complete",true); $this->Clear(); - if($displayMessageOnSuccess){ - return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE))); - }else{ - return( false); - } } } - $smarty = get_smarty(); - $smarty->assign("Complete",false); - $smarty->assign("AttributesToFix",$this->generateAttributesToFix()); - $smarty->assign("objectDN" ,$this->objectdn); - return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE))); + if($this->current){ + $smarty = get_smarty(); + $smarty->assign("Complete",false); + $smarty->assign("AttributesToFix",$this->generateAttributesToFix()); + $smarty->assign("SubDialog",$this->current->SubDialog); + $smarty->assign("objectDN" ,$this->objectdn); + $smarty->assign("message", sprintf(_("You are going to copy the entry '%s'."), $this->objectdn)); + return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE))); + } } } - /* Create dialog which asks unique attributes values ... - * calls tabs -> getCopyDialog() - * which calls tab -> getCopyDialog() - */ + /* Create dialog which asks unique attributes/values ... + * call tabs -> getCopyDialog() + * which calls tab -> getCopyDialog() */ function generateAttributesToFix() { - return($this->current->getCopyDialog()); + if($this->current){ + return($this->current->getCopyDialog()); + } } /* Set a single attribute to specified value - * example : ("base", $newBase ); - */ + * example : ("base", $newBase ); */ function SetVar($name,$value) { foreach($this-> current->by_object as $key => $obj){ @@ -189,28 +178,49 @@ class CopyPasteHandler { } - /* Save new values posted by copy & paste dialog - */ + /* Save new values posted by copy & paste dialog */ function save_object() { /* Assign posted var to all tabs */ - $this->current->saveCopyDialog(); + if($this->current){ + $this->current->saveCopyDialog(); + } } - /* Returns possible errors returned from all including tabs .. - */ + /* Returns errors from including tabs. */ function check() { $ret = array(); foreach($this-> current->by_object as $obj){ - $ret = array_merge($ret , $obj->check()); + if($obj->is_account){ + $ret = array_merge($ret , $obj->check()); + } } - return($ret); } + + /* returns the paste icon for headpages */ + function generatePasteIcon() + { + $Copy_Paste= "  "; + if($this->isCurrentObjectPastAble()){ + if($this->isCurrentCutted()){ + $img= "images/cutpaste.png"; + }else{ + $img= "images/copypaste.png"; + } + $Copy_Paste.= " "; + }else{ + $Copy_Paste.= "\""._("Can't "; + } + + return ($Copy_Paste); + } + } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>