| Class | ResponsesController |
| In: |
app/controllers/responses_controller.rb
|
| Parent: | ApplicationController |
POST /responses POST /responses.xml
# File app/controllers/responses_controller.rb, line 60
60: def create
61: @items_rated = logged_in? ? current_user.responses_count.round : (prompts_shown - 1)
62: response_time = parse_response_time(params[:response_time])
63: begin
64: last = Prompt.find(params[:prompt_id], :include => [:items, :question])
65: store_response(last, params[:item_id].to_i, last.question.id, response_time)
66: rescue ActiveRecord::RecordNotFound
67: # the user voted on a stale prompt, pretend their vote was stored
68: session[:question_responses] ||= 0
69: session[:question_responses] += 1
70: end
71: # base new question on user's expectation via param
72: self.fetch_next = nil if params[:second_last] == 'true'
73: @new_question = (params[:new_question] == 'true')
74: return unless get_vars(next_prompt) { prompts_left_for_question > 0 ? fetch_prompt : nil }
75: @percent_wins = Item.win_percents_overall(@prompt.question_id, @prompt.item_ids)
76: get_stats
77: render :update do |page|
78: # all votes count as optimizer hits, remove admin from here after testing?
79: page << "Google.optimize();" if PRODUCTION && I18n.locale == 'en'
80: # only when we've seen our second prompt will prompts_shown be < 3
81: page << "Google.conversion('0R6LCIK1hAEQxNKW9gM');" if @controller.prompts_shown < 3
82: page << "Google.conversion('D3UMCLa2hAEQxNKW9gM');" if @new_question
83: display_prompt(params, page)
84: end
85: end
# File app/controllers/responses_controller.rb, line 87
87: def flag
88: flag_obj(params[:flag]) # we don't check validity
89: get_vars(next_prompt, nil, false)
90: render :update do |page|
91: flash[:notice] = t('flag.success')
92: page.redirect_to(root_path)
93: end
94: end
GET /responses GET /responses.xml
# File app/controllers/responses_controller.rb, line 12
12: def index
13: @question = active_question
14: fetch_user_items
15: fetch_responses
16: respond_to do |format|
17: format.html # index.html.erb
18: format.xml { render :xml => @responses }
19: end
20: end
GET /responses/new
# File app/controllers/responses_controller.rb, line 54
54: def new
55: redirect_to response_path(0)
56: end
# File app/controllers/responses_controller.rb, line 22
22: def question
23: @question = Question.find(params[:question_id])
24: fetch_responses
25: render :update do |page|
26: page[:responses].html render(:partial => 'response', :collection => @responses)
27: end
28: end
GET /responses/[id]
# File app/controllers/responses_controller.rb, line 31
31: def show
32: id = params[:id].to_i
33: return unless get_vars(active_prompt, id > 0 && id) { fetch_prompt }
34: @prompt_js = true
35: begin
36: @last = last_prompt && Prompt.find(last_prompt)
37: rescue ActiveRecord::RecordNotFound
38: reset_last_prompt
39: end
40: session[:response_time] = []
41: @current_percent_wins = Item.win_percents_overall_array(@prompt.question.id, @prompt.item_ids)
42: @last_percent_wins = Item.win_percents_overall_array(@last.question.id, @last.item_ids) if @last
43: if @logged_in
44: @current_user_email = current_user.email
45: @rank ||= current_user.get_responses_rank
46: @items ||= current_user.get_items_count
47: @items_votes ||= current_user.get_item_responses_count.round
48: end
49: @items_rated = @logged_in ? current_user.get_responses_count.round : (prompts_shown - 1)
50: render :action => 'new'
51: end