Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/pull/4552'
Browse files Browse the repository at this point in the history
  • Loading branch information
tomhughes committed Mar 1, 2024
2 parents d23763d + 60dd5ce commit bd1bf18
Show file tree
Hide file tree
Showing 16 changed files with 178 additions and 139 deletions.
5 changes: 2 additions & 3 deletions app/abilities/ability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ class Ability
include CanCan::Ability

def initialize(user)
can [:relation, :relation_history, :way, :way_history, :node, :node_history,
:changeset, :query], :browse
can [:relation, :relation_history, :way, :way_history, :node, :node_history, :query], :browse
can [:show], OldNode
can [:show], OldWay
can [:show], OldRelation
Expand All @@ -17,7 +16,7 @@ def initialize(user)
can [:token, :request_token, :access_token, :test_request], :oauth

if Settings.status != "database_offline"
can [:index, :feed], Changeset
can [:index, :feed, :show], Changeset
can :index, ChangesetComment
can [:confirm, :confirm_resend, :confirm_email], :confirmation
can [:index, :rss, :show, :comments], DiaryEntry
Expand Down
19 changes: 0 additions & 19 deletions app/controllers/browse_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,5 @@ def node_history
render :action => "not_found", :status => :not_found
end

def changeset
@type = "changeset"
@changeset = Changeset.find(params[:id])
@comments = if current_user&.moderator?
@changeset.comments.unscope(:where => :visible).includes(:author)
else
@changeset.comments.includes(:author)
end
@node_pages, @nodes = paginate(:old_nodes, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "node_page")
@way_pages, @ways = paginate(:old_ways, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "way_page")
@relation_pages, @relations = paginate(:old_relations, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "relation_page")
if @changeset.user.active? && @changeset.user.data_public?
@next_by_user = @changeset.user.changesets.where("id > ?", @changeset.id).reorder(:id => :asc).first
@prev_by_user = @changeset.user.changesets.where("id < ?", @changeset.id).reorder(:id => :desc).first
end
rescue ActiveRecord::RecordNotFound
render :action => "not_found", :status => :not_found
end

def query; end
end
23 changes: 22 additions & 1 deletion app/controllers/changesets_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ class ChangesetsController < ApplicationController

before_action :authorize_web
before_action :set_locale
before_action -> { check_database_readable(:need_api => true) }, :only => [:index, :feed]
before_action -> { check_database_readable(:need_api => true) }, :only => [:index, :feed, :show]
before_action :require_oauth, :only => :show
before_action :check_database_writable, :only => [:subscribe, :unsubscribe]

authorize_resource
Expand Down Expand Up @@ -75,6 +76,26 @@ def feed
index
end

def show
@type = "changeset"
@changeset = Changeset.find(params[:id])
@comments = if current_user&.moderator?
@changeset.comments.unscope(:where => :visible).includes(:author)
else
@changeset.comments.includes(:author)
end
@node_pages, @nodes = paginate(:old_nodes, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "node_page")
@way_pages, @ways = paginate(:old_ways, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "way_page")
@relation_pages, @relations = paginate(:old_relations, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "relation_page")
if @changeset.user.active? && @changeset.user.data_public?
@next_by_user = @changeset.user.changesets.where("id > ?", @changeset.id).reorder(:id => :asc).first
@prev_by_user = @changeset.user.changesets.where("id < ?", @changeset.id).reorder(:id => :desc).first
end
render :layout => map_layout
rescue ActiveRecord::RecordNotFound
render :template => "browse/not_found", :status => :not_found, :layout => map_layout
end

##
# subscribe to a changeset
def subscribe
Expand Down
4 changes: 2 additions & 2 deletions app/helpers/browse_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ def link_follow(object)

def type_and_paginated_count(type, pages)
if pages.page_count == 1
t "browse.changeset.#{type}",
t ".#{type.pluralize}",
:count => pages.item_count
else
t "browse.changeset.#{type}_paginated",
t ".#{type.pluralize}_paginated",
:x => pages.current_page.first_item,
:y => pages.current_page.last_item,
:count => pages.item_count
Expand Down
8 changes: 4 additions & 4 deletions app/helpers/changesets_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ def changeset_details(changeset)
else
action = :closed
time = time_ago_in_words(changeset.closed_at, :scope => :"datetime.distance_in_words_ago")
title = safe_join([t("browse.created"), ": ", l(changeset.created_at), "&#10;".html_safe, t("browse.closed"), ": ", l(changeset.closed_at)])
title = safe_join([t("changesets.show.created", :when => l(changeset.created_at)), "&#10;".html_safe, t("changesets.show.closed", :when => l(changeset.closed_at))])
datetime = changeset.closed_at.xmlschema
end

if params.key?(:display_name)
t "browse.#{action}_ago_html", :time_ago => tag.time(time, :title => title, :datetime => datetime)
t "changesets.show.#{action}_ago_html", :time_ago => tag.time(time, :title => title, :datetime => datetime)
else
t "browse.#{action}_ago_by_html", :time_ago => tag.time(time, :title => title, :datetime => datetime),
:user => changeset_user_link(changeset)
t "changesets.show.#{action}_ago_by_html", :time_ago => tag.time(time, :title => title, :datetime => datetime),
:user => changeset_user_link(changeset)
end
end

Expand Down
4 changes: 2 additions & 2 deletions app/views/changeset_comments/_comments.rss.builder
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ comments.each do |comment|
xml.item do
xml.title t(".comment", :author => comment.author.display_name, :changeset_id => comment.changeset.id.to_s)

xml.link url_for(:controller => "browse", :action => "changeset", :id => comment.changeset.id, :anchor => "c#{comment.id}", :only_path => false)
xml.guid url_for(:controller => "browse", :action => "changeset", :id => comment.changeset.id, :anchor => "c#{comment.id}", :only_path => false)
xml.link changeset_url(comment.changeset, :anchor => "c#{comment.id}")
xml.guid changeset_url(comment.changeset, :anchor => "c#{comment.id}")

xml.description do
xml.cdata! render(:partial => "comment", :object => comment, :formats => [:html])
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions app/views/changesets/index.atom.builder
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
xhtml.style "th { text-align: left } tr { vertical-align: top }"
xhtml.table do |table|
table.tr do |tr|
tr.th t("browse.created")
tr.th t(".feed.created")
tr.td l(changeset.created_at)
end
table.tr do |tr|
tr.th t("browse.closed")
tr.th t(".feed.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.th t(".feed.belongs_to")
tr.td do |td|
td.a changeset.user.display_name, :href => user_url(changeset.user, :only_path => false)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</p>
<p class="details"><%= changeset_details(@changeset) %></p>

<%= render :partial => "tag_details", :object => @changeset.tags.except("comment") %>
<%= render :partial => "browse/tag_details", :object => @changeset.tags.except("comment") %>

<div class="row">
<div class="col">
Expand Down
4 changes: 1 addition & 3 deletions app/views/dashboards/_contact.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@
<% if changeset %>
<%= t(".latest_edit_html", :ago => friendly_date_ago(changeset.created_at)) %>
<% comment = changeset.tags["comment"].to_s == "" ? t("browse.no_comment") : changeset.tags["comment"] %>
<q><%= link_to(comment,
{ :controller => "browse", :action => "changeset", :id => changeset.id },
{ :title => t("changesets.changeset.view_changeset_details") }) %></q>
<q><%= link_to comment, changeset_path(changeset), :title => t("changesets.changeset.view_changeset_details") %></q>
<% else %>
<%= t "changesets.changeset.no_edits" %>
<% end %>
Expand Down
47 changes: 25 additions & 22 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -308,12 +308,6 @@ en:
destroy:
success: "Account Deleted."
browse:
created: "Created"
closed: "Closed"
created_ago_html: "Created %{time_ago}"
closed_ago_html: "Closed %{time_ago}"
created_ago_by_html: "Created %{time_ago} by %{user}"
closed_ago_by_html: "Closed %{time_ago} by %{user}"
deleted_ago_by_html: "Deleted %{time_ago} by %{user}"
edited_ago_by_html: "Edited %{time_ago} by %{user}"
version: "Version"
Expand All @@ -333,22 +327,6 @@ en:
location: "Location:"
common_details:
coordinates_html: "%{latitude}, %{longitude}"
changeset:
title: "Changeset: %{id}"
belongs_to: "Author"
node: "Nodes (%{count})"
node_paginated: "Nodes (%{x}-%{y} of %{count})"
way: "Ways (%{count})"
way_paginated: "Ways (%{x}-%{y} of %{count})"
relation: "Relations (%{count})"
relation_paginated: "Relations (%{x}-%{y} of %{count})"
hidden_comment_by_html: "Hidden comment from %{user} %{time_ago}"
comment_by_html: "Comment from %{user} %{time_ago}"
changesetxml: "Changeset XML"
osmchangexml: "osmChange XML"
join_discussion: "Log in to join the discussion"
discussion: Discussion
still_open: "Changeset still open - discussion will open once the changeset is closed."
node:
title_html: "Node: %{name}"
history_title_html: "Node History: %{name}"
Expand Down Expand Up @@ -464,6 +442,9 @@ en:
feed:
title: "Changeset %{id}"
title_comment: "Changeset %{id} - %{comment}"
created: "Created"
closed: "Closed"
belongs_to: "Author"
subscribe:
heading: Subscribe to the following changeset discussion?
button: Subscribe to discussion
Expand All @@ -477,6 +458,28 @@ en:
title: "No such changeset"
heading: "No entry with the id: %{id}"
body: "Sorry, there is no changeset with the id %{id}. Please check your spelling, or maybe the link you clicked is wrong."
show:
title: "Changeset: %{id}"
created: "Created: %{when}"
closed: "Closed: %{when}"
created_ago_html: "Created %{time_ago}"
closed_ago_html: "Closed %{time_ago}"
created_ago_by_html: "Created %{time_ago} by %{user}"
closed_ago_by_html: "Closed %{time_ago} by %{user}"
discussion: Discussion
join_discussion: "Log in to join the discussion"
still_open: "Changeset still open - discussion will open once the changeset is closed."
comment_by_html: "Comment from %{user} %{time_ago}"
hidden_comment_by_html: "Hidden comment from %{user} %{time_ago}"
changesetxml: "Changeset XML"
osmchangexml: "osmChange XML"
paging_nav:
nodes: "Nodes (%{count})"
nodes_paginated: "Nodes (%{x}-%{y} of %{count})"
ways: "Ways (%{count})"
ways_paginated: "Ways (%{x}-%{y} of %{count})"
relations: "Relations (%{count})"
relations_paginated: "Relations (%{x}-%{y} of %{count})"
timeout:
sorry: "Sorry, the list of changesets you requested took too long to retrieve."
changeset_comments:
Expand Down
2 changes: 1 addition & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
get "/relation/:id" => "browse#relation", :id => /\d+/, :as => :relation
get "/relation/:id/history" => "browse#relation_history", :id => /\d+/, :as => :relation_history
resources :old_relations, :path => "/relation/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show
get "/changeset/:id" => "browse#changeset", :as => :changeset, :id => /\d+/
resources :changesets, :path => "changeset", :id => /\d+/, :only => :show
get "/changeset/:id/comments/feed" => "changeset_comments#index", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
resources :notes, :path => "note", :only => [:show, :new]

Expand Down
Loading

0 comments on commit bd1bf18

Please sign in to comment.