X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Fplugins%2Fadmin%2Fdepartments%2Fclass_departmentManagement.inc;h=adf3ee14d37c42c1e5eeb5da3eada458bcf4026b;hb=612d170bf29ed41d4dcd4e6e8d18d2e4bf6bafa2;hp=3a1117f830db2d9a02ab4b01541325c7d3ddd07b;hpb=5986c1bf260fd44fd3818b01439e7efa0f5c2221;p=gosa.git diff --git a/gosa-core/plugins/admin/departments/class_departmentManagement.inc b/gosa-core/plugins/admin/departments/class_departmentManagement.inc index 3a1117f83..adf3ee14d 100644 --- a/gosa-core/plugins/admin/departments/class_departmentManagement.inc +++ b/gosa-core/plugins/admin/departments/class_departmentManagement.inc @@ -44,6 +44,7 @@ class departmentManagement extends management } else { $filter = new filter(get_template_path("dep-filter.xml", true)); } + $filter->setObjectStorage(array('')); // Build headpage $headpage = new listing(get_template_path("dep-list.xml", true)); @@ -62,19 +63,17 @@ class departmentManagement extends management parent::__construct($config, $ui, "departments", $headpage); $this->registerAction("open","openEntry"); - $this->registerAction("new_domain","newEntry"); $this->registerAction("new_country","newEntry"); $this->registerAction("new_locality","newEntry"); $this->registerAction("new_dcObject","newEntry"); $this->registerAction("new_organization","newEntry"); $this->registerAction("new_organizationalUnit","newEntry"); - $this->registerAction("performRecMove","performRecMove"); $this->registerAction("tagDepartment","tagDepartment"); } - + // Inject additional actions here. function detectPostActions() { $actions = management::detectPostActions(); @@ -83,6 +82,7 @@ class departmentManagement extends management return($actions); } + // Action handler which allows department tagging - Creates the iframe contents. function tagDepartment() { $plugname = $this->last_tabObject->base_name; @@ -90,7 +90,7 @@ class departmentManagement extends management exit(); } - + // Overridden new handler - We've different types of departments to create! function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="") { $types= $this->get_support_departments(); @@ -98,22 +98,23 @@ class departmentManagement extends management return(management::newEntry($action,$target,$all,$this->tabClass,$types[$type]['TAB'],$this->aclCategory)); } + // Overridden edit handler - We've different types of departments to edit! function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="") { $types= $this->get_support_departments(); - $type = $this->headpage->getType($target[0]); + $headpage = $this->getHeadpage(); + $type = $headpage->getType($target[0]); return(management::editEntry($action,$target,$all,$this->tabClass,$types[$type]['TAB'],$this->aclCategory)); } + + // Overriden save handler - We've to take care about the department tagging here. protected function saveChanges() { - management::saveChanges(); - - global $config; - $config->get_departments(); - $config->make_idepartments(); - $this->config = $config; + $str = management::saveChanges(); + if(!empty($str)) return($str); + $this->refreshDeps(); $plugname = $this->last_tabObject->base_name; if($this->last_tabObject->by_object[$plugname]->must_be_tagged()){ $smarty = get_smarty(); @@ -122,20 +123,36 @@ class departmentManagement extends management return($smarty->fetch(get_template_path("dep_iframe.tpl",TRUE))); } } + + function refreshDeps() + { + global $config; + $config->get_departments(); + $config->make_idepartments(); + $this->config = $config; + $headpage = $this->getHeadpage(); + $headpage->refreshBasesList(); + } - + + // An action handler which enables to switch into deparmtment by clicking the names. function openEntry($action,$entry) { - $this->headpage->setBase(array_pop($entry)); + $headpage = $this->getHeadpage(); + $headpage->setBase(array_pop($entry)); } + + // Overridden remove request method - Avoid removal of the ldap base. protected function removeEntryRequested($action="",$target=array(),$all=array()) { $target = array_remove_entries(array($this->config->current['BASE']),$target); return(management::removeEntryRequested($action,$target,$all)); } + + // A filter which allows to open a department by clicking on the departments name. static function filterDepLabel($row,$dn,$params,$ou,$pid,$base) { $ou = $ou[0]; @@ -146,6 +163,13 @@ class departmentManagement extends management return("$ou"); } + + // Finally remove departments and update departmnet browsers + function removeEntryConfirmed($action="",$target=array(),$all=array(),$altTabClass="",$altTabType="",$altAclCategory="") + { + management::removeEntryConfirmed($action,$target,$all, $altTabClass,$altTabType,$altAclCategory); + $this->refreshDeps(); + } /*! \brief Returns information about all container types that GOsa con handle. @return Array Informations about departments supported by GOsa.