class Panel::Faq::BackEnd::QasController < OrbitBackendController # before_filter :for_app_manager,:except => [:index,:show] include AdminHelper include OrbitControllerLib::DivisionForDisable 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 :only => [ :new,:edit,:update,:create] do |controller| controller.get_categorys('QaCategory') end def index get_categorys("QaCategory",params[:qa_category_id]) @filter = params[:filter] new_filter = params[:new_filter] if @filter && params[:clear] @filter.delete(params[:type]) elsif @filter && new_filter if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) @filter[new_filter[:type]].delete(new_filter[:id].to_s) elsif @filter.has_key?(new_filter[:type]) @filter[new_filter[:type]] << new_filter[:id].to_s else @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) end elsif new_filter @filter = {new_filter[:type] => [new_filter[:id].to_s]} end @qa_categories = get_categories_for_index("QaCategory") @qa_category_ids = @qa_categories.collect{|t| t.id.to_s} + [nil] # @qas = Qa.search(params[:category_id]) #@qas = (params[:sort] || @filter) ? get_sorted_and_filtered_qas : Qa.all.page(params[:page]).per(10) @qas = (params[:sort] || @filter) ? get_sorted_and_filtered("qa",:qa_category_id.in => @qa_category_ids) : get_viewable("qa",:qa_category_id.in => @qa_category_ids) @tags = get_tags respond_to do |format| format.html # index.html.erb format.xml { render :xml => @qas } format.js end end # GET /qas/1 # GET /qas/1.xml def show @qa = Qa.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @qa } end end # GET /qas/new # GET /qas/new.xml def new @qa = Qa.new @tags = get_tags respond_to do |format| format.html # new.html.erb format.xml { render :xml => @qa } end end # GET /qas/1/edit def edit @qa = Qa.find(params[:id]) @tags = get_tags end # POST /qas # POST /qas.xml def create @qa = Qa.new(params[:qa]) @tags = get_tags @qa.create_user_id = current_user.id @qa.update_user_id = current_user.id respond_to do |format| if @qa.save format.html { redirect_to(panel_faq_back_end_qas_url) } format.xml { render :xml => @qa, :status => :created, :location => @qa } else format.html { render :action => "new" } format.xml { render :xml => @qa.errors, :status => :unprocessable_entity } end end end # PUT /qas/1 # PUT /qas/1.xml def update @qa = Qa.find(params[:id]) @qa.update_user_id = current_user.id params[:qa][:tag_ids] ||=[] respond_to do |format| if @qa.update_attributes(params[:qa]) format.html { redirect_to(panel_faq_back_end_qas_url(:page => params[:page])) } format.js { render 'toggle_enable' } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @qa.errors, :status => :unprocessable_entity } end end end # DELETE /qas/1 # DELETE /qas/1.xml def destroy @qa = Qa.find(params[:id]) @qa.destroy respond_to do |format| format.html { redirect_to(panel_faq_back_end_qas_url) } # format.xml { head :ok } format.js end end def delete if params[:ids] qas = Qa.any_in(:_id => params[:ids]).destroy_all end redirect_to panel_faq_back_end_qas_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) end end