Switch to using ATOM for changeset feeds.
This commit is contained in:
parent
493fd3fa11
commit
336d40f2c5
3 changed files with 59 additions and 53 deletions
53
app/views/changeset/list.atom.builder
Normal file
53
app/views/changeset/list.atom.builder
Normal file
|
@ -0,0 +1,53 @@
|
|||
atom_feed(:language => I18n.locale, :schema_date => 2009,
|
||||
:id => url_for(params.merge({ :only_path => false })),
|
||||
:root_url => url_for(params.merge({ :only_path => false, :format => nil })),
|
||||
"xmlns:georss" => "http://www.georss.org/georss") do |feed|
|
||||
feed.title @title
|
||||
feed.subtitle @description
|
||||
feed.updated @edits.map {|e| [e.created_at, e.closed_at].max }.max
|
||||
feed.icon "http://#{SERVER_URL}/favicon.ico"
|
||||
feed.logo "http://#{SERVER_URL}/images/mag_map-rss2.0.png"
|
||||
|
||||
feed.rights :type => 'xhtml' do |xhtml|
|
||||
xhtml.a :href => "http://creativecommons.org/licenses/by-sa/2.0/" do |a|
|
||||
a.img :src => "http://#{SERVER_URL}/images/cc_button.png", :alt => "CC by-sa 2.0"
|
||||
end
|
||||
end
|
||||
|
||||
for changeset in @edits
|
||||
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"
|
||||
|
||||
entry.title t('browse.changeset.title') + " " + h(changeset.id)
|
||||
|
||||
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
|
||||
|
||||
if changeset.tags['comment']
|
||||
feed.content changeset.tags['comment']
|
||||
end
|
||||
|
||||
unless changeset.min_lat.nil?
|
||||
minlon = changeset.min_lon/GeoRecord::SCALE.to_f
|
||||
minlat = changeset.min_lat/GeoRecord::SCALE.to_f
|
||||
maxlon = changeset.max_lon/GeoRecord::SCALE.to_f
|
||||
maxlat = changeset.max_lat/GeoRecord::SCALE.to_f
|
||||
|
||||
# See http://georss.org/Encodings#Geometry
|
||||
lower_corner = "#{minlat} #{minlon}"
|
||||
upper_corner = "#{maxlat} #{maxlon}"
|
||||
|
||||
feed.georss :box, lower_corner + " " + upper_corner
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue