X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_listing.inc;h=e0ca916ef09189fa7e64a337fc6435643e90a057;hb=4b3498ae8e78a11c7c99663d45bab6a0a14df052;hp=63124a1945a9e7c917e23dfd0829f8aabda15e0c;hpb=33eeabb42dcafad4f9eb040cc887c2a0fc44c428;p=gosa.git diff --git a/gosa-core/include/class_listing.inc b/gosa-core/include/class_listing.inc index 63124a194..e0ca916ef 100644 --- a/gosa-core/include/class_listing.inc +++ b/gosa-core/include/class_listing.inc @@ -45,7 +45,8 @@ class listing { var $pid; var $objectTypes= array(); var $objectTypeCount= array(); - var $CopyPasteHandler= null; + var $copyPasteHandler= null; + var $snapshotHandler= null; function listing($filename) @@ -79,7 +80,24 @@ class listing { function setCopyPasteHandler($handler) { - $this->CopyPasteHandler= &$handler; + $this->copyPasteHandler= &$handler; + } + + + function setSnapshotHandler($handler) + { + $this->snapshotHandler= &$handler; + } + + + function setFilter($filter) + { + $this->filter= &$filter; + if ($this->departmentBrowser){ + $this->departments= $this->getDepartments(); + } + $this->filter->setBase($this->base); + $this->entries= $this->filter->query(); } @@ -122,6 +140,9 @@ class listing { } $this->categories= array(); if (isset($this->xmlData['definition']['objectType'])) { + if(isset($this->xmlData['definition']['objectType']['label'])) { + $this->xmlData['definition']['objectType']= array($this->xmlData['definition']['objectType']); + } foreach ($this->xmlData['definition']['objectType'] as $index => $otype) { $this->objectTypes[]= $this->xmlData['definition']['objectType'][$index]; if (isset($this->xmlData['definition']['objectType'][$index]['category'])){ @@ -200,7 +221,6 @@ class listing { function render() { -echo "snapshot handler, daemon handler
"; // Check for exeeded sizelimit if (($message= check_sizelimit()) != ""){ return($message); @@ -250,11 +270,18 @@ echo "snapshot handler, daemon handler
"; } // Render defined department columns, fill the rest with some stuff + $rest= $this->numColumns - 1; foreach ($this->xmlData['table']['department'] as $index => $config) { - $result.="colprops[$index]." class='list1'>".$this->renderCell($config['value'], $entry, $row).""; + $colspan= 1; + if (isset($config['span'])){ + $colspan= $config['span']; + } + $result.="colprops[$index]." class='list1'>".$this->renderCell($config['value'], $entry, $row).""; + $rest-= $colspan; } - $last= count($this->xmlData['table']['department']) + 1; - $rest= $this->numColumns - $last; + + // Fill remaining cols with nothing + $last= $this->numColumns - $rest; for ($i= 0; $i<$rest; $i++){ $result.= "colprops[$last+$i-1]." class='list1'> "; } @@ -284,8 +311,8 @@ echo "snapshot handler, daemon handler
"; } // Need to fill the list if it's not full (nobody knows why this is 22 ;-)) - $emptyListStyle= (count($this->entries) + count($deps) == 0)?"border:0;":""; - if (count($this->entries) + count($deps) < 22) { + $emptyListStyle= (count($this->entries) + $deps == 0)?"border:0;":""; + if ((count($this->entries) + $deps) < 22) { $result.= ""; for ($i= 0; $i<$this->numColumns; $i++) { if ($i == 0) { @@ -344,22 +371,14 @@ echo "snapshot handler, daemon handler
"; } - function setFilter($filter) - { - $this->filter= &$filter; - if ($this->departmentBrowser){ - $this->departments= $this->getDepartments(); - } - $this->filter->setBase($this->base); - $this->entries= $this->filter->query(); - } - - function update() { global $config; $ui= get_userinfo(); + // Reset object counter + $this->objectTypeCount= array(); + // Do not do anything if this is not our PID if(isset($_REQUEST['PID']) && $_REQUEST['PID'] != $this->pid) { return; @@ -495,6 +514,10 @@ echo "snapshot handler, daemon handler
"; // Watch out for filters and prepare to execute them $data= $this->processElementFilter($data, $config, $row); + // Replace all non replaced %{...} instances because they + // are non resolved attributes or filters + $data= preg_replace('/%{[^}]+}/', ' ', $data); + return $data; } @@ -685,11 +708,7 @@ echo "snapshot handler, daemon handler
"; } // Handle special types - if ($action['type'] == "snapshot") { - #TODO - #echo "actiontriggers: snapshot missing
"; - } - if ($action['type'] == "copypaste") { + if ($action['type'] == "copypaste" || $action['type'] == "snapshot") { $objectType= $this->getObjectType($this->objectTypes, $this->entries[$row]['objectClass']); $category= $class= null; @@ -698,13 +717,12 @@ echo "snapshot handler, daemon handler
"; $class= $objectType['class']; } - $result.= $this->renderCopyPasteActions($row, $this->entries[$row]['dn'], $category, $class); - } - if ($action['type'] == "daemon") { - #TODO - #echo "actiontriggers: daemon missing
"; + if ($action['type'] == "copypaste") { + $result.= $this->renderCopyPasteActions($row, $this->entries[$row]['dn'], $category, $class); + } else { + $result.= $this->renderSnapshotActions($row, $this->entries[$row]['dn'], $category, $class); + } } - } return $result; @@ -886,7 +904,7 @@ echo "snapshot handler, daemon handler
"; $actions= &$this->xmlData['actionmenu']['action']; $result= "". "