]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Web/Portlets/StorageConfiguration.php
baculum: New Baculum API and Baculum Web
[bacula/bacula] / gui / baculum / protected / Web / Portlets / StorageConfiguration.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.TActiveCustomValidator');
24 Prado::using('Application.Web.Portlets.Portlets');
25
26 class StorageConfiguration extends Portlets {
27
28         public function configure($storageId) {
29                 $storagedata = $this->Application->getModule('api')->get(array('storages', 'show', $storageId))->output;
30                 $this->ShowStorage->Text = implode(PHP_EOL, $storagedata);
31                 $storage = $this->Application->getModule('api')->get(array('storages', $storageId))->output;
32                 $this->StorageName->Text = $storage->name;
33                 $this->StorageID->Text = $storage->storageid;
34                 $this->AutoChanger->Visible = (boolean)$storage->autochanger;
35         }
36
37         public function mount($sender, $param) {
38                 $isValid = $this->DriveValidator->IsValid === true && $this->SlotValidator->IsValid === true;
39                 if($isValid === false) {
40                         return;
41                 }
42                 $drive = ($this->AutoChanger->Visible === true) ? intval($this->Drive->Text) : 0;
43                 $slot = ($this->AutoChanger->Visible === true) ? intval($this->Slot->Text) : 0;
44                 $mount = $this->Application->getModule('api')->get(array('storages', 'mount', $this->StorageID->Text, $drive, $slot))->output;
45                 $this->ShowStorage->Text = implode(PHP_EOL, $mount);
46         }
47
48         public function umount($sender, $param) {
49                 $isValid = $this->DriveValidator->IsValid === true;
50                 if($isValid === false) {
51                         return;
52                 }
53                 $drive = ($this->AutoChanger->Visible === true) ? intval($this->Drive->Text) : 0;
54                 $umount = $this->Application->getModule('api')->get(array('storages', 'umount', $this->StorageID->Text, $drive))->output;
55                 $this->ShowStorage->Text = implode(PHP_EOL, $umount);
56
57         }
58
59         public function release($sender, $param) {
60                 $isValid = $this->DriveValidator->IsValid === true;
61                 if($isValid === false) {
62                         return;
63                 }
64                 $drive = ($this->AutoChanger->Visible === true) ? intval($this->Drive->Text) : 0;
65                 $release = $this->Application->getModule('api')->get(array('storages', 'release', $this->StorageID->Text, $drive))->output;
66                 $this->ShowStorage->Text = implode(PHP_EOL, $release);
67         }
68
69         public function status($sender, $param) {
70                 $status = $this->Application->getModule('api')->get(array('storages', 'status', $this->StorageID->Text))->output;
71                 $this->ShowStorage->Text = implode(PHP_EOL, $status);
72         }
73
74         public function driveValidator($sender, $param) {
75                 $isValid = is_numeric($this->Drive->Text);
76                 $param->setIsValid($isValid);
77         }
78
79         public function slotValidator($sender, $param) {
80                 $isValid = is_numeric($this->Slot->Text);
81                 $param->setIsValid($isValid);
82         }
83 }
84 ?>