diff options
author | Jonas Kohl | 2024-09-19 14:19:35 +0200 |
---|---|---|
committer | Jonas Kohl | 2024-09-19 14:19:35 +0200 |
commit | 95bfdb59b6a1e04e474551c23c7caef619c79839 (patch) | |
tree | 0fe7bf17c5767df5084dac05c61b4167781b9b1b /src/application/views | |
parent | d7faf7053803aaa9eb8ae85a864ea1b2cccaa586 (diff) |
Topic locking
Diffstat (limited to 'src/application/views')
-rw-r--r-- | src/application/views/view_post.php | 3 | ||||
-rw-r--r-- | src/application/views/view_search_results.php | 4 | ||||
-rw-r--r-- | src/application/views/view_topic_locked.php | 4 | ||||
-rw-r--r-- | src/application/views/view_topic_start.php | 31 | ||||
-rw-r--r-- | src/application/views/view_topics.php | 7 | ||||
-rw-r--r-- | src/application/views/view_user.php | 4 |
6 files changed, 49 insertions, 4 deletions
diff --git a/src/application/views/view_post.php b/src/application/views/view_post.php index 62b2d18..0f86896 100644 --- a/src/application/views/view_post.php +++ b/src/application/views/view_post.php @@ -5,6 +5,7 @@ use mystic\forum\orm\Attachment; /** @var mystic\forum\orm\Post $post */ /** @var mystic\forum\orm\User $postAuthor */ +/** @var mystic\forum\orm\Topic $topic */ $isImage = fn(string $m) => str_starts_with($m, "image/") || str_starts_with($m, "video/"); @@ -16,6 +17,8 @@ $canReply = $GLOBALS["currentUser"]?->hasPermission(UserPermissions::CREATE_OWN_ $canEdit = ($GLOBALS["currentUser"]?->id === $postAuthor?->id && $postAuthor?->hasPermission(UserPermissions::EDIT_OWN_POST)) || ($GLOBALS["currentUser"]?->hasPermission(UserPermissions::EDIT_OTHER_POST)); +$canEdit = $canEdit && !$topic->isLocked; + $canDelete = ($GLOBALS["currentUser"]?->id === $postAuthor?->id && $postAuthor?->hasPermission(UserPermissions::DELETE_OWN_POST)) || ($GLOBALS["currentUser"]?->hasPermission(UserPermissions::DELETE_OTHER_POST)); diff --git a/src/application/views/view_search_results.php b/src/application/views/view_search_results.php index e21fbb8..914d2b2 100644 --- a/src/application/views/view_search_results.php +++ b/src/application/views/view_search_results.php @@ -20,7 +20,9 @@ use mystic\forum\utils\StringUtils; <span class="text-muted"><?= __("posted by %author% on %post_date% in %topic%", [ "author" => '<em>' . htmlentities($users[$post->authorId]?->displayName ?? __("unknown")) . '</em>', "post_date" => '<span class="_time">' . htmlentities($post->postDate->format("c")) . '</span>', - "topic" => '<em>' . htmlentities($topics[$post->topicId]?->title ?? "unknown") . '</em>', + "topic" => '<em>' + . ($topics[$post->topicId]?->isLocked ? '<span class="glyphicon glyphicon-lock text-muted" aria-hidden="true"></span> ' : '') + . htmlentities($topics[$post->topicId]?->title ?? "unknown") . '</em>', ]) ?></span> </a> <?php endforeach; ?> diff --git a/src/application/views/view_topic_locked.php b/src/application/views/view_topic_locked.php new file mode 100644 index 0000000..ac59fcb --- /dev/null +++ b/src/application/views/view_topic_locked.php @@ -0,0 +1,4 @@ +<div class="well icon-well text-warning margin-top-4x"> + <span class="glyphicon glyphicon-lock text-warning" aria-hidden="true"></span> + <em><?= __("This topic has been locked") ?></em> +</div> diff --git a/src/application/views/view_topic_start.php b/src/application/views/view_topic_start.php index da8c0cd..fe85afa 100644 --- a/src/application/views/view_topic_start.php +++ b/src/application/views/view_topic_start.php @@ -1,5 +1,6 @@ <?php use mystic\forum\orm\UserPermissions; +use mystic\forum\utils\RequestUtils; $canReply = $GLOBALS["currentUser"]?->hasPermission(UserPermissions::CREATE_OWN_POST) ?? false; @@ -111,17 +112,45 @@ $canDelete = ($GLOBALS["currentUser"]?->id === $topicAuthor->id && $topicAuthor- </script> <?php endif; ?> +<?php +if (($_formError = RequestUtils::getAndClearFormError("updatetopic")) !== null) { + _view("alert_error", ["message" => $_formError]); +} + +if (($_formError = RequestUtils::getAndClearFormError("locktopic")) !== null) { + _view("alert_error", ["message" => $_formError]); +} +?> + <div class="page-header margin-top-0 clearfix"> <div id="displayHeading"> <div role="heading" class="h1 seamless-inline"> + <?php if ($topic->isLocked): ?> + <span class="glyphicon glyphicon-lock text-muted" aria-hidden="true"></span> + <?php endif; ?> <?= htmlentities($topic->title) ?> <div class="pull-right text-normal"> - <?php if ($canEdit): ?> + <?php if ($canEdit && !$topic->isLocked): ?> <button id="btn-edit-title" class="btn btn-default js-only"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> <?= __("Edit title") ?></button> <?php endif; ?> <?php if ($canReply): ?> <button id="btn-reply" class="btn btn-default js-only"><span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span> <?= __("Reply") ?></button> <?php endif; ?> + <?php if ($canEdit): ?> + <?php if ($topic->isLocked): ?> + <form action="?_action=locktopic" method="post" class="seamless-inline"> + <input type="hidden" name="topic" value="<?= htmlentities($topic->id) ?>"> + <input type="hidden" name="locked" value="false"> + <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span> <?= __("Unlock topic") ?></button> + </form> + <?php else: ?> + <form action="?_action=locktopic" method="post" class="seamless-inline"> + <input type="hidden" name="topic" value="<?= htmlentities($topic->id) ?>"> + <input type="hidden" name="locked" value="true"> + <button type="submit" class="btn btn-warning"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span> <?= __("Lock topic") ?></button> + </form> + <?php endif; ?> + <?php endif; ?> <?php if ($canDelete): ?> <form action="?_action=deletetopic" method="post" class="seamless-inline"> <input type="hidden" name="topic" value="<?= htmlentities($topic->id) ?>"> diff --git a/src/application/views/view_topics.php b/src/application/views/view_topics.php index 291fbdc..a762f8c 100644 --- a/src/application/views/view_topics.php +++ b/src/application/views/view_topics.php @@ -12,7 +12,12 @@ if ($GLOBALS["currentUser"]?->hasPermission(UserPermissions::CREATE_OWN_TOPIC)): <div class="list-group"> <?php /** @var Topic $topic */ foreach ($topics as $topic): ?> <a class="list-group-item" href="?_action=viewtopic&topic=<?= htmlentities(urlencode($topic->id)) ?>"> - <h4 class="list-group-item-heading"><?= htmlentities($topic->title) ?></h4> + <h4 class="list-group-item-heading"> + <?php if ($topic->isLocked): ?> + <span class="glyphicon glyphicon-lock text-muted" aria-hidden="true"></span> + <?php endif; ?> + <?= htmlentities($topic->title) ?> + </h4> <p class="list-group-item-text _time"><?= htmlentities($topic->creationDate->format("c")) ?></p> </a> <?php endforeach; ?> diff --git a/src/application/views/view_user.php b/src/application/views/view_user.php index d3ebe04..5c89411 100644 --- a/src/application/views/view_user.php +++ b/src/application/views/view_user.php @@ -59,7 +59,9 @@ $emailPending = $isOwnProfile && $user->pendingEmail !== null; <?= htmlentities(StringUtils::truncate(strip_tags(renderPost($post->content)), 100)) ?><br> <span class="text-muted"><?= __("posted on %post_date% in %topic%", [ "post_date" => '<span class="_time">' . htmlentities($post->postDate->format("c")) . '</span>', - "topic" => '<em>' . htmlentities($topics[$post->topicId]?->title ?? "unknown") . '</em>', + "topic" => '<em>' . + ($topics[$post->topicId]?->isLocked ? '<span class="glyphicon glyphicon-lock text-muted" aria-hidden="true"></span> ' : '') . + htmlentities($topics[$post->topicId]?->title ?? "unknown") . '</em>', ]) ?></span> </a> <?php endforeach; ?> |