Browse Source

Merge branch 'issue-466' into 'master'

Add warning when replying to old topics/comments

Closes #466

See merge request tildes/tildes!76
merge-requests/76/merge
deing 6 years ago
parent
commit
b9cae73019
  1. 14
      tildes/static/js/behaviors/comment-reply-button.js
  2. 3
      tildes/tildes/templates/topic.jinja2
  3. 9
      tildes/tildes/views/topic.py

14
tildes/static/js/behaviors/comment-reply-button.js

@ -79,6 +79,20 @@ $.onmount("[data-js-comment-reply-button]", function() {
} }
} }
var originalCommentTimestamp = new Date(
$parentComment
.find(".comment-posted-time")
.first()
.attr("datetime")
);
if (Date.now() - originalCommentTimestamp > 1000 * 3600 * 24 * 62) {
var warningDiv = document.createElement("div");
warningDiv.classList.add("toast", "toast-minor", "toast-warning");
warningDiv.innerHTML =
"The comment you're replying to is over two months old. Are you sure you want to continue?";
clone.querySelector("form").prepend(warningDiv);
}
// update Intercooler so it knows about this new form // update Intercooler so it knows about this new form
Intercooler.processNodes(clone); Intercooler.processNodes(clone);

3
tildes/tildes/templates/topic.jinja2

@ -213,6 +213,9 @@
data-js-prevent-double-submit data-js-prevent-double-submit
data-js-confirm-leave-page-unsaved data-js-confirm-leave-page-unsaved
> >
{% if old_topic_warning %}
<div class="toast toast-minor toast-warning">The topic you're replying to is over two months old. Are you sure you want to continue?</div>
{% endif %}
<input type="hidden" name="csrf_token" value="{{ get_csrf_token() }}"> <input type="hidden" name="csrf_token" value="{{ get_csrf_token() }}">
{{ markdown_textarea() }} {{ markdown_textarea() }}

9
tildes/tildes/views/topic.py

@ -6,6 +6,7 @@
from collections import namedtuple from collections import namedtuple
from typing import Any, Optional, Union from typing import Any, Optional, Union
from datetime import timedelta
from marshmallow import missing, ValidationError from marshmallow import missing, ValidationError
from marshmallow.fields import Boolean, String from marshmallow.fields import Boolean, String
from pyramid.httpexceptions import HTTPFound from pyramid.httpexceptions import HTTPFound
@ -27,7 +28,7 @@ from tildes.enums import (
TopicSortOption, TopicSortOption,
) )
from tildes.lib.database import ArrayOfLtree from tildes.lib.database import ArrayOfLtree
from tildes.lib.datetime import SimpleHoursPeriod
from tildes.lib.datetime import SimpleHoursPeriod, utc_now
from tildes.models.comment import Comment, CommentNotification, CommentTree from tildes.models.comment import Comment, CommentNotification, CommentTree
from tildes.models.group import Group, GroupWikiPage from tildes.models.group import Group, GroupWikiPage
from tildes.models.log import LogComment, LogTopic from tildes.models.log import LogComment, LogTopic
@ -374,6 +375,11 @@ def get_topic(request: Request, comment_order: CommentTreeSortOption) -> dict:
tree.uncollapse_new_comments(topic.last_visit_time) tree.uncollapse_new_comments(topic.last_visit_time)
tree.finalize_collapsing_maximized() tree.finalize_collapsing_maximized()
old_topic_warning = False
if utc_now() - topic.created_time > timedelta(days=62):
old_topic_warning = True
return { return {
"topic": topic, "topic": topic,
"log": log, "log": log,
@ -381,6 +387,7 @@ def get_topic(request: Request, comment_order: CommentTreeSortOption) -> dict:
"comment_order": comment_order, "comment_order": comment_order,
"comment_order_options": CommentTreeSortOption, "comment_order_options": CommentTreeSortOption,
"comment_label_options": CommentLabelOption, "comment_label_options": CommentLabelOption,
"old_topic_warning": old_topic_warning,
} }

Loading…
Cancel
Save