Update jQuery from 1.12.4 to 3.7.1
[phorkie.git] / www / edit.php
index 3bcec6e797525a5c995920835ca8424a64e7cce6..1ced7b6a64fc812745bebb7ec7b32ba3cafa3fd7 100644 (file)
@@ -1,59 +1,56 @@
 <?php
-namespace Phorkie;
+namespace phorkie;
 /**
  * Edit paste contents
  */
+$reqWritePermissions = true;
 require_once 'www-header.php';
 
 $repo = new Repository();
 $repo->loadFromRequest();
 
-if (isset($_POST['files'])) {
-    $vc = $repo->getVc();
-    $repo->setDescription($_POST['description']);
-
-    $bChanged = false;
-    foreach ($_POST['files'] as $num => $arFile) {
-        if (!isset($arFile['original_name'])
-            || !$repo->hasFile($arFile['original_name'])
-        ) {
-            //FIXME: Show error message
-            continue;
-        }
-        //FIXME: fix file names from .. and ./
-        if ($arFile['original_name'] != $arFile['name']) {
-            //FIXME: what to do with overwrites?
-            $vc->getCommand('mv')
-                ->addArgument($arFile['original_name'])
-                ->addArgument($arFile['name'])
-                ->execute();
-            $bChanged = true;
-        }
-        $file = $repo->getFileByName($arFile['name']);
-        if ($file->getContent() != $arFile['content']) {
-            file_put_contents($file->getPath(), $arFile['content']);
-            $command = $vc->getCommand('add')
-                ->addArgument($file->getFilename())
-                ->execute();
-            $bChanged = true;
-        }
+$file = null;
+if (isset($_GET['file'])) {
+    if ($_GET['file'] == 'newfile') {
+        $file = 'newfile';
+    } else {
+        $file = $repo->getFileByName($_GET['file']);
     }
+}
 
-    if ($bChanged) {
-        $vc->getCommand('commit')
-            ->setOption('message', '')
-            ->setOption('allow-empty-message')
-            ->setOption('author', 'Anonymous <anonymous@phorkie>')
-            ->execute();
+$repopo = new Repository_Post($repo);
+if ($repopo->process($_POST, $_SESSION)) {
+    $anchor = '';
+    if ($file instanceof File) {
+        if (isset($repopo->renameMap[$file->getFilename()])) {
+            $anchor = '#'
+                . $repo->getFileByName(
+                    $repopo->renameMap[$file->getFilename()]
+                )->getAnchorName();
+        } else {
+            $anchor = '#' . $file->getAnchorName();
+        }
+    } else if ($file === 'newfile' && $repopo->newfileName) {
+        $anchor = '#' . $repo->getFileByName($repopo->newfileName)->getAnchorName();
     }
+    redirect($repo->getLink('display', null, true) . $anchor);
+}
 
-    redirect($repo->getLink('display'));
+$actionFile = null;
+if ($file instanceof File) {
+    $actionFile = $file->getFilename();
+} else if ($file === 'newfile') {
+    $actionFile = 'newfile';
 }
 
 render(
     'edit',
     array(
         'repo' => $repo,
+        'singlefile' => $file,
+        'dh'   => new \Date_HumanDiff(),
+        'htmlhelper' => new HtmlHelper(),
+        'formaction' => $repo->getLink('edit', $actionFile)
     )
 );
 ?>