allow ordering categories in the edit category ui
This commit is contained in:
parent
f0862a5c2e
commit
e7a037709f
|
@ -57,7 +57,8 @@ Discourse.Category = Discourse.Model.extend({
|
|||
hotness: this.get('hotness'),
|
||||
secure: this.get('secure'),
|
||||
permissions: this.get('permissionsForUpdate'),
|
||||
auto_close_days: this.get('auto_close_days')
|
||||
auto_close_days: this.get('auto_close_days'),
|
||||
position: this.get('position')
|
||||
},
|
||||
type: this.get('id') ? 'PUT' : 'POST'
|
||||
});
|
||||
|
|
|
@ -86,6 +86,11 @@
|
|||
{{autoCloseForm autoCloseDays=auto_close_days labelKey="category.auto_close_label"}}
|
||||
</section>
|
||||
|
||||
<section class='field'>
|
||||
<label>{{i18n category.position}}</label>
|
||||
{{textField value=position}}
|
||||
</section>
|
||||
|
||||
<section class='field'>
|
||||
<label>{{i18n category.hotness}}</label>
|
||||
{{view Discourse.HotnessView hotnessBinding="hotness"}}
|
||||
|
|
|
@ -52,12 +52,17 @@ class CategoriesController < ApplicationController
|
|||
@category = Category.create(category_params.merge(user: current_user))
|
||||
return render_json_error(@category) unless @category.save
|
||||
|
||||
@category.move_to(category_params[:position].to_i) if category_params[:position]
|
||||
|
||||
render_serialized(@category, CategorySerializer)
|
||||
end
|
||||
|
||||
def update
|
||||
guardian.ensure_can_edit!(@category)
|
||||
json_result(@category, serializer: CategorySerializer) { |cat| cat.update_attributes(category_params) }
|
||||
json_result(@category, serializer: CategorySerializer) { |cat|
|
||||
cat.update_attributes(category_params)
|
||||
cat.move_to(category_params[:position].to_i) if category_params[:position]
|
||||
}
|
||||
end
|
||||
|
||||
def destroy
|
||||
|
@ -74,17 +79,19 @@ class CategoriesController < ApplicationController
|
|||
end
|
||||
|
||||
def category_params
|
||||
required_param_keys.each do |key|
|
||||
params.require(key)
|
||||
end
|
||||
|
||||
if p = params[:permissions]
|
||||
p.each do |k,v|
|
||||
p[k] = v.to_i
|
||||
@category_params ||= begin
|
||||
required_param_keys.each do |key|
|
||||
params.require(key)
|
||||
end
|
||||
end
|
||||
|
||||
params.permit(*required_param_keys, :hotness, :auto_close_days, :permissions => [*p.try(:keys)])
|
||||
if p = params[:permissions]
|
||||
p.each do |k,v|
|
||||
p[k] = v.to_i
|
||||
end
|
||||
end
|
||||
|
||||
params.permit(*required_param_keys, :position, :hotness, :auto_close_days, :permissions => [*p.try(:keys)])
|
||||
end
|
||||
end
|
||||
|
||||
def fetch_category
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class CategorySerializer < BasicCategorySerializer
|
||||
|
||||
attributes :read_restricted, :available_groups, :auto_close_days, :group_permissions
|
||||
attributes :read_restricted, :available_groups, :auto_close_days, :group_permissions, :position
|
||||
|
||||
def group_permissions
|
||||
@group_permissions ||= begin
|
||||
|
|
|
@ -975,6 +975,7 @@ en:
|
|||
edit_permissions: "Edit Permissions"
|
||||
add_permission: "Add Permission"
|
||||
this_year: "this year"
|
||||
position: "position"
|
||||
|
||||
flagging:
|
||||
title: 'Why are you flagging this post?'
|
||||
|
|
Loading…
Reference in New Issue