diff --git a/app/assets/javascripts/discourse/components/concerns/category_search_priorities.js.es6.erb b/app/assets/javascripts/discourse/components/concerns/category_search_priorities.js.es6.erb new file mode 100644 index 0000000000..643b1777f9 --- /dev/null +++ b/app/assets/javascripts/discourse/components/concerns/category_search_priorities.js.es6.erb @@ -0,0 +1 @@ +export const searchPriorities = <%= Searchable::PRIORITIES.to_json %>; diff --git a/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 b/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 index 712aa67be1..82af15b8f0 100644 --- a/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 +++ b/app/assets/javascripts/discourse/components/edit-category-settings.js.es6 @@ -1,6 +1,7 @@ import { setting } from "discourse/lib/computed"; import { buildCategoryPanel } from "discourse/components/edit-category-panel"; import computed from "ember-addons/ember-computed-decorators"; +import { searchPriorities } from "discourse/components/concerns/category_search_priorities"; const categorySortCriteria = []; export function addCategorySortCriteria(criteria) { @@ -57,6 +58,20 @@ export default buildCategoryPanel("settings", { ); }, + @computed + searchPrioritiesOptions() { + const options = []; + + for (const [name, value] of Object.entries(searchPriorities)) { + options.push({ + name: I18n.t(`category.search_priority.options.${name}`), + value: value + }); + } + + return options.sort((a, b) => a.value <= b.value); + }, + @computed availableSorts() { return [ diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index 2e6928abfe..d31fcb72b4 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -129,7 +129,8 @@ const Category = RestModel.extend({ minimum_required_tags: this.get("minimum_required_tags"), navigate_to_first_post_after_read: this.get( "navigate_to_first_post_after_read" - ) + ), + search_priority: this.get("search_priority") }, type: id ? "PUT" : "POST" }); diff --git a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs index f9628a3fa4..1aab6209b3 100644 --- a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs +++ b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs @@ -43,6 +43,17 @@ +
+ + + {{combo-box valueAttribute="value" + id="category-search-priority" + content=searchPrioritiesOptions + value=category.search_priority}} +
+ {{#if isParentCategory}}