allow ordering categories in the edit category ui

This commit is contained in:
Sam 2013-10-21 17:17:40 +11:00
parent f0862a5c2e
commit e7a037709f
5 changed files with 26 additions and 12 deletions

View File

@ -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'
});

View File

@ -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"}}

View File

@ -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,6 +79,7 @@ class CategoriesController < ApplicationController
end
def category_params
@category_params ||= begin
required_param_keys.each do |key|
params.require(key)
end
@ -84,7 +90,8 @@ class CategoriesController < ApplicationController
end
end
params.permit(*required_param_keys, :hotness, :auto_close_days, :permissions => [*p.try(:keys)])
params.permit(*required_param_keys, :position, :hotness, :auto_close_days, :permissions => [*p.try(:keys)])
end
end
def fetch_category

View File

@ -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

View File

@ -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?'