diff --git a/assets/javascripts/discourse/connectors/category-custom-settings/solved-settings.hbs b/assets/javascripts/discourse/connectors/category-custom-settings/solved-settings.hbs index b1ec846..5ca91ce 100644 --- a/assets/javascripts/discourse/connectors/category-custom-settings/solved-settings.hbs +++ b/assets/javascripts/discourse/connectors/category-custom-settings/solved-settings.hbs @@ -1,3 +1,4 @@ +{{#unless siteSettings.allow_solved_on_all_topics}}
+{{/unless}} diff --git a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 index ae4d4a7..162e9f8 100644 --- a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 +++ b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 @@ -3,7 +3,7 @@ import PostView from 'discourse/views/post'; import { Button } from 'discourse/views/post-menu'; import Topic from 'discourse/models/topic'; import User from 'discourse/models/user'; -import TopicStatus from 'discourse/views/topic-status' +import TopicStatus from 'discourse/views/topic-status'; export default { name: 'extend-for-solved-button', @@ -17,7 +17,7 @@ export default { var fields = this.get('custom_fields'); return fields && (fields.enable_accepted_answers === "true"); }.property('custom_fields') - }), + }); Topic.reopen({ diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml new file mode 100644 index 0000000..709ad62 --- /dev/null +++ b/config/locales/server.en.yml @@ -0,0 +1,3 @@ +en: + site_settings: + allow_solved_on_all_topics: "Allow users to select solutions on all topics (by default you control this by editing categories)" diff --git a/config/settings.yml b/config/settings.yml new file mode 100644 index 0000000..0e0bb07 --- /dev/null +++ b/config/settings.yml @@ -0,0 +1,4 @@ +plugins: + allow_solved_on_all_topics: + default: false + client: true diff --git a/plugin.rb b/plugin.rb index 33ae297..99b62df 100644 --- a/plugin.rb +++ b/plugin.rb @@ -138,6 +138,8 @@ after_initialize do end def allow_accepted_answers_on_category?(category_id) + return true if SiteSetting.allow_solved_on_all_topics + self.class.reset_accepted_answer_cache unless @@allowed_accepted_cache["allowed"] @@allowed_accepted_cache["allowed"].include?(category_id) end @@ -157,6 +159,7 @@ after_initialize do def can_accept_answer topic = (topic_view && topic_view.topic) || object.topic + if topic scope.can_accept_answer?(topic) && object.post_number > 1 && !accepted_answer