3 * Bacula(R) - The Network Backup Solution
4 * Baculum - Bacula web interface
6 * Copyright (C) 2013-2015 Marcin Haba
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.
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.
17 * This notice must be preserved when any source code is
18 * conveyed and/or propagated.
20 * Bacula(R) is a registered trademark of Kern Sibbald.
23 Prado::using('System.Web.UI.ActiveControls.TActiveCustomValidator');
24 Prado::using('Application.Portlets.Portlets');
26 class StorageConfiguration extends Portlets {
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;
37 public function mount($sender, $param) {
38 $isValid = $this->DriveValidator->IsValid === true && $this->SlotValidator->IsValid === true;
39 if($isValid === false) {
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);
48 public function umount($sender, $param) {
49 $isValid = $this->DriveValidator->IsValid === true;
50 if($isValid === false) {
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);
59 public function release($sender, $param) {
60 $isValid = $this->DriveValidator->IsValid === true;
61 if($isValid === false) {
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);
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);
74 public function driveValidator($sender, $param) {
75 $isValid = is_numeric($this->Drive->Text);
76 $param->setIsValid($isValid);
79 public function slotValidator($sender, $param) {
80 $isValid = is_numeric($this->Slot->Text);
81 $param->setIsValid($isValid);