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
 |