FEATURE: silently close topic (#11392)

New TopicTimer to silently close topic. It will be used by discourse-solved plugin

Meta: https://meta.discourse.org/t/allow-auto-close-for-solved-to-do-so-silently/169300
This commit is contained in:
Krzysztof Kotlarek
2020-12-03 10:43:19 +11:00
committed by GitHub
parent 1c87038255
commit 9c5ee4923b
7 changed files with 68 additions and 14 deletions

View File

@@ -50,7 +50,8 @@ class TopicTimer < ActiveRecord::Base
delete: 4,
reminder: 5,
bump: 6,
delete_replies: 7
delete_replies: 7,
silent_close: 8
)
end
@@ -97,6 +98,10 @@ class TopicTimer < ActiveRecord::Base
end
alias_method :cancel_auto_open_job, :cancel_auto_close_job
def cancel_auto_silent_close_job
Jobs.cancel_scheduled_job(:toggle_topic_closed, topic_timer_id: id)
end
def cancel_auto_publish_to_category_job
Jobs.cancel_scheduled_job(:publish_topic_to_category, topic_timer_id: id)
end
@@ -143,6 +148,16 @@ class TopicTimer < ActiveRecord::Base
)
end
def schedule_auto_silent_close_job(time)
topic.update_status('closed', false, user) if topic&.closed
Jobs.enqueue_at(time, :toggle_topic_closed,
topic_timer_id: id,
silent: true,
state: true
)
end
def schedule_auto_publish_to_category_job(time)
Jobs.enqueue_at(time, :publish_topic_to_category, topic_timer_id: id)
end