X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_sortableListing.inc;h=79bc25e7ab45bb4821db12350d818bef09f4e473;hb=652bb3908381dd238ce5bc023203ec8d67ae7bff;hp=75de2bee55a554c2a227037a69c831217179bd85;hpb=108a375e839bb3273d451c720b93d3617141af90;p=gosa.git diff --git a/gosa-core/include/class_sortableListing.inc b/gosa-core/include/class_sortableListing.inc index 75de2bee5..79bc25e7a 100644 --- a/gosa-core/include/class_sortableListing.inc +++ b/gosa-core/include/class_sortableListing.inc @@ -60,9 +60,27 @@ class sortableListing { // Save data to display $this->setListData($data, $displayData); + // Get list of used IDs + if(!session::is_set('sortableListing_USED_IDS')){ + session::set('sortableListing_USED_IDS',array()); + } + $usedIds = session::get('sortableListing_USED_IDS'); + // Generate instance wide unique ID - $tmp= gettimeofday(); - $this->id= 'l'.md5(microtime().$tmp['sec']); + $id = ""; + while($id == "" || in_array($id, $usedIds)){ + + // Wait 1 msec to ensure that we definately get a new id + if($id != "") usleep(1); + $tmp= gettimeofday(); + $id = 'l'.md5(microtime().$tmp['sec']); + } + + // Only keep the last 10 list IDsi + $usedIds = array_slice($usedIds, count($usedIds) -10, 10); + $usedIds[] = $id; + session::set('sortableListing_USED_IDS',$usedIds); + $this->id = $id; // Set reorderable flag $this->reorderable= $reorderable; @@ -71,6 +89,10 @@ class sortableListing { } } + public function setReorderable($bool) + { + $this->reorderable= $bool; + } public function setDefaultSortColumn($id) { @@ -210,7 +232,7 @@ class sortableListing { } // Do we need colspecs? - $action_width= ($this->editable?20:0) + ($this->deleteable?20:0); + $action_width= ($this->editable?30:0) + ($this->deleteable?30:0); if ($this->colspecs) { $result.= " \n"; for ($i= 0; $i<$this->columns; $i++) { @@ -236,7 +258,7 @@ class sortableListing { $link= "href='?plug=".$_GET['plug']."&PID=".$this->id."&act=SORT_$i'"; $sorter= ""; if ($i == $this->sortColumn){ - $sorter= " ".image("images/lists/sort-".($this->sortDirection[$i]?"up":"down").".png", null, $this->sortDirection[$i]?_("Up"):_("Down")); + $sorter= " ".image("images/lists/sort-".($this->sortDirection[$i]?"up":"down").".png", null, $this->sortDirection[$i]?_("Sort ascending"):_("Sort descending")); } if ($this->reorderable) { @@ -276,8 +298,14 @@ class sortableListing { $first= " style='border:0'"; foreach ($this->displayData[$row] as $column) { - $result.= " ".$column."\n"; - $first= ""; + + // Do NOT use the onClick statement for columns that contain links or buttons. + if(preg_match("<.*type=.submit..*>", $column) || preg_match("", $column)){ + $result.= " ".$column."\n"; + }else{ + $result.= " ".$column."\n"; + } + $first= ""; } if ($action_width) {