diff options
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/request_controller.rb | 18 | ||||
-rw-r--r-- | app/controllers/track_controller.rb | 10 | ||||
-rw-r--r-- | app/controllers/widgets_controller.rb | 43 |
3 files changed, 43 insertions, 28 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index 4f86fa2dc..e847cae1e 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -7,7 +7,6 @@ require 'zip/zip' require 'open-uri' -require 'securerandom' class RequestController < ApplicationController before_filter :check_read_only, :only => [ :new, :show_response, :describe_state, :upload_response ] @@ -162,23 +161,6 @@ class RequestController < ApplicationController @show_no_more_than = (@matches_estimated > MAX_RESULTS) ? MAX_RESULTS : @matches_estimated end - def widget - medium_cache - @info_request = InfoRequest.find(params[:id]) - @track_thing = TrackThing.create_track_for_request(@info_request) - @status = @info_request.calculate_status - unless @user or cookies[:widget_vote] - cookies.permanent[:widget_vote] = SecureRandom.hex(10) - end - render :template => 'request/widget', :layout => false - end - - def create_widget - long_cache - @info_request = InfoRequest.find(params[:id]) - render :template => 'request/create_widget' - end - def list medium_cache @view = params[:view] diff --git a/app/controllers/track_controller.rb b/app/controllers/track_controller.rb index afe10be91..8b8055b55 100644 --- a/app/controllers/track_controller.rb +++ b/app/controllers/track_controller.rb @@ -214,14 +214,4 @@ class TrackController < ApplicationController redirect_to URI.parse(params[:r]).path end - # Track interest in a request from a non-logged in user - def widget_vote - @info_request = InfoRequest.find(params[:info_request_id]) - if not @user and cookies[:widget_vote] - wv = @info_request.widget_votes.where(:cookie => cookies[:widget_vote]).first_or_create - end - - track_thing = TrackThing.create_track_for_request(@info_request) - redirect_to do_track_path(track_thing), status => :temporary_redirect - end end diff --git a/app/controllers/widgets_controller.rb b/app/controllers/widgets_controller.rb new file mode 100644 index 000000000..bdbabeac4 --- /dev/null +++ b/app/controllers/widgets_controller.rb @@ -0,0 +1,43 @@ +# app/controllers/widget_controller.rb: +# Handle widgets, if enabled +# +# Copyright (c) 2014 UK Citizens Online Democracy. All rights reserved. +# Email: hello@mysociety.org; WWW: http://www.mysociety.org/ + +require 'securerandom' + +class WidgetsController < ApplicationController + + before_filter :find_info_request + + def show + medium_cache + @track_thing = TrackThing.create_track_for_request(@info_request) + @status = @info_request.calculate_status + unless @user or cookies[:widget_vote] + cookies.permanent[:widget_vote] = SecureRandom.hex(10) + end + render :action => 'show', :layout => false + end + + def new + long_cache + end + + # Track interest in a request from a non-logged in user + def update + if not @user and cookies[:widget_vote] + wv = @info_request.widget_votes.where(:cookie => cookies[:widget_vote]).first_or_create + end + + track_thing = TrackThing.create_track_for_request(@info_request) + redirect_to do_track_path(track_thing), status => :temporary_redirect + end + + private + + def find_info_request + @info_request = InfoRequest.find(params[:request_id]) + end + +end |