atom_feed(:language => I18n.locale, :schema_date => 2009, :id => url_for(params.merge(:only_path => false)), :root_url => url_for(params.merge(:action => :list, :format => nil, :only_path => false)), "xmlns:georss" => "http://www.georss.org/georss") do |feed| feed.title changeset_list_title(params, @user) feed.updated @edits.map { |e| [e.created_at, e.closed_at].max }.max feed.icon image_path("favicon.ico", :host => SERVER_URL) feed.logo image_path("mag_map-rss2.0.png", :host => SERVER_URL) feed.rights :type => "xhtml" do |xhtml| xhtml.a :href => "http://creativecommons.org/licenses/by-sa/2.0/" do |a| a.img :src => image_path("cc_button.png", :host => SERVER_URL), :alt => "CC by-sa 2.0" end end @edits.each do |changeset| feed.entry(changeset, :updated => changeset.closed_at, :id => changeset_url(changeset.id, :only_path => false)) do |entry| entry.link :rel => "alternate", :href => changeset_read_url(changeset, :only_path => false), :type => "application/osm+xml" entry.link :rel => "alternate", :href => changeset_download_url(changeset, :only_path => false), :type => "application/osmChange+xml" if !changeset.tags.empty? && changeset.tags.key?("comment") entry.title t("browse.changeset.feed.title_comment", :id => h(changeset.id), :comment => h(changeset.tags["comment"])), :type => "html" else entry.title t("browse.changeset.feed.title", :id => h(changeset.id)) end if changeset.user.data_public? entry.author do |author| author.name changeset.user.display_name author.uri url_for(:controller => "user", :action => "view", :display_name => changeset.user.display_name, :only_path => false) end end feed.content :type => "xhtml" do |xhtml| xhtml.style "th { text-align: left } tr { vertical-align: top }" xhtml.table do |table| table.tr do |tr| tr.th t("browse.created") tr.td l(changeset.created_at) end table.tr do |tr| tr.th t("browse.closed") tr.td l(changeset.closed_at) end if changeset.user.data_public? table.tr do |tr| tr.th t("browse.changeset.belongs_to") tr.td do |td| td.a h(changeset.user.display_name), :href => url_for(:controller => "user", :action => "view", :display_name => changeset.user.display_name, :only_path => false) end end end unless changeset.tags.empty? table.tr do |tr| tr.th t("browse.tag_details.tags") tr.td do |td| td.table :cellpadding => "0" do |table| changeset.tags.sort.each do |tag| table.tr do |tr| tr.td << "#{h(tag[0])} = #{auto_link(h(tag[1]))}" end end end end end end end end if changeset.has_valid_bbox? bbox = changeset.bbox.to_unscaled # See http://georss.org/Encodings#Geometry lower_corner = "#{bbox.min_lat} #{bbox.min_lon}" upper_corner = "#{bbox.max_lat} #{bbox.max_lon}" feed.georss :box, lower_corner + " " + upper_corner end end end end