1 | <?php
|
---|
2 | include_once('../global.php');
|
---|
3 |
|
---|
4 | class BackupManagePage extends Page
|
---|
5 | {
|
---|
6 | var $FullTitle = 'Zálohovací systém';
|
---|
7 | var $ShortTitle = 'Nastavení zálohování';
|
---|
8 |
|
---|
9 | function Show()
|
---|
10 | {
|
---|
11 | if(!$this->System->Modules['User']->CheckPermission('Network', 'Administration')) return('Nemáte oprávnění');
|
---|
12 |
|
---|
13 | $this->Database->select_db('backup');
|
---|
14 | $zpet = '<p><a href="index.php">Zpět</a></p>';
|
---|
15 |
|
---|
16 | if(!array_key_exists('action', $_GET)) $_GET['action'] = '';
|
---|
17 |
|
---|
18 | $Output = '';
|
---|
19 | switch($_GET['action'])
|
---|
20 | {
|
---|
21 | case 'add':
|
---|
22 | $this->Database->insert('items', array('name' => $_POST['name'], 'parent' => $_POST['parent'], 'description' => $_POST['description']));
|
---|
23 | $Output .= '<p>Položka byla přidána.</p>'.$zpet;
|
---|
24 | break;
|
---|
25 | case 'backup_now':
|
---|
26 | $Output .= '<pre>'.exec('/a/bin/backup-user.sh').'</pre>';
|
---|
27 | $Output .= '<p>Záloha byla vytvořena.</p>'.$zpet;
|
---|
28 | break;
|
---|
29 | case 'edit':
|
---|
30 | $this->Database->update('items','id = '.$_POST['id'], array('name' => $_POST['name'], 'description' => $_POST['description']));
|
---|
31 | $Output .= '<p>Položka byla upravena.</p>'.$zpet;
|
---|
32 | break;
|
---|
33 | case 'update':
|
---|
34 | //print_r($_POST);
|
---|
35 | while(list($key, $val) = each($_POST))
|
---|
36 | {
|
---|
37 | list($command, $id) = explode("_", $key);
|
---|
38 | switch($command)
|
---|
39 | {
|
---|
40 | case 'edit':
|
---|
41 | $Output .= '<strong>Úprava položky:</strong><br/>';
|
---|
42 | $DbResult = $this->Database->query('SELECT * FROM items WHERE id='.$id);
|
---|
43 | while ($Item = $DbResult->fetch_assoc())
|
---|
44 | {
|
---|
45 | $Output .= '<form action="index.php?action=edit" method="post"><input type="hidden" name="id" value="'.$id.'">';
|
---|
46 | $Output .= 'Název/cesta<br/><input type="text" name="name" value="'.$Item['name'].'"><br/>Popis<br/><input type="text" name="description" value="'.$Item['description'].'"><br/><input type="submit" value="Odeslat"></form>';
|
---|
47 | }
|
---|
48 | break;
|
---|
49 | case 'remove':
|
---|
50 | $this->Database->query('DELETE FROM items WHERE id='.$id);
|
---|
51 | $Output .= '<p>Položka byla smazána!</p>'.$zpet;
|
---|
52 | break;
|
---|
53 | case 'except':
|
---|
54 | $Output .= '<strong>Přidání vyjímky:</strong><br/>';
|
---|
55 | $DbResult = $this->Database->query('SELECT * FROM items WHERE id='.$id);
|
---|
56 | while ($Item = $DbResult->fetch_array())
|
---|
57 | {
|
---|
58 | $Output .= '<form action="index.php?action=add" method="post"><input type="hidden" name="parent" value="'.$id.'">';
|
---|
59 | $Output .= 'Název/cesta<br/><input type="text" name="name"><br/>Popis<br/><input type="text" name="description""><br/><input type="submit" value="Odeslat"></form>';
|
---|
60 | }
|
---|
61 | break;
|
---|
62 | }
|
---|
63 | $Output .= $zpet;
|
---|
64 | }
|
---|
65 | break;
|
---|
66 | default:
|
---|
67 | $Output .= '<form action="index.php?action=update" method="post">';
|
---|
68 | $Output .= '<table width="100%"><tr><td width="50%" valign="top">';
|
---|
69 | // Seznam segmentů a zařízení
|
---|
70 | $Output .= 'Seznam zálohovaných složek:<br><table border="1" cellspacing="0" cellpadding="3"><tr><th>Název/cesta</th><th>Popis</th><th>Operace</th></tr>';
|
---|
71 | $DbResult = $this->Database->query('SELECT * FROM items WHERE parent=0');
|
---|
72 | while($Row = $DbResult->fetch_array())
|
---|
73 | {
|
---|
74 | $Output .= '<tr><td>'.$Row['name'].'</td><td> '.$Row['description'].'</td><td><input type="submit" name="edit_'.$Row['id'].'" value="Upravit"/><input type="submit" name="remove_'.$Row['id'].'" value="Vymazat"/><input type="submit" name="except_'.$Row['id'].'" value="Přidat vyjímku"/></td></tr>';
|
---|
75 | $DbResult2 = $this->Database->query("SELECT * FROM items WHERE parent=".$Row['id']);
|
---|
76 | while($Except = $DbResult2->fetch_array())
|
---|
77 | {
|
---|
78 | $Output .= '<tr><td>- '.$Except['name'].'</td><td> '.$Except['description'].'</td><td><input type="submit" name="edit_'.$Except['id'].'" value="Upravit vyjímku"/><input type="submit" name="remove_'.$Except['id'].'" value="Vymazat vyjímku"/></td></tr>';
|
---|
79 | }
|
---|
80 | }
|
---|
81 | $Output .= '</table><br/></form>';
|
---|
82 | $Output .= '<strong>Přidat položku</strong><br/>';
|
---|
83 | $Output .= '<form action="index.php?action=add" method="post">Název/cesta<br/><input type="text" name="name"><br/>Popis<br/><input type="text" name="description"><br/><input type="submit" value="Odeslat"></form>';
|
---|
84 | $Output .= '<strong>Provést zálohování</strong><br/>';
|
---|
85 | $Output .= '<form action="index.php?action=backup_now" method="post"><input type="submit" value="Zálohuj"></form>';
|
---|
86 | $Output .= '<strong>Popis zálohovacího systému</strong><br>Data jsou zálohována na pomocný 11 GB disk jako komprimovaný soubor. Zálohy dalších velkých souborů je nutné provádět ručně na klientské počítače správců sítě.<br/>Složky jsou kopírovány rekurzivně do hloubky (tzn. včetně podsložek). Pokud nechcete, aby složka byla procházena do hloubky, uveďte za její cestu "/*", jinak ale za názvem lomítko neuvádějte. Kromě toho je možné ke každé složce uvést seznam vyjímek. Ty jsou uváděny jako relativní cesty k souborům a složkám.<br>';
|
---|
87 | }
|
---|
88 | return($Output);
|
---|
89 | }
|
---|
90 | }
|
---|
91 |
|
---|
92 | $System->AddModule(new BackupManagePage());
|
---|
93 | $System->Modules['BackupManagePage']->GetOutput();
|
---|
94 |
|
---|
95 | ?>
|
---|