From: cajus Date: Fri, 29 Jan 2010 17:04:06 +0000 (+0000) Subject: Moved macros to new base selector X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=d7a48f90fc413ada7d975c6b4feed6b89c31be58;p=gosa.git Moved macros to new base selector git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15468 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/gosa-plugins/gofon/gofon/macro/class_gofonMacro.inc b/gosa-plugins/gofon/gofon/macro/class_gofonMacro.inc index d9aa0b78d..3fe01851a 100644 --- a/gosa-plugins/gofon/gofon/macro/class_gofonMacro.inc +++ b/gosa-plugins/gofon/gofon/macro/class_gofonMacro.inc @@ -43,6 +43,7 @@ class macro extends plugin var $objectclasses = array("top", "goFonMacro"); var $goFonHomeServers = array(); // Contains all available asterisk database server + var $baseSelector; //! The Konstructor /*! Konstructor, load class with attributes of the given dn*/ @@ -83,6 +84,12 @@ class macro extends plugin $this->orig_base = $this->base; $this->orig_dn = $this->dn; + + /* Instanciate base selector */ + $this->baseSelector= new baseSelector($this->get_allowed_bases(), $this->base); + $this->baseSelector->setSubmitButton(false); + $this->baseSelector->setHeight(300); + $this->baseSelector->update(true); } @@ -103,40 +110,9 @@ class macro extends plugin $tmp = array(); $number = 0; - /* Base select dialog */ - $once = true; - foreach($_POST as $name => $value){ - if(preg_match("/^chooseBase/",$name) && $once){ - $once = false; - $this->dialog = new baseSelectDialog($this->config,$this,$this->get_allowed_bases()); - $this->dialog->setCurrentBase($this->base); - } - } - - /* Dialog handling */ - if(is_object($this->dialog)){ - /* Must be called before save_object */ - $this->dialog->save_object(); - - if($this->dialog->isClosed()){ - $this->dialog = false; - }elseif($this->dialog->isSelected()){ - - /* A new base was selected, check if it is a valid one */ - $tmp = $this->get_allowed_bases(); - if(isset($tmp[$this->dialog->isSelected()])){ - $this->base = $this->dialog->isSelected(); - } - - $this->dialog= false; - }else{ - return($this->dialog->execute()); - } - } - /* Fill templating stuff */ $smarty= get_smarty(); - $smarty->assign("bases", $this->get_allowed_bases()); + $smarty->assign("usePrototype", "true"); $tmp = $this->plInfo(); foreach($tmp['plProvidedAcls'] as $name => $translation){ @@ -154,8 +130,10 @@ class macro extends plugin foreach($this->attributes as $ar){ $smarty->assign($ar, $this->$ar); } + + $smarty->assign("base", $this->baseSelector->render()); + /* Checkboxes */ - $smarty->assign("base_select", $this->base); $smarty->assign("vars", $vars); if($this->goFonMacroVisible){ @@ -351,11 +329,14 @@ class macro extends plugin plugin::save_object(); $this->base = $base_tmp; - /* Save base, since this is no LDAP attribute */ - $tmp = $this->get_allowed_bases(); - if(isset($_POST['base'])){ - if(isset($tmp[$_POST['base']])){ - $this->base= $_POST['base']; + /* Refresh base */ + if ($this->acl_is_moveable($this->base)){ + if (!$this->baseSelector->update()) { + msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG); + } + if ($this->base != $this->baseSelector->getBase()) { + $this->base= $this->baseSelector->getBase(); + $this->is_modified= TRUE; } } diff --git a/gosa-plugins/gofon/gofon/macro/generic.tpl b/gosa-plugins/gofon/gofon/macro/generic.tpl index 5fd717f0e..0c504a6b7 100644 --- a/gosa-plugins/gofon/gofon/macro/generic.tpl +++ b/gosa-plugins/gofon/gofon/macro/generic.tpl @@ -27,15 +27,8 @@ {$must} {render acl=$baseACL} - + {$base} {/render} - - {render acl=$baseACL disable_picture='images/lists/folder_grey.png'} - - {/render} -