aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/request_controller.rb18
-rw-r--r--app/controllers/track_controller.rb10
-rw-r--r--app/controllers/widgets_controller.rb43
-rw-r--r--app/views/widgets/new.html.erb (renamed from app/views/request/create_widget.html.erb)4
-rw-r--r--app/views/widgets/show.html.erb (renamed from app/views/request/widget.html.erb)8
5 files changed, 48 insertions, 35 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
diff --git a/app/views/request/create_widget.html.erb b/app/views/widgets/new.html.erb
index d6a71768a..072645d09 100644
--- a/app/views/request/create_widget.html.erb
+++ b/app/views/widgets/new.html.erb
@@ -4,12 +4,12 @@
To add a widget for <b><%= @info_request.title %></b>, copy and paste the
following code to your web page:
<textarea autofocus readonly rows='4' cols='60' id='widgetbox'>
-<iframe src='<%= widget_url(@info_request) %>' width='320' height='215' frameborder='0' marginwidth='0' marginheight='0'>
+<iframe src='<%= request_widget_url(@info_request) %>' width='320' height='215' frameborder='0' marginwidth='0' marginheight='0'>
</textarea>
</p>
<p>
The widget will look like this:
<br>
-<iframe src='<%= widget_url(@info_request) %>' width='320' height='215' frameborder='0' marginwidth='0' marginheight='0'>
+<iframe src='<%= request_widget_url(@info_request) %>' width='320' height='215' frameborder='0' marginwidth='0' marginheight='0'>
</p>
diff --git a/app/views/request/widget.html.erb b/app/views/widgets/show.html.erb
index 89e151f17..4de1eb446 100644
--- a/app/views/request/widget.html.erb
+++ b/app/views/widgets/show.html.erb
@@ -75,11 +75,9 @@
</div>
</a>
<% else %>
- <a href="<%= url_for :controller => 'track', :action => 'widget_vote', :info_request_id => @info_request %>" target="_blank">
- <div id="alawidget-button">
- <%= _('I also want to know!') %>
- </div>
- </a>
+ <%= form_tag request_widget_url(@info_request), :method => 'put', :target => '_blank' do %>
+ <%= submit_tag _('I also want to know!'), :id => "alawidget-button" %>
+ <% end %>
<% end %>
<% end %>
</div>