Atom readers (Firefox/Liferea) don't like when we embed XHTML anchors

in the description. So adjust the code that creates the changeset
browser title/description to emit a XHTML and plaintext version with
the HTML and Atom output can use, respectively.

Also:

 * Split up @title into @title and @heading as elsewhere
 * Turn the username on the user / user+bbox browser into a link to the userpage
 * Say "Changesets" instead of "Recent changes". Unlike Wikipedia the changes on OSM aren't guaranteed to be recent, they're just going to be the latest
This commit is contained in:
Ævar Arnfjörð Bjarmason 2009-07-29 18:44:51 +00:00
parent e2abf1254b
commit b06b6c2ce9
5 changed files with 46 additions and 12 deletions

View file

@ -278,22 +278,38 @@ class ChangesetController < ApplicationController
bbox = params[:minlon] + ',' + params[:minlat] + ',' + params[:maxlon] + ',' + params[:maxlat]
end
user_link = bbox_link = nil
if bbox
conditions = cond_merge conditions, conditions_bbox(bbox)
bbox = BoundingBox.from_s(bbox)
bbox_link = "<a href='#{url_for(:controller => "site", :action => "index", :minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => "yes")}'>#{bbox.to_s}</a>"
end
@title = t 'changeset.list.title'
if user
user_link = "<a href='#{url_for(:controller => "user", :action => "view", :display_name => user.display_name)}'>#{user.display_name}</a>"
end
if user and bbox
@description = t 'changeset.list.description_user_bbox', :user => user.display_name, :bbox => bbox_link
@title = t 'changeset.list.title_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@heading = t 'changeset.list.heading_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@description = t 'changeset.list.description_user_bbox', :user => user_link, :bbox => bbox_link
@description_plain = t 'changeset.list.description_user_bbox', :user => user.display_name, :bbox => bbox.to_s
elsif user
@description = t 'changeset.list.description_user', :user => user.display_name
@title = t 'changeset.list.title_user', :user => user.display_name
@heading = t 'changeset.list.heading_user', :user => user.display_name
@description = t 'changeset.list.description_user', :user => user_link
@description_plain = t 'changeset.list.description_user', :user => user.display_name
elsif bbox
@title = t 'changeset.list.title_bbox', :bbox => bbox.to_s
@heading = t 'changeset.list.heading_bbox', :bbox => bbox.to_s
@description = t 'changeset.list.description_bbox', :bbox => bbox_link
@description_plain = t 'changeset.list.description_bbox', :bbox => bbox.to_s
else
@title = t 'changeset.list.title'
@heading = t 'changeset.list.heading'
@description = t 'changeset.list.description'
@description_plain = @description
end
@edit_pages, @edits = paginate(:changesets,

View file

@ -5,7 +5,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
feed.title @title
feed.subtitle :type => 'xhtml' do |xhtml|
xhtml.p @description
xhtml.p @description_plain
end
feed.updated @edits.map {|e| [e.created_at, e.closed_at].max }.max

View file

@ -1,4 +1,4 @@
<h1><%= @title %></h1>
<h1><%= @heading %></h1>
<p><%= @description %></p>
<%= render :partial => 'changeset_paging_nav' %>

View file

@ -255,10 +255,19 @@ en:
area: "Area"
list:
title: "Changesets"
description: "Recent edits"
description_user: "Recent edits by {{user}}"
description_bbox: "Recent edits within {{bbox}}"
description_user_bbox: "Recent edits by {{user}} within {{bbox}}"
title_user: "Changesets by {{user}}"
title_bbox: "Changesets within {{bbox}}"
title_user_bbox: "Changesets by {{user}} within {{bbox}}"
heading: "Changesets"
heading_user: "Changesets by {{user}}"
heading_bbox: "Changesets within {{bbox}}"
heading_user_bbox: "Changesets by {{user}} within {{bbox}}"
description: "Recent changes"
description_user: "Changesets by {{user}}"
description_bbox: "Changesets within {{bbox}}"
description_user_bbox: "Changesets by {{user}} within {{bbox}}"
diary_entry:
new:
title: New Diary Entry

View file

@ -253,10 +253,19 @@ is:
area: "Svæði"
list:
title: "Breytingarsett"
title_user: "Breytingar eftir {{user}}"
title_bbox: "Breytingar innan {{bbox}}"
title_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
heading: "Breytingarsett"
heading_user: "Breytingar eftir {{user}}"
heading_bbox: "Breytingar innan {{bbox}}"
heading_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
description: "Nýlegar breytingar"
description_user: "Nýlegar breytingar eftir {{user}}"
description_bbox: "Nýlegar breytingar innan {{bbox}}"
description_user_bbox: "Nýlegar breytingar eftir {{user}} innan {{bbox}}"
description_user: "Breytingar eftir {{user}}"
description_bbox: "Breytingar innan {{bbox}}"
description_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
diary_entry:
new:
title: "Ný bloggfærsla"