source: trunk/www/Module/Backup/View.php

Last change on this file was 95, checked in by chronos, 10 years ago
  • Upraveno: Soubory různých logických částí systému odděleny do aplikačních modulů.
File size: 5.1 KB
Line 
1<?php
2
3include_once(dirname(__FILE__).'/../../Base/View.php');
4
5class BackupView extends View
6{
7 var $ItemListFormClass = array(
8 'Title' => 'Zálohy',
9 'Table' => '(SELECT * FROM `Backup`)',
10 'Items' => array(
11 'Time' => array('Type' => 'DateTime', 'Caption' => 'Čas', 'Default' => ''),
12 'Description' => array('Type' => 'String', 'Caption' => 'Popis', 'Default' => ''),
13 ),
14 );
15
16 function ShowListOnRow($Row)
17 {
18 //$Row['Name'] = '<a href="?Action=EmulatorShow&amp;Id='.$Row['Id'].'">'.$Row['Name'].'</a>';
19 return($Row);
20 }
21
22 function ItemList()
23 {
24 $ServerId = $_GET['Id'];
25 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
26 {
27 $Server = new Server($this->System, $_GET['Id']);
28 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
29 {
30 $Output = '<h4>Dostupné zálohy</h4>';
31 $Table = new Table($this->ItemListFormClass, $this->System);
32 $Table->OnRow = array($this, 'ShowListOnRow');
33 $Table->Definition['Table'] = '(SELECT * FROM `Backup` WHERE `Server` = '.$Server->Id.')';
34 $Table->Definition['Items']['Id'] = array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => '');
35 $Table->Definition['Items']['Lock'] = array('Type' => 'Hidden', 'Caption' => 'Zámek', 'Default' => '');
36 $Table->LoadValuesFromDatabase($this->Database);
37 $Table->Definition['Items']['Actions'] = array('Type' => 'String', 'Caption' => '', 'Default' => '');
38 foreach($Table->Values as $Index => $Value)
39 {
40 $Table->Values[$Index]['Actions'] = '';
41 if($Value['Lock'] == 0) $Table->Values[$Index]['Actions'] = '<a href="?Action=BackupDownload&amp;Id='.$Value['Id'].'">Stáhnout</a>';
42 if(($Server->Server['Lock'] == 0) and ($Value['Lock'] == 0)) $Table->Values[$Index]['Actions'] .= ' <a href="?Action=BackupRestore&amp;Id='.$Value['Id'].'">Obnovit</a>';
43 unset($Table->Values[$Index]['Id']);
44 unset($Table->Values[$Index]['Lock']);
45 }
46 $Output .= $Table->Show();
47 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)
48 {
49 if($Server->Server['Lock'] == 0) $Output .= '<br /><div style="text-align: center;"><a href="?Action=BackupAdd&amp;Id='.$ServerId.'">Zálohovat</a></dev>';
50 }
51 } else $Output = $this->SystemMessage('Zastavení serveru', 'Nemáte oprávnění');
52 } else $Output = USER_BAD_ROLE;
53 return($Output);
54 }
55
56 function Download()
57 {
58 if(!array_key_exists('Id', $_GET)) $Output = $this->SystemMessage('Stažení souboru zálohy', 'Nebylo zadáno Id zálohy');
59 else if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
60 {
61 $Backup = new Backup($this->System, $_GET['Id']);
62 $Server = new Server($this->System, $Backup->Backup['Server']);
63 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
64 {
65 Header('Content-Type: application/x-tar-gz');
66 Header('Content-Disposition: attachment; filename="wowhosting-'.$Backup->Id.'.tar.bz2"');
67 echo(file_get_contents('../backup/wowhosting-'.$Backup->Id.'.tar.bz2'));
68 exit;
69 } else $this->SystemMessage('Stažení souboru zálohy', 'Nemáte oprávnění');
70 } else $Output = USER_BAD_ROLE;
71 return($Output);
72 }
73
74 function Restore()
75 {
76 if(!array_key_exists('Id', $_GET)) $Output = $this->SystemMessage('Obnovení ze zálohy', 'Nebylo zadáno Id zálohy');
77 else if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
78 {
79 $Backup = new Backup($this->System, $_GET['Id']);
80 $Server = new Server($this->System, $Backup->Backup['Server']);
81 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
82 {
83 $Output = $this->SystemMessage('Obnovení ze zálohy', $Backup->Restore());
84 $Output .= $this->ShowTaskList();
85 } else $this->SystemMessage('Obnovení ze zálohy', 'Nemáte oprávnění');
86 } else $Output = USER_BAD_ROLE;
87 return($Output);
88 }
89
90 function Add()
91 {
92 if(!array_key_exists('Id', $_GET)) $Output = $this->SystemMessage('Ladící informace', 'Nebylo zadáno Id serveru');
93 else if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
94 {
95 $Server = new Server($this->System, $_GET['Id']);
96 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
97 {
98 $Backup = new Backup($this->System, 0);
99 $Output = $this->SystemMessage('Ruční zálohování', $Backup->Create($Server->Id));
100 $Output .= $this->ShowTaskList();
101 } else $this->SystemMessage('Ladící informace', 'Nemáte oprávnění');
102 } else $Output = USER_BAD_ROLE;
103 return($Output);
104 }
105}
Note: See TracBrowser for help on using the repository browser.