From: Andy Allan Date: Wed, 20 Mar 2024 15:45:10 +0000 (+0000) Subject: Merge pull request #4574 from urbalazs/wiki-prefixes-240313 X-Git-Tag: live~870 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/d115a1a7d7c7660696328ac3b10e159156d34489?hp=704d835ac4adf2fc39152920304ad44518e19fcd Merge pull request #4574 from urbalazs/wiki-prefixes-240313 Add more wiki prefixes --- diff --git a/Gemfile.lock b/Gemfile.lock index b8d62ae73..958f4579b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -65,7 +65,7 @@ GEM activemodel (= 7.1.3.2) activesupport (= 7.1.3.2) timeout (>= 0.4.0) - activerecord-import (1.5.1) + activerecord-import (1.6.0) activerecord (>= 4.2) activestorage (7.1.3.2) actionpack (= 7.1.3.2) @@ -95,16 +95,16 @@ GEM autoprefixer-rails (10.4.16.0) execjs (~> 2) aws-eventstream (1.3.0) - aws-partitions (1.896.0) - aws-sdk-core (3.191.3) + aws-partitions (1.899.0) + aws-sdk-core (3.191.4) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.77.0) + aws-sdk-kms (1.78.0) aws-sdk-core (~> 3, >= 3.191.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.143.0) + aws-sdk-s3 (1.146.0) aws-sdk-core (~> 3, >= 3.191.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.8) @@ -115,14 +115,14 @@ GEM erubi (>= 1.0.0) rack (>= 0.9.0) rouge (>= 1.0.0) - better_html (2.0.2) + better_html (2.1.1) actionview (>= 6.0) activesupport (>= 6.0) ast (~> 2.0) erubi (~> 1.4) parser (>= 2.4) smart_properties - bigdecimal (3.1.6) + bigdecimal (3.1.7) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) bootsnap (1.18.3) @@ -153,7 +153,7 @@ GEM regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) concurrent-ruby (1.2.3) - config (5.3.0) + config (5.4.0) deep_merge (~> 1.2, >= 1.2.1) connection_pool (2.4.1) crack (1.0.0) @@ -239,8 +239,8 @@ GEM faraday-net_http (3.1.0) net-http ffi (1.16.3) - ffi-compiler (1.0.1) - ffi (>= 1.0.0) + ffi-compiler (1.3.2) + ffi (>= 1.15.5) rake ffi-libarchive (1.1.14) ffi (~> 1.0) @@ -331,7 +331,7 @@ GEM mini_portile2 (2.8.5) mini_racer (0.8.0) libv8-node (~> 18.16.0.0) - minitest (5.22.2) + minitest (5.22.3) minitest-focus (1.4.0) minitest (>= 4, < 6) msgpack (1.7.2) @@ -350,7 +350,7 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.7.0) - nokogiri (1.16.2) + nokogiri (1.16.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) oauth (0.4.7) @@ -456,7 +456,7 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - rails-i18n (7.0.8) + rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) railties (7.1.3.2) @@ -482,7 +482,7 @@ GEM rexml (3.2.6) rinku (2.0.6) rotp (6.3.0) - rouge (4.2.0) + rouge (4.2.1) rtlcss (0.2.1) mini_racer (>= 0.6.3) rubocop (1.62.1) diff --git a/app/abilities/ability.rb b/app/abilities/ability.rb index ef4c0a778..b43cc6b29 100644 --- a/app/abilities/ability.rb +++ b/app/abilities/ability.rb @@ -4,10 +4,9 @@ class Ability include CanCan::Ability def initialize(user) - can [:relation, :relation_history, :way, :way_history, :node, :node_history, :query], :browse - can [:show], OldNode - can [:show], OldWay - can [:show], OldRelation + can :query, :browse + can :show, [Node, Way, Relation] + can [:index, :show], [OldNode, OldWay, OldRelation] can [:show, :new], Note can :search, :direction can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :communities, :preview, :copyright, :key, :id], :site diff --git a/app/abilities/api_ability.rb b/app/abilities/api_ability.rb index 8ee280b3a..e20b849d1 100644 --- a/app/abilities/api_ability.rb +++ b/app/abilities/api_ability.rb @@ -29,20 +29,14 @@ class ApiAbility if user.terms_agreed? can [:create, :update, :upload, :close, :subscribe, :unsubscribe], Changeset can :create, ChangesetComment - can [:create, :update, :delete], Node - can [:create, :update, :delete], Way - can [:create, :update, :delete], Relation + can [:create, :update, :delete], [Node, Way, Relation] end if user.moderator? can [:destroy, :restore], ChangesetComment can :destroy, Note - if user.terms_agreed? - can :redact, OldNode - can :redact, OldWay - can :redact, OldRelation - end + can :redact, [OldNode, OldWay, OldRelation] if user.terms_agreed? end end end diff --git a/app/abilities/api_capability.rb b/app/abilities/api_capability.rb index 95d7ab9ab..f27dd2e63 100644 --- a/app/abilities/api_capability.rb +++ b/app/abilities/api_capability.rb @@ -23,19 +23,13 @@ class ApiCapability if user.terms_agreed? can [:create, :update, :upload, :close, :subscribe, :unsubscribe], Changeset if scope?(token, :write_api) can :create, ChangesetComment if scope?(token, :write_api) - can [:create, :update, :delete], Node if scope?(token, :write_api) - can [:create, :update, :delete], Way if scope?(token, :write_api) - can [:create, :update, :delete], Relation if scope?(token, :write_api) + can [:create, :update, :delete], [Node, Way, Relation] if scope?(token, :write_api) end if user.moderator? can [:destroy, :restore], ChangesetComment if scope?(token, :write_api) can :destroy, Note if scope?(token, :write_notes) - if user&.terms_agreed? - can :redact, OldNode if scope?(token, :write_api) || scope?(token, :write_redactions) - can :redact, OldWay if scope?(token, :write_api) || scope?(token, :write_redactions) - can :redact, OldRelation if scope?(token, :write_api) || scope?(token, :write_redactions) - end + can :redact, [OldNode, OldWay, OldRelation] if user&.terms_agreed? && (scope?(token, :write_api) || scope?(token, :write_redactions)) end end end diff --git a/app/assets/images/microsoft.svg b/app/assets/images/microsoft.svg index fdc0cbd76..1f7397648 100644 --- a/app/assets/images/microsoft.svg +++ b/app/assets/images/microsoft.svg @@ -1 +1 @@ - \ No newline at end of file +MS-SymbolLockup \ No newline at end of file diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb index db291f6eb..a3e65a1b7 100644 --- a/app/controllers/browse_controller.rb +++ b/app/controllers/browse_controller.rb @@ -6,63 +6,8 @@ class BrowseController < ApplicationController before_action -> { check_database_readable(:need_api => true) } before_action :require_oauth before_action :update_totp, :only => [:query] - before_action :require_moderator_for_unredacted_history, :only => [:relation_history, :way_history, :node_history] around_action :web_timeout authorize_resource :class => false - def relation - @type = "relation" - @feature = Relation.preload(:relation_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :relation_members => :member).find(params[:id]) - render "feature" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - - def relation_history - @type = "relation" - @feature = Relation.preload(:relation_tags, :old_relations => [:old_tags, { :changeset => [:changeset_tags, :user], :old_members => :member }]).find(params[:id]) - render "history" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - - def way - @type = "way" - @feature = Way.preload(:way_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :nodes => [:node_tags, { :ways => :way_tags }]).find(params[:id]) - render "feature" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - - def way_history - @type = "way" - @feature = Way.preload(:way_tags, :old_ways => [:old_tags, { :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] } }]).find(params[:id]) - render "history" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - - def node - @type = "node" - @feature = Node.preload(:node_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :ways => :way_tags).find(params[:id]) - render "feature" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - - def node_history - @type = "node" - @feature = Node.preload(:node_tags, :old_nodes => [:old_tags, { :changeset => [:changeset_tags, :user] }]).find(params[:id]) - render "history" - rescue ActiveRecord::RecordNotFound - render :action => "not_found", :status => :not_found - end - def query; end - - private - - def require_moderator_for_unredacted_history - deny_access(nil) if params[:show_redactions] && !current_user&.moderator? - end end diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb new file mode 100644 index 000000000..a05fa8cd2 --- /dev/null +++ b/app/controllers/nodes_controller.rb @@ -0,0 +1,20 @@ +class NodesController < ApplicationController + layout :map_layout + + before_action :authorize_web + before_action :set_locale + before_action -> { check_database_readable(:need_api => true) } + before_action :require_oauth + + authorize_resource + + around_action :web_timeout + + def show + @type = "node" + @feature = Node.preload(:node_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :ways => :way_tags).find(params[:id]) + render "browse/feature" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end +end diff --git a/app/controllers/old_nodes_controller.rb b/app/controllers/old_nodes_controller.rb index 9ef2ef881..596b57967 100644 --- a/app/controllers/old_nodes_controller.rb +++ b/app/controllers/old_nodes_controller.rb @@ -11,6 +11,14 @@ class OldNodesController < ApplicationController before_action :require_moderator_for_unredacted_history around_action :web_timeout + def index + @type = "node" + @feature = Node.preload(:node_tags, :old_nodes => [:old_tags, { :changeset => [:changeset_tags, :user] }]).find(params[:id]) + render "browse/history" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end + def show @type = "node" @feature = OldNode.preload(:old_tags, :changeset => [:changeset_tags, :user]).find([params[:id], params[:version]]) diff --git a/app/controllers/old_relations_controller.rb b/app/controllers/old_relations_controller.rb index b9e151a4f..d57cf25fe 100644 --- a/app/controllers/old_relations_controller.rb +++ b/app/controllers/old_relations_controller.rb @@ -11,6 +11,14 @@ class OldRelationsController < ApplicationController before_action :require_moderator_for_unredacted_history around_action :web_timeout + def index + @type = "relation" + @feature = Relation.preload(:relation_tags, :old_relations => [:old_tags, { :changeset => [:changeset_tags, :user], :old_members => :member }]).find(params[:id]) + render "browse/history" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end + def show @type = "relation" @feature = OldRelation.preload(:old_tags, :changeset => [:changeset_tags, :user], :old_members => :member).find([params[:id], params[:version]]) diff --git a/app/controllers/old_ways_controller.rb b/app/controllers/old_ways_controller.rb index dd3c3279f..de60de317 100644 --- a/app/controllers/old_ways_controller.rb +++ b/app/controllers/old_ways_controller.rb @@ -11,6 +11,14 @@ class OldWaysController < ApplicationController before_action :require_moderator_for_unredacted_history around_action :web_timeout + def index + @type = "way" + @feature = Way.preload(:way_tags, :old_ways => [:old_tags, { :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] } }]).find(params[:id]) + render "browse/history" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end + def show @type = "way" @feature = OldWay.preload(:old_tags, :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] }).find([params[:id], params[:version]]) diff --git a/app/controllers/relations_controller.rb b/app/controllers/relations_controller.rb new file mode 100644 index 000000000..8aeefd6cc --- /dev/null +++ b/app/controllers/relations_controller.rb @@ -0,0 +1,20 @@ +class RelationsController < ApplicationController + layout :map_layout + + before_action :authorize_web + before_action :set_locale + before_action -> { check_database_readable(:need_api => true) } + before_action :require_oauth + + authorize_resource + + around_action :web_timeout + + def show + @type = "relation" + @feature = Relation.preload(:relation_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :relation_members => :member).find(params[:id]) + render "browse/feature" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end +end diff --git a/app/controllers/ways_controller.rb b/app/controllers/ways_controller.rb new file mode 100644 index 000000000..d4abe2db7 --- /dev/null +++ b/app/controllers/ways_controller.rb @@ -0,0 +1,20 @@ +class WaysController < ApplicationController + layout :map_layout + + before_action :authorize_web + before_action :set_locale + before_action -> { check_database_readable(:need_api => true) } + before_action :require_oauth + + authorize_resource + + around_action :web_timeout + + def show + @type = "way" + @feature = Way.preload(:way_tags, :containing_relation_members, :changeset => [:changeset_tags, :user], :nodes => [:node_tags, { :ways => :way_tags }]).find(params[:id]) + render "browse/feature" + rescue ActiveRecord::RecordNotFound + render "browse/not_found", :status => :not_found + end +end diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index 53e980fdc..d3e8f10f9 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,6 +1,6 @@ module BrowseHelper - def element_single_current_link(type, object, url) - link_to url, { :class => element_class(type, object), :title => element_title(object), :rel => (link_follow(object) if type == "node") } do + def element_single_current_link(type, object) + link_to object, { :class => element_class(type, object), :title => element_title(object), :rel => (link_follow(object) if type == "node") } do element_strikethrough object do printable_element_name object end diff --git a/app/helpers/changesets_helper.rb b/app/helpers/changesets_helper.rb index dbee08c50..970522160 100644 --- a/app/helpers/changesets_helper.rb +++ b/app/helpers/changesets_helper.rb @@ -3,7 +3,7 @@ module ChangesetsHelper if changeset.user.status == "deleted" t("users.no_such_user.deleted") elsif changeset.user.data_public? - link_to(changeset.user.display_name, user_path(changeset.user)) + link_to changeset.user.display_name, changeset.user else t("browse.anonymous") end diff --git a/app/helpers/geocoder_helper.rb b/app/helpers/geocoder_helper.rb index f819c1ac5..882f2c835 100644 --- a/app/helpers/geocoder_helper.rb +++ b/app/helpers/geocoder_helper.rb @@ -3,7 +3,7 @@ module GeocoderHelper html_options = { :class => "set_position stretched-link", :data => {} } url = if result[:type] && result[:id] - url_for(:controller => :browse, :action => result[:type], :id => result[:id]) + url_for(:controller => result[:type].pluralize, :action => :show, :id => result[:id]) elsif result[:min_lon] && result[:min_lat] && result[:max_lon] && result[:max_lat] "/?bbox=#{result[:min_lon]},#{result[:min_lat]},#{result[:max_lon]},#{result[:max_lat]}" else diff --git a/app/helpers/user_helper.rb b/app/helpers/user_helper.rb index 3554980b8..e1ab423a1 100644 --- a/app/helpers/user_helper.rb +++ b/app/helpers/user_helper.rb @@ -58,7 +58,10 @@ module UserHelper def auth_button(name, provider, options = {}) link_to( - image_tag("#{name}.svg", :alt => t("sessions.new.auth_providers.#{name}.alt"), :class => "rounded-3"), + image_tag("#{name}.svg", + :alt => t("sessions.new.auth_providers.#{name}.alt"), + :class => "rounded-3", + :size => "36"), auth_path(options.merge(:provider => provider)), :method => :post, :class => "auth_button", diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 33abc66f9..86e77703b 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -177,7 +177,7 @@ class UserMailer < ApplicationMailer @changeset_comment = comment.changeset.tags["comment"].presence @time = comment.created_at @changeset_author = comment.changeset.user.display_name - @unsubscribe_url = changeset_unsubscribe_url(comment.changeset) + @unsubscribe_url = unsubscribe_changeset_url(comment.changeset) @author = @commenter subject = if @owner @@ -193,7 +193,7 @@ class UserMailer < ApplicationMailer set_list_headers( "#{comment.changeset.id}.changeset.www.openstreetmap.org", t(".description", :id => comment.changeset.id), - :subscribe => changeset_subscribe_url(comment.changeset), + :subscribe => subscribe_changeset_url(comment.changeset), :unsubscribe => @unsubscribe_url, :archive => @changeset_url ) diff --git a/app/views/browse/_containing_relation.html.erb b/app/views/browse/_containing_relation.html.erb index 2547ff7aa..febb3e129 100644 --- a/app/views/browse/_containing_relation.html.erb +++ b/app/views/browse/_containing_relation.html.erb @@ -1,4 +1,4 @@ -
  • <%= linked_name = link_to printable_element_name(containing_relation.relation), :action => "relation", :id => containing_relation.relation.id.to_s +
  • <%= linked_name = link_to printable_element_name(containing_relation.relation), containing_relation.relation if containing_relation.member_role.blank? t ".entry_html", :relation_name => linked_name else diff --git a/app/views/browse/_node.html.erb b/app/views/browse/_node.html.erb index e395a4283..4e2ae0343 100644 --- a/app/views/browse/_node.html.erb +++ b/app/views/browse/_node.html.erb @@ -17,7 +17,7 @@ <%= t "browse.part_of_ways", :count => node.ways.uniq.count %> diff --git a/app/views/browse/_relation.html.erb b/app/views/browse/_relation.html.erb index 922e642cc..a987fe4d8 100644 --- a/app/views/browse/_relation.html.erb +++ b/app/views/browse/_relation.html.erb @@ -15,7 +15,7 @@
    > <%= t "browse.part_of_relations", :count => relation.containing_relation_members.uniq.count %>
      - <%= render :partial => "containing_relation", :collection => relation.containing_relation_members.uniq %> + <%= render :partial => "browse/containing_relation", :collection => relation.containing_relation_members.uniq %>
    <% end %> diff --git a/app/views/browse/_relation_member.html.erb b/app/views/browse/_relation_member.html.erb index 16842f569..d122f0edf 100644 --- a/app/views/browse/_relation_member.html.erb +++ b/app/views/browse/_relation_member.html.erb @@ -1,4 +1,4 @@ -<% linked_name = link_to printable_element_name(relation_member.member), { :controller => :browse, :action => relation_member.member_type.downcase, :id => relation_member.member_id.to_s }, { :rel => link_follow(relation_member.member) } +<% linked_name = link_to printable_element_name(relation_member.member), relation_member.member, { :rel => link_follow(relation_member.member) } type_str = t ".type.#{relation_member.member_type.downcase}" %> <%= element_list_item relation_member.member_type.downcase, relation_member.member do %> <%= if relation_member.member_role.blank? diff --git a/app/views/browse/_version_actions.erb b/app/views/browse/_version_actions.erb index 3d4e4be13..94e18e457 100644 --- a/app/views/browse/_version_actions.erb +++ b/app/views/browse/_version_actions.erb @@ -1,5 +1,5 @@
    - <%= link_to t("browse.view_details"), :controller => :browse, :action => @type %> + <%= link_to t("browse.view_details"), :controller => @type.pluralize, :action => :show %> <% if !@feature.redacted? %> · <%= link_to t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => :show %> @@ -21,7 +21,7 @@ <% end %> · <% end %> - <%= link_to t("browse.view_history"), :controller => :browse, :action => "#{@type}_history" %> + <%= link_to t("browse.view_history"), :action => :index %> <% unless @feature.latest_version? %> · <%= link_to({ :version => @feature.version + 1 }, { :class => "icon-link" }) do %> diff --git a/app/views/browse/_way.html.erb b/app/views/browse/_way.html.erb index d93321a0f..d015438fe 100644 --- a/app/views/browse/_way.html.erb +++ b/app/views/browse/_way.html.erb @@ -15,7 +15,7 @@
    > <%= t "browse.part_of_relations", :count => way.containing_relation_members.uniq.count %>
      - <%= render :partial => "containing_relation", :collection => way.containing_relation_members.uniq %> + <%= render :partial => "browse/containing_relation", :collection => way.containing_relation_members.uniq %>
    <% end %> @@ -27,12 +27,12 @@
      <% way.way_nodes.each do |wn| %>
    • - <%= element_single_current_link "node", wn.node, node_path(wn.node) %> + <%= element_single_current_link "node", wn.node %> <% related_ways = wn.node.ways.reject { |w| w.id == wn.way_id } %> <% if related_ways.size > 0 then %> (<%= t ".also_part_of_html", :count => related_ways.size, - :related_ways => to_sentence(related_ways.map { |w| element_single_current_link "way", w, way_path(w) }) %>) + :related_ways => to_sentence(related_ways.map { |w| element_single_current_link "way", w }) %>) <% end %>
    • <% end %> diff --git a/app/views/browse/feature.html.erb b/app/views/browse/feature.html.erb index 9ee9f807f..29f911f79 100644 --- a/app/views/browse/feature.html.erb +++ b/app/views/browse/feature.html.erb @@ -2,7 +2,7 @@ <%= render "sidebar_header", :title => t("browse.#{@type}.title_html", :name => printable_element_name(@feature)) %> -<%= render :partial => @type, :object => @feature %> +<%= render :partial => "browse/#{@type}", :object => @feature %> <% if @feature.visible? %>
      @@ -17,10 +17,10 @@ <% end %> · <% end %> - <%= link_to t("browse.view_history"), :action => "#{@type}_history" %> + <%= link_to t("browse.view_history"), :controller => "old_#{@type.pluralize}" %> <% if current_user&.moderator? %> · - <%= link_to(t("browse.view_unredacted_history"), :action => "#{@type}_history", :params => { :show_redactions => true }) %> + <%= link_to(t("browse.view_unredacted_history"), :controller => "old_#{@type.pluralize}", :params => { :show_redactions => true }) %> <% end %> <% if @feature.version > 1 %> · diff --git a/app/views/browse/history.html.erb b/app/views/browse/history.html.erb index b557c339b..1595df021 100644 --- a/app/views/browse/history.html.erb +++ b/app/views/browse/history.html.erb @@ -2,17 +2,17 @@ <%= render "sidebar_header", :title => t("browse.#{@type}.history_title_html", :name => printable_element_name(@feature)) %> -<%= render :partial => @type, :collection => @feature.send(:"old_#{@type}s").reverse %> +<%= render :partial => "browse/#{@type}", :collection => @feature.send(:"old_#{@type}s").reverse %>
      - <%= link_to(t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => "history") %> + <%= link_to t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => "history" %> · - <%= link_to(t("browse.view_details"), :action => @type) %> + <%= link_to t("browse.view_details"), :controller => @type.pluralize, :action => :show %> <% if params[:show_redactions] %> · - <%= link_to(t("browse.view_history"), :action => "#{@type}_history") %> + <%= link_to t("browse.view_history") %> <% elsif current_user&.moderator? %> · - <%= link_to(t("browse.view_unredacted_history"), :action => "#{@type}_history", :params => { :show_redactions => true }) %> + <%= link_to t("browse.view_unredacted_history"), :params => { :show_redactions => true } %> <% end %>
      diff --git a/app/views/changesets/_heading.html.erb b/app/views/changesets/_heading.html.erb index 33bc71696..a125a135a 100644 --- a/app/views/changesets/_heading.html.erb +++ b/app/views/changesets/_heading.html.erb @@ -5,11 +5,11 @@ <%= user_thumbnail changeset.user %>
      -

      <%= link_to title, changeset_path(changeset) %>

      +

      <%= link_to title, changeset %>

    - <%= t(".created_by_html", :link_user => link_to(changeset.user.display_name, user_path(changeset.user)), :created => l(changeset.created_at, :format => :blog)) %> + <%= t(".created_by_html", :link_user => link_to(changeset.user.display_name, changeset.user), :created => l(changeset.created_at, :format => :blog)) %> diff --git a/app/views/changesets/show.html.erb b/app/views/changesets/show.html.erb index fdaf7654c..3ba3968f7 100644 --- a/app/views/changesets/show.html.erb +++ b/app/views/changesets/show.html.erb @@ -34,7 +34,7 @@ <%= t comment.visible ? ".comment_by_html" : ".hidden_comment_by_html", :time_ago => friendly_date_ago(comment.created_at), - :user => link_to(comment.author.display_name, user_path(comment.author)) %> + :user => link_to(comment.author.display_name, comment.author) %> <% if current_user&.moderator? %> — <%= tag.button t("javascripts.changesets.show.#{comment.visible ? 'hide' : 'unhide'}_comment"), @@ -125,7 +125,7 @@ <% if @next_by_user || @prev_by_user %>
    <% if @prev_by_user %> - <%= link_to({ :id => @prev_by_user.id }, :class => "icon-link") do %> + <%= link_to @prev_by_user, :class => "icon-link" do %> <%= previous_page_svg_tag :height => 11 %> <%= @prev_by_user.id %> <% end %> @@ -135,7 +135,7 @@ link_to tag.bdi(user), :controller => "changesets", :action => "index", :display_name => user %> <% if @next_by_user %> · - <%= link_to({ :id => @next_by_user.id }, :class => "icon-link") do %> + <%= link_to @next_by_user, :class => "icon-link" do %> <%= @next_by_user.id %> <%= next_page_svg_tag :height => 11 %> <% end %> diff --git a/app/views/dashboards/_contact.html.erb b/app/views/dashboards/_contact.html.erb index b789f721b..b28a28a26 100644 --- a/app/views/dashboards/_contact.html.erb +++ b/app/views/dashboards/_contact.html.erb @@ -10,7 +10,7 @@

    - <%= link_to contact.display_name, user_path(contact) %> + <%= link_to contact.display_name, contact %> <% if @user.home_location? and contact.home_location? %> <% distance = @user.distance(contact) %> <% if distance < 1 %> @@ -25,7 +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"] %> - <%= link_to comment, changeset_path(changeset), :title => t("changesets.changeset.view_changeset_details") %> + <%= link_to comment, changeset, :title => t("changesets.changeset.view_changeset_details") %> <% else %> <%= t "changesets.changeset.no_edits" %> <% end %> diff --git a/app/views/dashboards/_popup.html.erb b/app/views/dashboards/_popup.html.erb index c4f8b627a..de90a117b 100644 --- a/app/views/dashboards/_popup.html.erb +++ b/app/views/dashboards/_popup.html.erb @@ -4,6 +4,6 @@

    <%= t(".#{type}") %>

    -

    <%= link_to popup.display_name, user_path(popup) %>

    +

    <%= link_to popup.display_name, popup %>

    diff --git a/app/views/issues/_comments.html.erb b/app/views/issues/_comments.html.erb index 7776d9ee3..9200b4cec 100644 --- a/app/views/issues/_comments.html.erb +++ b/app/views/issues/_comments.html.erb @@ -2,11 +2,11 @@ <% comments.each do |comment| %>
    - <%= link_to user_thumbnail(comment.user), user_path(comment.user) %> + <%= link_to user_thumbnail(comment.user), comment.user %>

    - <%= t ".comment_from_html", :user_link => link_to(comment.user.display_name, user_path(comment.user)), + <%= t ".comment_from_html", :user_link => link_to(comment.user.display_name, comment.user), :comment_created_at => tag.time(l(comment.created_at.to_datetime, :format => :friendly), :datetime => comment.created_at.xmlschema) %>

    diff --git a/app/views/issues/_reports.html.erb b/app/views/issues/_reports.html.erb index 9ef28f1c2..2d1b78800 100644 --- a/app/views/issues/_reports.html.erb +++ b/app/views/issues/_reports.html.erb @@ -1,12 +1,12 @@ <% reports.each do |report| %>
    - <%= link_to user_thumbnail(report.user), user_path(report.user) %> + <%= link_to user_thumbnail(report.user), report.user %>

    <%= t ".reported_by_html", :category => report.category, - :user => link_to(report.user.display_name, user_path(report.user)), + :user => link_to(report.user.display_name, report.user), :updated_at => tag.time(l(report.updated_at.to_datetime, :format => :friendly), :datetime => report.updated_at.xmlschema) %>

    diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 12ddf2b32..523f90846 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -59,10 +59,10 @@ <%= t ".states.#{issue.status}" %> <%= link_to t(".reports_count", :count => issue.reports_count), issue %> <%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %> - <%= link_to issue.reported_user.display_name, user_path(issue.reported_user) if issue.reported_user %> + <%= link_to issue.reported_user.display_name, issue.reported_user if issue.reported_user %> <% if issue.user_updated %> - <%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, user_path(issue.user_updated)), + <%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, issue.user_updated), :time_ago => friendly_date_ago(issue.updated_at) %> <% else %> <%= friendly_date_ago(issue.updated_at) %> diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index e2099f8e6..8b5f7f42d 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -21,7 +21,7 @@ | <%= t ".last_updated_at_html", :datetime => tag.time(l(@issue.updated_at.to_datetime, :format => :friendly), :datetime => @issue.updated_at.xmlschema), - :displayname => link_to(@issue.user_updated.display_name, user_path(@issue.user_updated)) %> + :displayname => link_to(@issue.user_updated.display_name, @issue.user_updated) %> <% end %>

    diff --git a/app/views/messages/_message_summary.html.erb b/app/views/messages/_message_summary.html.erb index 4a552e83e..8ac09251c 100644 --- a/app/views/messages/_message_summary.html.erb +++ b/app/views/messages/_message_summary.html.erb @@ -1,6 +1,6 @@ "> - <%= link_to message_summary.sender.display_name, user_path(message_summary.sender) %> - <%= link_to message_summary.title, message_path(message_summary) %> + <%= link_to message_summary.sender.display_name, message_summary.sender %> + <%= link_to message_summary.title, message_summary %> <%= l message_summary.sent_on, :format => :friendly %> <%= button_to t(".unread_button"), message_mark_path(message_summary, :mark => "unread"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-unread", :hidden => !message_summary.message_read? } %> diff --git a/app/views/messages/_sent_message_summary.html.erb b/app/views/messages/_sent_message_summary.html.erb index 24caba5ab..d869fd3cb 100644 --- a/app/views/messages/_sent_message_summary.html.erb +++ b/app/views/messages/_sent_message_summary.html.erb @@ -1,6 +1,6 @@ - <%= link_to sent_message_summary.recipient.display_name, user_path(sent_message_summary.recipient) %> - <%= link_to sent_message_summary.title, message_path(sent_message_summary) %> + <%= link_to sent_message_summary.recipient.display_name, sent_message_summary.recipient %> + <%= link_to sent_message_summary.title, sent_message_summary %> <%= l sent_message_summary.sent_on, :format => :friendly %> <%= button_to t(".destroy_button"), message_path(sent_message_summary, :referer => request.fullpath), :method => :delete, :remote => true, :class => "btn btn-sm btn-danger", :form_class => "inbox-destroy" %> diff --git a/app/views/messages/inbox.html.erb b/app/views/messages/inbox.html.erb index 4d6be787b..611b0b1c9 100644 --- a/app/views/messages/inbox.html.erb +++ b/app/views/messages/inbox.html.erb @@ -9,5 +9,5 @@ <% if current_user.messages.size > 0 %> <%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.messages, :inner_partial => "message_summary" } %> <% else %> -
    <%= t(".no_messages_yet_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %>
    +
    <%= t(".no_messages_yet_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), dashboard_path)) %>
    <% end %> diff --git a/app/views/messages/new.html.erb b/app/views/messages/new.html.erb index 7c91722ff..2838a5dab 100644 --- a/app/views/messages/new.html.erb +++ b/app/views/messages/new.html.erb @@ -1,5 +1,5 @@ <% content_for :heading do %> -

    <%= t(".send_message_to_html", :name => link_to(@message.recipient.display_name, user_path(@message.recipient))) %>

    +

    <%= t(".send_message_to_html", :name => link_to(@message.recipient.display_name, @message.recipient)) %>

    <% end %> <%= bootstrap_form_for @message do |f| %> diff --git a/app/views/messages/outbox.html.erb b/app/views/messages/outbox.html.erb index 65fbaf326..096427e8d 100644 --- a/app/views/messages/outbox.html.erb +++ b/app/views/messages/outbox.html.erb @@ -9,5 +9,5 @@ <% if current_user.sent_messages.size > 0 %> <%= render :partial => "messages_table", :locals => { :columns => %w[to subject date], :messages => current_user.sent_messages, :inner_partial => "sent_message_summary" } %> <% else %> -
    <%= t(".no_sent_messages_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %>
    +
    <%= t(".no_sent_messages_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), dashboard_path)) %>
    <% end %> diff --git a/app/views/messages/show.html.erb b/app/views/messages/show.html.erb index f0742280f..29bf02cd8 100644 --- a/app/views/messages/show.html.erb +++ b/app/views/messages/show.html.erb @@ -5,10 +5,10 @@
    <% if current_user == @message.recipient %> <%= user_thumbnail_tiny @message.sender %> - <%= link_to @message.sender.display_name, user_path(@message.sender) %> + <%= link_to @message.sender.display_name, @message.sender %> <% else %> <%= user_thumbnail_tiny @message.recipient %> - <%= link_to @message.recipient.display_name, user_path(@message.recipient) %> + <%= link_to @message.recipient.display_name, @message.recipient %> <% end %> <%= l @message.sent_on, :format => :friendly %> diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb index f15430efa..ffaad054a 100644 --- a/app/views/sessions/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -28,7 +28,15 @@
      -
    • <%= link_to image_tag("openid.png", :alt => t(".auth_providers.openid.title")), "#", :id => "openid_open_url", :title => t(".auth_providers.openid.title") %>
    • +
    • + <%= link_to image_tag("openid.png", + :alt => t(".auth_providers.openid.title"), + :size => "36"), + "#", + :id => "openid_open_url", + :title => t(".auth_providers.openid.title") %> +
    • + <% %w[google facebook microsoft github wikipedia].each do |provider| %> <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
    • <%= auth_button provider, provider %>
    • diff --git a/app/views/traces/_description.html.erb b/app/views/traces/_description.html.erb index f4edc0e21..5fea819da 100644 --- a/app/views/traces/_description.html.erb +++ b/app/views/traces/_description.html.erb @@ -1,4 +1,4 @@ -<%= image_tag(url_for(:controller => :traces, :action => :icon, :id => description.id, :display_name => description.user.display_name)) %> +<%= image_tag trace_icon_path(description.user, description.id) %> <% if description.size -%> <%= t ".description_with_count", :count => description.size, :user => description.user.display_name %> <% else -%> diff --git a/app/views/traces/_trace.html.erb b/app/views/traces/_trace.html.erb index 9ee58cf22..f72671e37 100644 --- a/app/views/traces/_trace.html.erb +++ b/app/views/traces/_trace.html.erb @@ -2,7 +2,7 @@ <% if Settings.status != "gpx_offline" %> <% if trace.inserted %> - "show", :id => trace.id, :display_name => trace.user.display_name %>"> "icon", :id => trace.id, :display_name => trace.user.display_name %>" border="0" alt="" /> + <%= link_to image_tag(trace_icon_path(trace.user, trace), :alt => ""), show_trace_path(trace.user, trace) %> <% else %> <%= t ".pending" %> <% end %> @@ -11,7 +11,7 @@
      • - <%= link_to trace.name, :controller => "traces", :action => "show", :display_name => trace.user.display_name, :id => trace.id %> + <%= link_to trace.name, show_trace_path(trace.user, trace) %>
      • <% if trace.inserted? %> @@ -30,7 +30,7 @@

      <%= friendly_date_ago(trace.timestamp) %> - <%= t ".by" %> <%= link_to trace.user.display_name, user_path(trace.user) %> + <%= t ".by" %> <%= link_to trace.user.display_name, trace.user %> <% if !trace.tags.empty? %> <%= t ".in" %> <%= safe_join(trace.tags.collect { |tag| link_to_tag tag.tag }, ", ") %> @@ -45,10 +45,10 @@

      diff --git a/app/views/traces/edit.html.erb b/app/views/traces/edit.html.erb index 09fe9c510..809112d4b 100644 --- a/app/views/traces/edit.html.erb +++ b/app/views/traces/edit.html.erb @@ -2,7 +2,7 @@

      <%= t ".heading", :name => @trace.name %>

      <% end %> - "picture", :id => @trace.id, :display_name => @trace.user.display_name %>"> +<%= image_tag trace_picture_path(@trace.user, @trace) %> <%= bootstrap_form_for @trace do |f| %> <%= f.text_field :name, :disabled => true %> diff --git a/app/views/traces/georss.rss.builder b/app/views/traces/georss.rss.builder index 36641fec0..924ffb935 100644 --- a/app/views/traces/georss.rss.builder +++ b/app/views/traces/georss.rss.builder @@ -21,8 +21,8 @@ xml.rss("version" => "2.0", xml.item do xml.title trace.name - xml.link url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false) - xml.guid url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false) + xml.link show_trace_url(trace.user, trace) + xml.guid show_trace_url(trace.user, trace) xml.description do xml.cdata! render(:partial => "description", :object => trace, :formats => [:html]) diff --git a/app/views/traces/show.html.erb b/app/views/traces/show.html.erb index 69f58b5b8..def928da5 100644 --- a/app/views/traces/show.html.erb +++ b/app/views/traces/show.html.erb @@ -4,7 +4,7 @@ <% if Settings.status != "gpx_offline" %> <% if @trace.inserted %> - "picture", :id => @trace.id, :display_name => @trace.user.display_name %>"> + <%= image_tag trace_picture_path(@trace.user, @trace) %> <% else %> <%= t ".pending" %> <% end %> @@ -31,12 +31,12 @@ :latitude => tag.span(number_with_delimiter(@trace.latitude), :class => "latitude"), :longitude => tag.span(number_with_delimiter(@trace.longitude), :class => "longitude") %>
    - (<%= link_to t(".map"), :controller => "site", :action => "index", :mlat => @trace.latitude, :mlon => @trace.longitude, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}" %> / <%= link_to t(".edit"), :controller => "site", :action => "edit", :gpx => @trace.id, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}" %>) + (<%= link_to t(".map"), root_path(:mlat => @trace.latitude, :mlon => @trace.longitude, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}") %> / <%= link_to t(".edit"), edit_path(:gpx => @trace.id, :anchor => "map=14/#{@trace.latitude}/#{@trace.longitude}") %>) <% end %> <%= t ".owner" %> - <%= link_to @trace.user.display_name, user_path(@trace.user) %> + <%= link_to @trace.user.display_name, @trace.user %> <%= t ".description" %> @@ -63,6 +63,6 @@ <% if current_user == @trace.user %> <%= link_to t(".edit_trace"), edit_trace_path(@trace), :class => "btn btn-outline-primary" %> <% end %> - <%= link_to t(".delete_trace"), { :controller => "traces", :action => "destroy", :id => @trace.id }, { :method => :delete, :class => "btn btn-outline-danger", :data => { :confirm => t(".confirm_delete") } } %> + <%= link_to t(".delete_trace"), @trace, { :method => :delete, :class => "btn btn-outline-danger", :data => { :confirm => t(".confirm_delete") } } %>
    <% end %> diff --git a/app/views/user_blocks/_block.html.erb b/app/views/user_blocks/_block.html.erb index f39efb571..50fe74e4c 100644 --- a/app/views/user_blocks/_block.html.erb +++ b/app/views/user_blocks/_block.html.erb @@ -1,9 +1,9 @@ <% if show_user_name %> - <%= link_to block.user.display_name, user_path(block.user) %> + <%= link_to block.user.display_name, block.user %> <% end %> <% if show_creator_name %> - <%= link_to block.creator.display_name, user_path(block.creator) %> + <%= link_to block.creator.display_name, block.creator %> <% end %> <%= h truncate(block.reason) %> <%= h block_status(block) %> @@ -11,7 +11,7 @@ <% if block.revoker_id.nil? %> <%= t(".not_revoked") %> <% else %> - <%= link_to block.revoker.display_name, user_path(block.revoker) %> + <%= link_to block.revoker.display_name, block.revoker %> <% end %> <%= link_to t(".show"), block %> diff --git a/app/views/user_blocks/blocks_by.html.erb b/app/views/user_blocks/blocks_by.html.erb index d5283925b..87ff7f5b2 100644 --- a/app/views/user_blocks/blocks_by.html.erb +++ b/app/views/user_blocks/blocks_by.html.erb @@ -1,6 +1,6 @@ <% @title = t(".title", :name => @user.display_name) %> <% content_for :heading do %> -

    <%= t(".heading_html", :name => link_to(@user.display_name, user_path(@user))) %>

    +

    <%= t(".heading_html", :name => link_to(@user.display_name, @user)) %>

    <% end %> <% unless @user_blocks.empty? %> diff --git a/app/views/user_blocks/blocks_on.html.erb b/app/views/user_blocks/blocks_on.html.erb index 7d1f83ce3..ed03342dc 100644 --- a/app/views/user_blocks/blocks_on.html.erb +++ b/app/views/user_blocks/blocks_on.html.erb @@ -1,6 +1,6 @@ <% @title = t(".title", :name => @user.display_name) %> <% content_for :heading do %> -

    <%= t(".heading_html", :name => link_to(@user.display_name, user_path(@user))) %>

    +

    <%= t(".heading_html", :name => link_to(@user.display_name, @user)) %>

    <% end %> <% unless @user_blocks.empty? %> diff --git a/app/views/user_blocks/edit.html.erb b/app/views/user_blocks/edit.html.erb index db7c5e057..a5b165e9a 100644 --- a/app/views/user_blocks/edit.html.erb +++ b/app/views/user_blocks/edit.html.erb @@ -1,8 +1,6 @@ <% @title = t ".title", :name => @user_block.user.display_name %> <% content_for :heading do %> -

    <%= t(".heading_html", - :name => link_to(@user_block.user.display_name, - user_path(@user_block.user))) %>

    +

    <%= t(".heading_html", :name => link_to(@user_block.user.display_name, @user_block.user)) %>