diff --git a/tildes/static/js/behaviors/comment-reply-button.js b/tildes/static/js/behaviors/comment-reply-button.js
index 0f94ad4..f2f9e3f 100644
--- a/tildes/static/js/behaviors/comment-reply-button.js
+++ b/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
Intercooler.processNodes(clone);
diff --git a/tildes/tildes/templates/topic.jinja2 b/tildes/tildes/templates/topic.jinja2
index 73c4697..bf04481 100644
--- a/tildes/tildes/templates/topic.jinja2
+++ b/tildes/tildes/templates/topic.jinja2
@@ -213,6 +213,9 @@
data-js-prevent-double-submit
data-js-confirm-leave-page-unsaved
>
+ {% if old_topic_warning %}
+
The topic you're replying to is over two months old. Are you sure you want to continue?
+ {% endif %}
{{ markdown_textarea() }}
diff --git a/tildes/tildes/views/topic.py b/tildes/tildes/views/topic.py
index 7afe9f2..00efc16 100644
--- a/tildes/tildes/views/topic.py
+++ b/tildes/tildes/views/topic.py
@@ -6,6 +6,7 @@
from collections import namedtuple
from typing import Any, Optional, Union
+from datetime import timedelta
from marshmallow import missing, ValidationError
from marshmallow.fields import Boolean, String
from pyramid.httpexceptions import HTTPFound
@@ -27,7 +28,7 @@ from tildes.enums import (
TopicSortOption,
)
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.group import Group, GroupWikiPage
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.finalize_collapsing_maximized()
+ old_topic_warning = False
+
+ if utc_now() - topic.created_time > timedelta(days=62):
+ old_topic_warning = True
+
return {
"topic": topic,
"log": log,
@@ -381,6 +387,7 @@ def get_topic(request: Request, comment_order: CommentTreeSortOption) -> dict:
"comment_order": comment_order,
"comment_order_options": CommentTreeSortOption,
"comment_label_options": CommentLabelOption,
+ "old_topic_warning": old_topic_warning,
}