mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
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:
committed by
GitHub
parent
1c87038255
commit
9c5ee4923b
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user