issue: message editing feature
[minimedit.git] / widget / reply.php
index b740c2a5276722aa8bba0f6482a263af65a7b272..f9248512105bda05860bf691d212bbf7d1e0e3b3 100644 (file)
@@ -6,7 +6,7 @@ require_once 'upload.inc.php';
 if ($_POST) {
        try {
                $newcomment = createcomment($_POST, $Issue);
-               $target = "/{$Page->link}/$newcomment#$newcomment";
+               $target = "/{$Page->link}?last=$newcomment#$newcomment";
                abort($target, ($Page->api ? 200 : 303) . ' reply success');
                $_POST['reply'] = NULL;
        }
@@ -14,11 +14,13 @@ if ($_POST) {
                if ($Page->api) {
                        abort(ucfirst($e->getMessage()), '500 reply error');
                }
-               print "<p class=warn>Antwoord niet opgeslagen: {$e->getMessage()}.</p>\n\n";
+               printf("<p class=warn>Antwoord niet opgeslagen: %s.</p>\n\n",
+                       nl2br(htmlspecialchars($e->getMessage()))
+               );
        }
 }
 
-$cols = '*, (SELECT json_agg(journal.*) FROM journal WHERE comment_id = comments.id) AS journal';
+$cols = "*, (SELECT json_agg(journal.*) FROM journal WHERE comment_id = comments.id AND property = 'attr') AS journal";
 $query = $Db->query("SELECT $cols FROM comments WHERE page = ? ORDER BY created", [$Page->link]);
 
 if ($row = $query->fetch()) {
@@ -69,6 +71,17 @@ if ($User->login) {
        print '<li>';
        print '<form method="post" action="" enctype="multipart/form-data">';
        if (isset($Issue) and $User->admin("edit {$Page->link}")) {
+               print "<aside>\n";
+               print '<p>';
+               printf(
+                       '<label for="%s">%s:</label> '
+                       . '<input id="%1$s" name="%1$s" value="%s" />'."\n",
+                       'subject',
+                       $journalcol['subject'],
+                       htmlspecialchars($Issue->subject ?? '')
+               );
+               print "</p>\n";
+
                print '<p>';
                printf(
                        '<label for="%s">%s:</label> '
@@ -87,6 +100,22 @@ if ($User->login) {
                        'Gesloten'
                );
                print "</p>\n";
+               print "</aside>\n";
+       }
+       {
+               print '<p>';
+               printf(
+                       '<input type="hidden" name="%s" value="" />'
+                       . "Geplaatste berichten zijn hier direct zichtbaar voor bewoners.\n"
+                       . '<input type="checkbox" id="%1$s" name="%1$s" value="%s"%s%s />'
+                       . '<label for="%1$s"> %s</label>'."\n",
+                       'announce',
+                       '1',
+                       ($_POST['announce'] ?? TRUE) ? ' checked' : '',
+                       ' onclick="this.nextSibling.hidden = !this.checked"',
+                       "De eerste regel wordt ook weergegeven op het scherm in de hal."
+               );
+               print "</p>\n";
        }
        if (isset($Issue)) {
                printf(