diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/track_controller.rb | 24 | ||||
-rw-r--r-- | app/helpers/link_to_helper.rb | 18 | ||||
-rw-r--r-- | app/views/track/_tracking_people_and_link.rhtml | 2 |
3 files changed, 32 insertions, 12 deletions
diff --git a/app/controllers/track_controller.rb b/app/controllers/track_controller.rb index b010a5798..11975b725 100644 --- a/app/controllers/track_controller.rb +++ b/app/controllers/track_controller.rb @@ -5,7 +5,7 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: track_controller.rb,v 1.22 2008-05-27 11:16:05 francis Exp $ +# $Id: track_controller.rb,v 1.23 2008-07-18 22:22:58 francis Exp $ class TrackController < ApplicationController @@ -13,6 +13,9 @@ class TrackController < ApplicationController def track_request @info_request = InfoRequest.find_by_url_title(params[:url_title]) @track_thing = TrackThing.create_track_for_request(@info_request) + + return atom_feed_internal if params[:feed] == 'feed' + ret = self.track_set if ret if @track_thing.track_medium == 'feed' @@ -36,6 +39,8 @@ class TrackController < ApplicationController raise "unknown request list view " + @view.to_s end + return atom_feed_internal if params[:feed] == 'feed' + ret = self.track_set if ret if @track_thing.track_medium == 'feed' @@ -69,6 +74,9 @@ class TrackController < ApplicationController def track_public_body @public_body = PublicBody.find_by_url_name(params[:url_name]) @track_thing = TrackThing.create_track_for_public_body(@public_body) + + return atom_feed_internal if params[:feed] == 'feed' + ret = self.track_set if ret if @track_thing.track_medium == 'feed' @@ -84,6 +92,9 @@ class TrackController < ApplicationController def track_user @track_user = User.find_by_url_name(params[:url_name]) @track_thing = TrackThing.create_track_for_user(@track_user) + + return atom_feed_internal if params[:feed] == 'feed' + ret = self.track_set if ret if @track_thing.track_medium == 'feed' @@ -101,8 +112,10 @@ class TrackController < ApplicationController # join just to get / and . to work in a query. query_array = params[:query_array] @query = query_array.join("/") - @track_thing = TrackThing.create_track_for_search_query(@query) + + return atom_feed_internal if params[:feed] + ret = self.track_set if ret if @track_thing.track_medium == 'feed' @@ -150,8 +163,13 @@ class TrackController < ApplicationController # Atom feed (like RSS) for the track def atom_feed @track_thing = TrackThing.find(params[:track_id].to_i) + atom_feed_internal + end + def atom_feed_internal @xapian_object = perform_search([InfoRequestEvent], @track_thing.track_query, @track_thing.params[:feed_sortby], nil, 25, 1) - respond_to :atom + respond_to do |format| + format.atom { render :template => 'track/atom_feed' } + end end # Change or delete a track diff --git a/app/helpers/link_to_helper.rb b/app/helpers/link_to_helper.rb index 1603e9ad3..d78ca26d7 100644 --- a/app/helpers/link_to_helper.rb +++ b/app/helpers/link_to_helper.rb @@ -5,7 +5,7 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: link_to_helper.rb,v 1.33 2008-07-09 07:23:32 francis Exp $ +# $Id: link_to_helper.rb,v 1.34 2008-07-18 22:22:58 francis Exp $ module LinkToHelper @@ -84,20 +84,20 @@ module LinkToHelper link_to h(user.name), user_admin_url(user) end - # Teacks - def do_track_url(track_thing) + # Tracks. feed can be 'track' or 'feed' + def do_track_url(track_thing, feed = 'track') if track_thing.track_type == 'request_updates' - track_request_url(:url_title => track_thing.info_request.url_title) + track_request_url(:url_title => track_thing.info_request.url_title, :feed => feed) elsif track_thing.track_type == 'all_new_requests' - track_list_url(:view => nil) + track_list_url(:view => nil, :feed => feed) elsif track_thing.track_type == 'all_successful_requests' - track_list_url(:view => 'successful') + track_list_url(:view => 'successful', :feed => feed) elsif track_thing.track_type == 'public_body_updates' - track_public_body_url(:url_name => track_thing.public_body.url_name) + track_public_body_url(:url_name => track_thing.public_body.url_name, :feed => feed) elsif track_thing.track_type == 'user_updates' - track_user_url(:url_name => track_thing.tracked_user.url_name) + track_user_url(:url_name => track_thing.tracked_user.url_name, :feed => feed) elsif track_thing.track_type == 'search_query' - track_search_url(track_thing.track_query) + track_search_url(track_thing.track_query, :feed => feed) else raise "unknown tracking type " + track_thing.track_type end diff --git a/app/views/track/_tracking_people_and_link.rhtml b/app/views/track/_tracking_people_and_link.rhtml index c33620f67..fb59ca85c 100644 --- a/app/views/track/_tracking_people_and_link.rhtml +++ b/app/views/track/_tracking_people_and_link.rhtml @@ -40,4 +40,6 @@ <% end %> <% end %> +<!-- <p><%= link_to '<img src="/images/feed-14.png" alt="" class="rss"> RSS feed', do_track_url(track_thing, 'feed') %></p> --> + |