Diff
Modified: branches/event_logging/app/controllers/home_controller.rb (1954 => 1955)
--- branches/event_logging/app/controllers/home_controller.rb 2008-11-12 21:13:50 UTC (rev 1954)
+++ branches/event_logging/app/controllers/home_controller.rb 2008-11-13 01:26:15 UTC (rev 1955)
@@ -6,6 +6,7 @@
class HomeController < ApplicationController
before_filter :find_latest_public_updated_items_rss, : [:updated_items_rss]
+ before_filter :find_latest_tags_rss, : [:latest_tags_rss]
# GET /home
def index
@@ -38,7 +39,15 @@
end
end
+ def latest_tags_rss
+ respond_to do |format|
+ format.rss do
+ render :action ="" 'latest_tags.rxml', :layout => false
+ end
+ end
+ end
+
protected
def find_latest_public_updated_items_rss
@@ -55,4 +64,16 @@
end
end
+ def find_latest_tags_rss
+ # Only carry out if request is for RSS
+ if params[:format] and params[:format].downcase == 'rss'
+ @latest_tags_rss = {}
+ taggings = Tagging.latest(DEFAULT_RSS_ENTRY_COUNT)
+ taggings.each do |t|
+ # tagged item should be authorized for anonymous users to view
+ @latest_tags_rss[t] = t.taggable if t.taggable.authorized?("show", nil)
+ end
+ end
+ end
+
end
Modified: branches/event_logging/app/views/home/_latest_tags.rhtml (1954 => 1955)
--- branches/event_logging/app/views/home/_latest_tags.rhtml 2008-11-12 21:13:50 UTC (rev 1954)
+++ branches/event_logging/app/views/home/_latest_tags.rhtml 2008-11-13 01:26:15 UTC (rev 1955)
@@ -3,7 +3,7 @@
<div class="box">
<b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b>
<div class="box_title">
- Latest Tags
+ <%= feed_icon_tag("Latest Tags on myExperiment", home_latest_tags_rss_url) -%> Latest Tags
</div>
<div class="content">
<% unless (taggings = Tagging.latest(20)).empty? %>
Added: branches/event_logging/app/views/home/latest_tags.rxml (0 => 1955)
--- branches/event_logging/app/views/home/latest_tags.rxml (rev 0)
+++ branches/event_logging/app/views/home/latest_tags.rxml 2008-11-13 01:26:15 UTC (rev 1955)
@@ -0,0 +1,12 @@
+xml.rss "version" => "2.0", 'xmlns:opensearch' => "http://a9.com/-/spec/opensearch/1.1/", 'xmlns:atom' => "http://www.w3.org/2005/Atom" do
+ xml.channel do
+ # this RSS feed will show ALL shared items for this group that are visible to anonymous users
+ xml.title "myExperiment.org - Latest Tags"
+ xml.link url_for(:controller => 'home', :action ="" 'index')
+ xml.language "en-us"
+ xml.ttl "60"
+ xml.tag! "atom:link", :rel => 'search', :type => 'application/opensearchdescription+xml', :href ="" "http://#{request.host_with_port}/open_search.xml"
+ xml.description "RSS feed listing the most recently added tags on myExperiment.org"
+ render(:partial => "layouts/tagging", :collection => @latest_tags_rss, :locals => { :xm => xml })
+ end
+end
\ No newline at end of file
Added: branches/event_logging/app/views/layouts/_tagging.rxml (0 => 1955)
--- branches/event_logging/app/views/layouts/_tagging.rxml (rev 0)
+++ branches/event_logging/app/views/layouts/_tagging.rxml 2008-11-13 01:26:15 UTC (rev 1955)
@@ -0,0 +1,21 @@
+xm.item do
+ tagging_instance = tagging[0]
+ tag_instance = tagging_instance.tag
+ processed_tag_link = link_to_tag(tag_instance)
+ tag_maker = User.find(tagging_instance.user_id)
+
+ tagged_item = tagging[1]
+ item_name = contributable_name_from_instance(tagged_item)
+ item_type = visible_name(tagged_item)
+ item_icon = image_tag(method_to_icon_filename(tagged_item.class.to_s.downcase), :style => "vertical-align: middle;", :alt => item_type)
+
+ xm.title "\"#{h(tag_instance.name)}\" on \"#{h(item_name)}\" #{visible_name(tagged_item)} by #{h(tag_maker.name)}"
+ xm.description white_list("#{processed_tag_link} on #{item_icon}#{link_to item_name, contributable_url(tagging_instance.taggable_id, tagging_instance.taggable_type)} by #{name(tag_maker)}")
+
+ # next line should be enabled when files become versioned
+ # xm.version blob.current_version
+ xm.pubDate tagging_instance.created_at.rfc822
+ xm.guid [request.host_with_port, "tagging", tagging_instance.id.to_s].join(":"), "isPermaLink" => "false"
+ xm.author h(tag_maker.name)
+ xm.link tag_url(tag_instance)
+end
\ No newline at end of file
Property changes on: branches/event_logging/app/views/layouts/_tagging.rxml
___________________________________________________________________
Added: svn:mergeinfo
Modified: branches/event_logging/config/environment_private.rb.pre (1954 => 1955)
--- branches/event_logging/config/environment_private.rb.pre 2008-11-12 21:13:50 UTC (rev 1954)
+++ branches/event_logging/config/environment_private.rb.pre 2008-11-13 01:26:15 UTC (rev 1955)
@@ -110,6 +110,8 @@
# =========== Settings for RSS feeds ===========
+DEFAULT_RSS_ENTRY_COUNT = 20
+
# number of entries to show in "latest workflows|files|packs" feeds
LATEST_CONTRIBUTABLES_RSS_ENTRY_COUNT = 30
Modified: branches/event_logging/config/routes.rb (1954 => 1955)
--- branches/event_logging/config/routes.rb 2008-11-12 21:13:50 UTC (rev 1954)
+++ branches/event_logging/config/routes.rb 2008-11-13 01:26:15 UTC (rev 1955)
@@ -238,6 +238,7 @@
map.home_public_news_rss 'home/public_news.rss', :controller => 'home', :action ="" 'public_news_rss', :format => 'rss'
map.home_updated_items_rss 'home/updated_items.rss', :controller => 'home', :action ="" 'updated_items_rss', :format => 'rss'
map.home_latest_groups_rss 'home/latest_groups.rss', :controller => 'home', :action ="" 'latest_groups_rss', :format => 'rss'
+ map.home_latest_tags_rss 'home/latest_tags.rss', :controller => 'home', :action ="" 'latest_tags_rss', :format => 'rss'
# Install the default route as the lowest priority.
map.connect ':controller/:action/:id'