]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Web/Portlets/Portlets.php
baculum: New Baculum API and Baculum Web
[bacula/bacula] / gui / baculum / protected / Web / Portlets / Portlets.php
1 <?php
2 /*
3  * Bacula(R) - The Network Backup Solution
4  * Baculum   - Bacula web interface
5  *
6  * Copyright (C) 2013-2016 Kern Sibbald
7  *
8  * The main author of Baculum is Marcin Haba.
9  * The original author of Bacula is Kern Sibbald, with contributions
10  * from many others, a complete list can be found in the file AUTHORS.
11  *
12  * You may use this file and others of this release according to the
13  * license defined in the LICENSE file, which includes the Affero General
14  * Public License, v3.0 ("AGPLv3") and some additional permissions and
15  * terms pursuant to its AGPLv3 Section 7.
16  *
17  * This notice must be preserved when any source code is
18  * conveyed and/or propagated.
19  *
20  * Bacula(R) is a registered trademark of Kern Sibbald.
21  */
22  
23 class Portlets extends TTemplateControl {
24
25         const SORT_ASC = 'asc';
26         const SORT_DESC = 'desc';
27
28         protected function getUrlParams($section, $id) {
29                 $limit = $_SESSION['limit' . $id];
30                 if(is_numeric($limit)) {
31                         if(is_array($section)) {
32                                 array_push($section, 'limit', $limit);
33                                 $params = $section;
34                         } else {
35                                 $params = array($section, 'limit', $limit);
36                         }
37                 } else {
38                         $params = (is_array($section)) ? $section : array($section);
39                 }
40                 return $params;
41         }
42
43         protected function getSortOrder($id) {
44                 $order = self::SORT_ASC;
45                 if(@$this->Request->Cookies['sort']->Value == $id) {
46                         $this->Response->Cookies[] = new THttpCookie('sort', null);
47                         $order = self::SORT_DESC;
48                 } else {
49                         $this->Response->Cookies[] = new THttpCookie('sort', $id);
50                         $order = self::SORT_ASC;
51                 }
52                 return $order;
53         }
54         
55         protected function sortData($data, $key, $id) {
56                 if($this->getSortOrder($id) == self::SORT_DESC) {
57                         $compare = create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) {return 0;}else {return ($a["'.$key.'"] < $b["'.$key.'"]) ? 1 : -1;}');
58                 } else {
59                         $compare = create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) {return 0;}else {return ($a["'.$key.'"] > $b["'.$key.'"]) ? 1 : -1;}');
60                 }
61                 usort($data,$compare);
62                 return $data;
63         }
64
65         protected function getModule($id) {
66                 return $this->getApplication()->getModule($id);
67         }
68 }
69 ?>