X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/768a792a6175215855518c378b49a41e7b10b503..f9ab1e0432354b6fa6f9eb992e59b202e4ef906c:/app/helpers/browse_helper.rb diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index 14b1f7cc2..be32737a4 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,5 +1,5 @@ module BrowseHelper - def printable_name(object, version = false) + def printable_name(object, version: false) id = if object.id.is_a?(Array) object.id[0] else @@ -11,28 +11,16 @@ module BrowseHelper # don't look at object tags if redacted, so as to avoid giving # away redacted version tag information. unless object.redacted? - available_locales = Locale::List.new(name_locales(object)) + available_locales = Locale.list(name_locales(object)) - Rails.logger.info "available_locales = #{available_locales.map(&:to_s)}" - - preferred_locales = if current_user - current_user.preferred_languages - else - Locale.new(I18n.locale).candidates - end - - Rails.logger.info "preferred_locales = #{preferred_locales.expand.map(&:to_s)}" - - locale = available_locales.preferred(preferred_locales) - - Rails.logger.info "locale = #{locale}" + locale = available_locales.preferred(preferred_languages, :default => nil) if object.tags.include? "name:#{locale}" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["name:#{locale}"].to_s), :id => tag.bdi(name) elsif object.tags.include? "name" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["name"].to_s), :id => tag.bdi(name) elsif object.tags.include? "ref" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["ref"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["ref"].to_s), :id => tag.bdi(name) end end @@ -56,7 +44,7 @@ module BrowseHelper if object.redacted? "" else - h(icon_tags(object).map { |k, v| k + "=" + v }.to_sentence) + h(icon_tags(object).map { |k, v| "#{k}=#{v}" }.to_sentence) end end @@ -76,6 +64,29 @@ module BrowseHelper end end + def sidebar_classic_pagination(pages, page_param) + max_width_for_default_padding = 35 + + width = 0 + pagination_items(pages, {}).each do |body| + width += 2 # padding width + width += body.length + end + link_classes = ["page-link", { "px-1" => width > max_width_for_default_padding }] + + tag.ul :class => "pagination pagination-sm mb-1 ms-auto" do + pagination_items(pages, {}).each do |body, n| + linked = !(n.is_a? String) + link = if linked + link_to body, url_for(page_param => n), :class => link_classes + else + tag.span body, :class => link_classes + end + concat tag.li link, :class => ["page-item", { n => !linked }] + end + end + end + private ICON_TAGS = %w[aeroway amenity barrier building highway historic landuse leisure man_made natural railway shop tourism waterway].freeze