diff --git a/gosa-plugins/goto/admin/groups/apps/class_groupApplication.inc b/gosa-plugins/goto/admin/groups/apps/class_groupApplication.inc
index 33231aacdd12d92e1137df72ea2db8c7fd3e5acf..77743284e1dee3fe248b78fab1f74ad353b9c4d6 100644 (file)
<?php
class appgroup extends plugin
{
- /* CLI vars */
- var $cli_summary= "Manage application groups";
- var $cli_description= "Some longer text\nfor help";
- var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
-
var $config;
var $curbase;
$ret = array_merge($ret,get_list("(objectClass=gosaApplication)","application",$dep,array("*"),GL_NONE));
}
}
- $this->_cache['ReleaseApps'][$release_info['suffix']] = $ret;
+
+ $tmp = array();
+ foreach($ret as $key => $app){
+ $tmp[$key] = $app['cn'][0];
+ }
+ natcasesort($tmp);
+ $res = array();
+ foreach($tmp as $key => $app){
+ $res[] = $ret[$key];
+ }
+
+ $this->_cache['ReleaseApps'][$release_info['suffix']] = $res;
}
$this->apps = $this->_cache['ReleaseApps'][$release_info['suffix']];
}
/* Only display those releases that we are able to read */
$dn = $this->config->current['BASE'];
$filter = "(&(objectClass=organizationalUnit)(objectClass=FAIbranch))";
- $res = get_list($filter,"application", $dn, array("ou","FAIstate"), GL_SUBSEARCH);
+ $res = get_sub_list($filter,array("application","fai"), array(get_ou("applicationou"),get_ou("faiou")),$dn, array("ou","FAIstate"), GL_SUBSEARCH);
+
foreach($res as $attrs){
if(preg_match("/".get_ou('applicationou')."/",$attrs['dn'])){
$sub_dn = preg_replace("/,".normalizePreg($this->dn)."$/","",$attrs['dn']);
$sub_dn_array = split("\,",$sub_dn);
-
+ $found = true;
for($i = (count($sub_dn_array)-1) ; $i >= 0 ; $i--){
$name = preg_replace("/^[^=]*+=/","",$sub_dn_array[$i]);
+
if($i > 0){
+ $found =FALSE;
foreach($cur as $key => $entry){
if($entry['NAME'] == $name){
$cur = &$cur[$key]['ENTRIES'];
$parent_id = $entry['UNIQID'];
+ $found =true;
+ break;
}
}
}else{
-
+
+ if(!$found){
+ break;
+ }
$priority = 1;
if(isset($attrs['gosaApplicationPriority'])){
$priority= $attrs['gosaApplicationPriority'][0];
$smarty->assign("enableReleaseManagement",$this->enableReleaseManagement);
$smarty->assign("FAIrelease",$this->FAIrelease);
$smarty->assign("app_list",$div->DrawList());
+ $smarty->assign("i",0);
$smarty->assign("releases",$this->Releases);
$smarty->assign("folders" , $this->_get_folder_names());
$entries = $this->_get_entries_for_release($this->FAIrelease);
function _get_folder_names()
{
$data = $this->_get_entries_for_release($this->FAIrelease);
+ $all = $this->_get_all_entries();
$ret = array("BASE" => ".");
foreach($data as $entry){
+
if($entry['TYPE'] == "FOLDER"){
- $ret[$entry['UNIQID']] = $entry['NAME'];
+ $str = $entry['NAME'];
+ $parent = $entry['PARENT'];
+ $i = 10;
+ while(isset($all[$parent]) && $i){
+ $i --;
+ $parent_o = $all[$parent];
+ $str = $parent_o['NAME']."/".$str;
+ $parent = $all[$parent_o['UNIQID']]['PARENT'];
+ }
+ $ret[$entry['UNIQID']] = $str;
}
}
return($ret);
$all = $this->_get_all_entries();
$key = $this->_get_release_key($release);
if(isset($all[$key]) && count($all[$key]['ENTRIES'])){
- $res = $this->_get_all_entries(TRUE,TRUE,&$all[$key]['ENTRIES']);
+ $res = $this->_get_all_entries(TRUE,TRUE,$all[$key]['ENTRIES']);
return($res);
}
return(array());
$all = $this->_get_all_entries();
if(isset($all[$id])){
$all[$id]['STATUS'] = "REMOVED";
+ $all[$id]['ENTRIES'] = array();
return(TRUE);
}
return(FALSE);
if(isset($all[$folder_id])){
+ if(!isset($entry['ENTRIES'])){
+ $entries = array();
+ }else{
+ $entries = $entry['ENTRIES'];
+ }
+
$folder = &$all[$folder_id];
- $entries = $entry['ENTRIES'];
$entry['UNIQID'] = uniqid();
$entry['PARENT'] = $folder_id;
@param Boolean $add_tags If TRUE, OPEN/CLOSE Tags will be appended.
@param &Array Start here, Pointer to an array.
*/
- function _get_all_entries($add_tags = FALSE, $skip_release = FALSE, $cur = NULL)
+ function _get_all_entries($add_tags = FALSE, $skip_release = FALSE, &$cur = NULL)
{
$ret = array();
if($cur == NULL){
if(!$add_tags){
$ret[$tmp['UNIQID']] = &$cur[$key];
if(isset($entry['ENTRIES']) && count($entry['ENTRIES'])){
- $ret = array_merge($ret,$this->_get_all_entries($add_tags,$skip_release,&$cur[$key]['ENTRIES']));
+ $ret = array_merge($ret,$this->_get_all_entries($add_tags,$skip_release,$cur[$key]['ENTRIES']));
}
}else{
if($add){
$ret[] = array("TYPE" => "OPEN", "PARENT" => $entry['PARENT']);
- $ret = array_merge($ret,$this->_get_all_entries($add_tags,$skip_release,&$cur[$key]['ENTRIES']));
+ $ret = array_merge($ret,$this->_get_all_entries($add_tags,$skip_release,$cur[$key]['ENTRIES']));
$ret[] = array("TYPE" => "CLOSE" , "PARENT" => $entry['PARENT']);
}
}