Add "Enable notifications" checkbox in "Add Comment" form

Currently, it is a little to easy to forget to enable notifications
for a package after leaving a comment, thus never being notified of a
reply. Even though the "Enable notifications" link is on the same
page, it is not part of the flow for posting a new comment, and so,
easy to miss.

Most web forums and comment systems include a checkbox to enable
notifications when posting for the first time in a thread. This patch
implements this in aurweb, as well.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
This commit is contained in:
Vladimir Panteleev 2018-10-16 05:22:29 +00:00 committed by Lukas Fleischer
parent e0d821352f
commit e3ca3c96e5
3 changed files with 14 additions and 0 deletions

View file

@ -104,6 +104,11 @@
top: 1px; top: 1px;
} }
.comment-enable-notifications {
display: inline-block;
margin-left: 1em;
}
.rss-icon, .delete-comment, .undelete-comment, .edit-comment, .pin-comment { .rss-icon, .delete-comment, .undelete-comment, .edit-comment, .pin-comment {
-webkit-filter: grayscale(100%); -webkit-filter: grayscale(100%);
filter: grayscale(100%); filter: grayscale(100%);

View file

@ -120,6 +120,9 @@ if (check_token()) {
} elseif (current_action("do_AddComment")) { } elseif (current_action("do_AddComment")) {
$uid = uid_from_sid($_COOKIE["AURSID"]); $uid = uid_from_sid($_COOKIE["AURSID"]);
list($ret, $output) = pkgbase_add_comment($base_id, $uid, $_REQUEST['comment']); list($ret, $output) = pkgbase_add_comment($base_id, $uid, $_REQUEST['comment']);
if ($ret && isset($_REQUEST['enable_notifications'])) {
list($ret, $output) = pkgbase_notify(array($base_id));
}
$fragment = '#news'; $fragment = '#news';
} elseif (current_action("do_EditComment")) { } elseif (current_action("do_EditComment")) {
list($ret, $output) = pkgbase_edit_comment($_REQUEST['comment']); list($ret, $output) = pkgbase_edit_comment($_REQUEST['comment']);

View file

@ -13,6 +13,12 @@
</p> </p>
<p> <p>
<input type="submit" value="<?= (isset($comment_id)) ? __("Save") : __("Add Comment") ?>" /> <input type="submit" value="<?= (isset($comment_id)) ? __("Save") : __("Add Comment") ?>" />
<?php if (!isset($comment_id) && !pkgbase_user_notify($uid, $base_id)): ?>
<span class="comment-enable-notifications">
<input type="checkbox" name="enable_notifications" id="id_enable_notifications" />
<label for="id_enable_notifications"><?= __("Enable notifications") ?></label>
</span>
<?php endif; ?>
</p> </p>
</fieldset> </fieldset>
</form> </form>