]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Portlets/ClientConfiguration.php
Add more debug to recycle-test
[bacula/bacula] / gui / baculum / protected / Portlets / ClientConfiguration.php
1 <?php
2 /*
3  * Bacula(R) - The Network Backup Solution
4  * Baculum   - Bacula web interface
5  *
6  * Copyright (C) 2013-2015 Marcin Haba
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.Portlets.Portlets');
25
26 class ClientConfiguration extends Portlets {
27
28         public function onInit($param) {
29                 parent::onInit($param);
30                 $this->Status->setActionClass($this);
31                 $this->Apply->setActionClass($this);
32         }
33
34         public function configure($clientId) {
35                 $clientdata = $this->Application->getModule('api')->get(array('clients', 'show', $clientId))->output;
36                 $this->ShowClient->Text = implode(PHP_EOL, $clientdata);
37                 $client = $this->Application->getModule('api')->get(array('clients', $clientId))->output;
38                 $this->ClientName->Text = $client->name;
39                 $this->ClientIdentifier->Text = $client->clientid;
40                 $this->ClientDescription->Text = $client->uname;
41                 $this->FileRetention->Text = intval($client->fileretention / 86400); // conversion to days
42                 $this->JobRetention->Text = intval($client->jobretention / 86400); // conversion to days
43                 $this->AutoPrune->Checked = $client->autoprune == 1;
44         }
45
46         public function status($sender, $param) {
47                 $status = $this->Application->getModule('api')->get(array('clients', 'status', $this->ClientIdentifier->Text))->output;
48                 $this->ShowClient->Text = implode(PHP_EOL, $status);
49         }
50
51         public function apply($sender, $param) {
52                 if($this->JobRetentionValidator->IsValid === false || $this->FileRetentionValidator->IsValid === false) {
53                         return false;
54                 }
55                 $client = array();
56                 $client['clientid'] = $this->ClientIdentifier->Text;
57                 $client['fileretention'] = $this->FileRetention->Text * 86400; // conversion to seconds
58                 $client['jobretention'] = $this->JobRetention->Text * 86400; // conversion to seconds
59                 $client['autoprune'] = (integer)$this->AutoPrune->Checked;
60                 $this->Application->getModule('api')->set(array('clients', $client['clientid']), $client);
61         }
62
63         public function fileRetentionValidator($sender, $param) {
64                 $isValid = preg_match('/^\d+$/', $this->FileRetention->Text) && $this->FileRetention->Text >= 0;
65                 $param->setIsValid($isValid);
66         }
67
68         public function jobRetentionValidator($sender, $param) {
69                 $isValid = preg_match('/^\d+$/', $this->JobRetention->Text) && $this->JobRetention->Text >= 0;
70                 $param->setIsValid($isValid);
71         }
72 }
73 ?>