Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.46 KB | None | 0 0
  1. class OpinionPollsController < ApplicationController
  2.   before_filter :find_portal
  3.   before_filter :check_ownership
  4.   before_filter :find_poll, except: [:create]
  5.  
  6.   def create
  7.     @portal = Portal.find(params[:portal_id])
  8.     @poll   = @portal.opinion_polls.new(poll_params)
  9.  
  10.     if @poll.save
  11.       flash[:info] = I18n.t('flash.opinion_polls.create')
  12.       render :json => { message: "OK", url: edit_portal_opinion_poll_path(portal_id: @portal.id, id: @poll.id) }.to_json
  13.     else
  14.       render :json => { errors: @poll.errors }.to_json, status: :unprocessable_entity
  15.     end
  16.   end
  17.  
  18.   def edit
  19.     add_breadcrumb 'Start', :start_index_path
  20.     add_breadcrumb 'Portale', :portals_path
  21.     add_breadcrumb @portal.name, user_portal_path(current_user, @portal, tab: :opinions)
  22.     add_breadcrumb "Badanie opinii"
  23.   end
  24.  
  25.   def update
  26.     @good_response = { message: "OK" }
  27.     @good_response.merge!({ dont_close: true }) if params[:commit] == I18n.t("modal.#{@poll.type_string}.save_and_add")
  28.  
  29.     if @poll.update(poll_params)
  30.       render :json => @good_response.to_json
  31.     else
  32.       render :json => { errors: @poll.errors }.to_json, status: :unprocessable_entity
  33.     end
  34.   end
  35.  
  36.   def destroy
  37.     if @poll.destroy
  38.       flash[:info] = I18n.t('flash.opinion_polls.destroy')
  39.       redirect_to user_portal_path(current_user, @portal, tab: :opinions)
  40.     else
  41.       flash[:info] = I18n.t('flash.opinion_polls.cant_destroy')
  42.       redirect_to :back
  43.     end
  44.   end
  45.  
  46.   private
  47.  
  48.   def poll_params
  49.     if params[:type] and params[:type] == "quiz"
  50.       params.require(:opinion_polls_quiz).permit(
  51.         :title, :type,
  52.         :published, :fb_published,
  53.         :publish_rules => [:views_count, :answers_count, :days_count],
  54.         :fb_publish_rules => [:percent, :days_count],
  55.         :questions_attributes => [:id, :position, :title, :answer_a, :answer_b, :answer_c, :good_answer]
  56.       )
  57.     elsif params[:type] and params[:type] == "survey"
  58.       params.require(:opinion_polls_survey).permit(
  59.         :title, :type,
  60.         :published, :fb_published,
  61.         :publish_rules => [:views_count, :answers_count, :days_count],
  62.         :fb_publish_rules => [:percent, :days_count],
  63.         :questions_attributes => [:id, :position, :title, :answer_a, :answer_b, :answer_c],
  64.       )
  65.     end
  66.   end
  67.  
  68.   def find_portal
  69.     @portal = Portal.find(params[:portal_id])
  70.   end
  71.  
  72.   def find_poll
  73.     @poll = @portal.opinion_polls.where(id: params[:id]).first
  74.   end
  75. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement