]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Web/Portlets/StorageList.php
baculum: Stop using hidden fields to store item identifiers
[bacula/bacula] / gui / baculum / protected / Web / Portlets / StorageList.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 Prado::using('System.Web.UI.ActiveControls.TActiveRepeater');
24 Prado::using('Application.Web.Portlets.ISlideWindow');
25 Prado::using('Application.Web.Portlets.Portlets');
26
27 class StorageList extends Portlets implements ISlideWindow {
28
29         public $ID;
30         public $buttonID;
31         public $windowTitle;
32
33         public function setID($id) {
34                 $this->ID = $id;
35         }
36
37         public function getID($hideAutoID = true) {
38                 return $this->ID;
39         }
40
41         public function setButtonID($id) {
42                 $this->buttonID = $id;
43         }
44
45         public function getButtonID() {
46                 return $this->buttonID;
47         }
48
49         public function setWindowTitle($param) {
50                 $this->windowTitle = $param;
51         }
52
53         public function getWindowTitle() {
54                 return $this->windowTitle;
55         }
56
57         public function prepareData($sender, $param) {
58                 $allowedButtons = array('StorageBtn');
59                 $params = $this->getUrlParams('storages', $this->getPage()->StorageWindow->ID);
60                 $storages = $this->Application->getModule('api')->get($params);
61                 $isDetailView = $_SESSION['view' . $this->getPage()->StorageWindow->ID] == 'details';
62                 if($isDetailView === true) {
63                         $this->RepeaterShow->Visible = false;
64                         $this->DataGridShow->Visible = true;
65                         $this->DataGrid->DataSource = $this->Application->getModule('misc')->objectToArray($storages->output);
66                         $this->DataGrid->dataBind();
67                 } else {
68                         $this->RepeaterShow->Visible = true;
69                         $this->DataGridShow->Visible = false;
70                         $this->Repeater->DataSource = $storages->output;
71                         $this->Repeater->dataBind();
72                 }
73         }
74
75         public function sortDataGrid($sender, $param) {
76                 $params = $this->getUrlParams('storages', $this->getPage()->StorageWindow->ID);
77                 $data = $this->Application->getModule('api')->get($params)->output;
78                 $data = $this->Application->getModule('misc')->objectToArray($data);
79                 $this->DataGrid->DataSource = $this->sortData($data, $param->SortExpression, $sender->UniqueID);
80                 $this->DataGrid->dataBind();
81         }
82
83         public function configure($sender, $param) {
84                 if($this->Page->IsCallBack) {
85                         $this->getPage()->StorageConfiguration->configure($param->CallbackParameter);
86                 }
87         }
88 }
89 ?>