<?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) {
+ $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)
)
);
?>