monospaced font, more height for content
[phorkie.git] / www / edit.php
1 <?php
2 namespace Phorkie;
3 /**
4  * Edit paste contents
5  */
6 require_once 'www-header.php';
7
8 $repo = new Repository();
9 $repo->loadFromRequest();
10
11 if (isset($_POST['files'])) {
12     $vc = $repo->getVc();
13     $repo->setDescription($_POST['description']);
14
15     $bChanged = false;
16     foreach ($_POST['files'] as $num => $arFile) {
17         if (!isset($arFile['original_name'])
18             || !$repo->hasFile($arFile['original_name'])
19         ) {
20             //FIXME: Show error message
21             continue;
22         }
23         //FIXME: fix file names from .. and ./
24         if ($arFile['original_name'] != $arFile['name']) {
25             //FIXME: what to do with overwrites?
26             $vc->getCommand('mv')
27                 ->addArgument($arFile['original_name'])
28                 ->addArgument($arFile['name'])
29                 ->execute();
30             $bChanged = true;
31         }
32         $file = $repo->getFileByName($arFile['name']);
33         if ($file->getContent() != $arFile['content']) {
34             file_put_contents($file->getPath(), $arFile['content']);
35             $command = $vc->getCommand('add')
36                 ->addArgument($file->getFilename())
37                 ->execute();
38             $bChanged = true;
39         }
40     }
41
42     if ($bChanged) {
43         $vc->getCommand('commit')
44             ->setOption('message', '')
45             ->setOption('allow-empty-message')
46             ->setOption('author', 'Anonymous <anonymous@phorkie>')
47             ->execute();
48     }
49
50     redirect($repo->getLink('display'));
51 }
52
53 render(
54     'edit',
55     array(
56         'repo' => $repo,
57     )
58 );
59 ?>