113 lines
3.2 KiB
Ruby
113 lines
3.2 KiB
Ruby
|
class Admin::CategoriesController < OrbitBackendController
|
||
|
|
||
|
# TODO = put back ========================
|
||
|
# before_filter :force_order_for_visitor, only: [:index]
|
||
|
# before_filter :force_order_for_user, except: [:index]
|
||
|
# before_filter :for_app_sub_manager, except: [:index]
|
||
|
# ========================================
|
||
|
before_filter :setup_vars
|
||
|
# ========================================
|
||
|
|
||
|
def index
|
||
|
@categories = get_categories_for_index
|
||
|
@categories = @categories.page(params[:page]).per(10)
|
||
|
end
|
||
|
|
||
|
def new
|
||
|
@category = Category.new
|
||
|
render layout: false
|
||
|
end
|
||
|
|
||
|
def edit
|
||
|
@category = Category.find(params[:id])
|
||
|
render layout: false
|
||
|
end
|
||
|
|
||
|
def create
|
||
|
@category = @module_app.categories.build(params[:category])
|
||
|
if @category.save
|
||
|
redirect_to admin_module_app_categories_url(@module_app_id)
|
||
|
else
|
||
|
@category = Category.new(params[:category])
|
||
|
flash.now[:error] = t('create.error.category')
|
||
|
render action: :new
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def update
|
||
|
@category = Category.find(params[:id])
|
||
|
if @category.update_attributes(params[:category])
|
||
|
redirect_to admin_module_app_categories_url(@module_app_id)
|
||
|
else
|
||
|
flash.now[:error] = t('update.error.category')
|
||
|
render action: :edit
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def toggle
|
||
|
@category = Category.find(params[:id])
|
||
|
@category.disable = @category.disable ? false : true
|
||
|
@category.save!
|
||
|
redirect_to action: :index
|
||
|
end
|
||
|
|
||
|
# def get_categorys_json
|
||
|
# categorys = BulletinCategory.all
|
||
|
# data = Array.new
|
||
|
|
||
|
# categorys.each do |c|
|
||
|
# data << {
|
||
|
# category: c.title,
|
||
|
# # this is a json format
|
||
|
# # link: "http://#{request.host_with_port}#{panel_announcement_back_end_bulletin_category_get_bulletins_json_path(c)}"
|
||
|
# # remember to uncommand a rule in route.rb, too
|
||
|
# link: "#{url_for( :action => "index",
|
||
|
# :controller => "panel/announcement/front_end/bulletins",
|
||
|
# :format => :rss,
|
||
|
# :only_path => false,
|
||
|
# :inner=>true,
|
||
|
# :category_id => c )}"
|
||
|
# }
|
||
|
# end
|
||
|
|
||
|
# #render :json => @data.to_json
|
||
|
# #to print readable json
|
||
|
# render :json => JSON.pretty_generate(data)
|
||
|
# end
|
||
|
|
||
|
# def get_bulletins_json
|
||
|
# bulletin = BulletinCategory.find(params[:bulletin_category_id]).bulletins
|
||
|
# p bulletin
|
||
|
# data = Array.new
|
||
|
|
||
|
# bulletin.each do |b|
|
||
|
# deadline = b.deadline
|
||
|
|
||
|
# if not deadline.nil?
|
||
|
# deadline = display_date_time(deadline)
|
||
|
# else
|
||
|
# deadline = I18n.t("no_deadline")
|
||
|
# end
|
||
|
|
||
|
# data << {
|
||
|
# title: b.title,
|
||
|
# link: "http://#{request.host_with_port}#{panel_announcement_front_end_bulletin_path(b, :category_id => b.bulletin_category.id)}",
|
||
|
# postdate: display_date_time(b.postdate),
|
||
|
# deadline: deadline,
|
||
|
# tag: b.sorted_tags.to_a,
|
||
|
# }
|
||
|
# end
|
||
|
|
||
|
# render :json => JSON.pretty_generate(data)
|
||
|
# end
|
||
|
|
||
|
private
|
||
|
|
||
|
def setup_vars
|
||
|
@module_app = ModuleApp.find(params[:module_app_id]) rescue nil
|
||
|
raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
|
||
|
@module_app_id = @module_app.id rescue nil
|
||
|
end
|
||
|
|
||
|
end
|