X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=gosa-core%2Finclude%2Fclass_listing.inc;h=d4f972d3da2c5357fdb2f11ed6fe0c502125e3f3;hb=5ab7ebd28e53d52c3e6f3eddebde408550226ec2;hp=7ec88be52a422b8b9b0f6de6c030477f7489c826;hpb=3ecde4aa0d37eec65dd96c9a1872850d353b663f;p=gosa.git diff --git a/gosa-core/include/class_listing.inc b/gosa-core/include/class_listing.inc index 7ec88be52..d4f972d3d 100644 --- a/gosa-core/include/class_listing.inc +++ b/gosa-core/include/class_listing.inc @@ -123,6 +123,7 @@ class listing { function setFilter($filter) { + $filter->setCategories($this->categories); $this->filter= &$filter; if ($this->departmentBrowser){ $this->departments= $this->getDepartments(); @@ -238,21 +239,21 @@ class listing { isset($config['sortType'])) { $this->sortAttribute= $config['sortAttribute']; $this->sortType= $config['sortType']; - $sorter= " "; + $sorter= " ".image("images/lists/sort-".($this->sortDirection[$index]?"up":"down").".png", null, $this->sortDirection[$index]?_("Up"):_("Down"), "text-top"); } $sortable= (isset($config['sortAttribute'])); $link= "href='?plug=".$_GET['plug']."&PID=".$this->pid."&act=SORT_$index'"; if (isset($config['label'])) { if ($sortable) { - $this->header[$index]= "colprops[$index].">"._($config['label'])."$sorter"; + $this->header[$index]= "colprops[$index].">"._($config['label'])."$sorter"; } else { $this->header[$index]= "colprops[$index].">"._($config['label']).""; } $this->plainHeader[]= _($config['label']); } else { if ($sortable) { - $this->header[$index]= "colprops[$index]."> $sorter"; + $this->header[$index]= "colprops[$index]."> $sorter"; } else { $this->header[$index]= "colprops[$index]."> "; } @@ -286,8 +287,8 @@ class listing { $height= $this->height; } - $result.= "
\n"; - $result.= "\n"; + $result.= "
\n"; + $result.= "
\n"; $this->numColumns= count($this->colprops) + ($this->multiSelect?1:0); // Build list header @@ -309,7 +310,7 @@ class listing { // No results? Just take an empty colspanned row if (count($this->entries) + count($this->departments) == 0) { - $result.= ""; + $result.= ""; } // Line color alternation @@ -322,7 +323,7 @@ class listing { // Fill with department browser if configured this way $departmentIterator= new departmentSortIterator($this->departments, $this->sortDirection[$this->sortColumn]); foreach ($departmentIterator as $row => $entry){ - $result.=""; + $result.=""; // Render multi select if needed if ($this->multiSelect) { @@ -382,7 +383,7 @@ class listing { // Complete list by sorting entries for _sort$index and appending them to the output $entryIterator= new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType); foreach ($entryIterator as $row => $entry){ - $result.="\n"; + $result.="\n"; $result.= $entry['_rendered']; $result.="\n"; $alt++; @@ -416,7 +417,7 @@ class listing { foreach ($this->objectTypes as $objectType) { if (isset($this->objectTypeCount[$objectType['label']])) { $label= _($objectType['label']); - $result.= "$label ".$this->objectTypeCount[$objectType['label']]."    "; + $result.= image($objectType['image'], null, $label)." ".$this->objectTypeCount[$objectType['label']]."  "; } } @@ -551,7 +552,7 @@ class listing { // Override base if we got signals from the navigation elements $action= ""; foreach ($_POST as $key => $value) { - if (preg_match('/^(ROOT|BACK|HOME)_x$/', $key, $match)) { + if (preg_match('/^(ROOT|BACK|HOME)(_x)?$/', $key, $match)) { $action= $match[1]; break; } @@ -818,7 +819,7 @@ class listing { $objectType= $this->getObjectType($this->objectTypes, $classes); if ($objectType) { $this->objectDnMapping[$dn]= $objectType["objectClass"]; - $result= ""; + $result= image($objectType["image"], null, LDAP::fix($dn)); if (!isset($this->objectTypeCount[$objectType['label']])) { $this->objectTypeCount[$objectType['label']]= 0; } @@ -839,10 +840,15 @@ class listing { // Go thru all actions $result= ""; $actions= $this->xmlData['actiontriggers']['action']; + + // Ensure we've a valid actions array, if there is only one action in the actiontriggers col + // then we've to create a valid array here. + if(isset($actions['name'])) $actions = array($actions); + foreach($actions as $action) { // Skip the entry completely if there's no permission to execute it if (!$this->hasActionPermission($action, $dn, $classes)) { - $result.= " "; + $result.= image('images/empty.png'); continue; } @@ -852,12 +858,12 @@ class listing { if (preg_match('/^(.*)!$/', $fa, $m)){ $fa= $m[1]; if (isset($this->entries[$row][$fa]) && $this->entries[$row][$fa][0] == $fv) { - $result.= " "; + $result.= image('images/empty.png'); continue; } } else { if (!isset($this->entries[$row][$fa]) && !$this->entries[$row][$fa][0] == $fv) { - $result.= " "; + $result.= image('images/empty.png'); continue; } } @@ -871,17 +877,17 @@ class listing { if (preg_match('/^!(.*)$/', $objectclass, $m)){ $objectclass= $m[1]; if(in_array($objectclass, $classes)) { - $result.= " "; + $result.= image('images/empty.png'); continue; } } elseif (is_string($objectclass)) { if(!in_array($objectclass, $classes)) { - $result.= " "; + $result.= image('images/empty.png'); continue; } } elseif (is_array($objectclass)) { if(count(array_intersect($objectclass, $classes)) != count($objectclass)){ - $result.= " "; + $result.= image('images/empty.png'); continue; } } @@ -891,8 +897,7 @@ class listing { if ($action['type'] == "entry") { $label= $this->processElementFilter($action['label'], $this->entries[$row], $row); $image= $this->processElementFilter($action['image'], $this->entries[$row], $row); - $result.=""; + $result.= image($image, "listing_".$action['name']."_$row", $label); } // Handle special types @@ -986,31 +991,29 @@ class listing { /* Draw root button */ if($enableRoot){ - $result["ROOT"]= ""; + $result["ROOT"]= image('images/lists/root.png', 'ROOT', _("Root")); }else{ - $result["ROOT"]= ""._("Root").""; + $result["ROOT"]= image('images/lists/root-grey.png', null, _("Root")); } /* Draw back button */ if($enableBack){ - $result["BACK"]= ""; + $result["BACK"]= image('images/lists/back.png', 'BACK', _("Go up one department")); }else{ - $result["BACK"]= ""._("Up").""; + $result["BACK"]= image('images/lists/back-grey.png', null, _("Go up one department")); } /* Draw home button */ + /* Draw home button */ if($enableHome){ - $result["HOME"]= ""; + $result["HOME"]= image('images/lists/home.png', 'HOME', _("Go to users department")); }else{ - $result["HOME"]= ""._("Home").""; + $result["HOME"]= image('images/lists/home-grey.png', null, _("Go to users department")); } + /* Draw reload button, this button is enabled everytime */ - $result["RELOAD"]= ""; + $result["RELOAD"]= image('images/lists/reload.png', 'REFRESH', _("Reload list")); return ($result); } @@ -1105,8 +1108,7 @@ class listing { // Load shortcut $actions= &$this->xmlData['actionmenu']['action']; $result= "
". - "