From: John Firebaugh Date: Thu, 7 Nov 2013 01:28:24 +0000 (-0800) Subject: Improve pagination in changeset details X-Git-Tag: live~5173^2~159 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/d8cf49f0d7f0006bb8b5ccb16d3d236069e6821a Improve pagination in changeset details --- diff --git a/app/assets/stylesheets/common.css.scss b/app/assets/stylesheets/common.css.scss index a2d3bb955..dc38ec6c3 100644 --- a/app/assets/stylesheets/common.css.scss +++ b/app/assets/stylesheets/common.css.scss @@ -1120,19 +1120,13 @@ a.donate { h4 { padding: 0; + } + + .paginate { + float: right; + padding: 1px 6px; + border: 1px solid #eee; border-radius: 3px; - - &.paginate { - margin-top: 4px; - padding: 1px 6px; - border: 1px solid #eee; - span { - padding: 0 0 0 14px; - float: right; - border-left: 1px solid #eee; - > a { padding-left: 5px; } - } - } } } diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index c4e4d425a..b3145ebce 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,8 +1,4 @@ module BrowseHelper - def link_to_page(page, page_param) - return link_to(page, page_param => page) - end - def printable_name(object, version=false) if object.id.is_a?(Array) id = object.id[0] @@ -61,6 +57,18 @@ module BrowseHelper end end + def type_and_paginated_count(type, pages) + if pages.page_count == 1 + t "browse.changeset_details.#{type}", + :count => pages.item_count + else + t "browse.changeset_details.#{type}_paginated", + :x => pages.current_page.first_item, + :y => pages.current_page.last_item, + :count => pages.item_count + end + end + private ICON_TAGS = [ diff --git a/app/views/browse/_paging_nav.html.erb b/app/views/browse/_paging_nav.html.erb index 50e75bff8..67f1c75a3 100644 --- a/app/views/browse/_paging_nav.html.erb +++ b/app/views/browse/_paging_nav.html.erb @@ -1,13 +1,5 @@ -

-<% current_page = pages.current_page %> <% if pages.page_count > 1 %> - <%= t'browse.paging_nav.showing_page' %> - <%= current_page.number %> (<%= current_page.first_item %><% - if (current_page.first_item < current_page.last_item) # if more than 1 trace on page - %>-<%= current_page.last_item %><% - end %> - <%= t'browse.paging_nav.of'%> <%= pages.item_count %>) - -<%= raw pagination_links_each(pages, {}) { |n| link_to_page(n, page_param) } %> + + <%= raw pagination_links_each(pages, {}) { |n| link_to(n, page_param => n) } %> + <% end %> -

diff --git a/app/views/browse/changeset.html.erb b/app/views/browse/changeset.html.erb index 0d64ffae6..fb08987bb 100644 --- a/app/views/browse/changeset.html.erb +++ b/app/views/browse/changeset.html.erb @@ -1,52 +1,54 @@ -

<%= t 'browse.changeset.changeset', :id => @changeset.id %> +

+ <%= t 'browse.changeset.changeset', :id => @changeset.id %>

+
-

- <%= - @changeset.tags['comment'].to_s.presence || t('browse.changeset_details.no_comment') - %> -

+

<%= @changeset.tags['comment'].to_s.presence || t('browse.changeset_details.no_comment') %>

<%= changeset_time_ago(@changeset) %>
- -<%= - render :partial => "tag_details", :object => @changeset.tags.except('comment') -%> + +<%= render :partial => "tag_details", :object => @changeset.tags.except('comment') %> <% unless @nodes.empty? %>
-

<%= t 'browse.changeset_details.has_nodes', :count => @node_pages.item_count %>

+

+ <%= type_and_paginated_count('node', @node_pages) %> + <%= render :partial => 'paging_nav', :locals => { :pages => @node_pages, :page_param => "node_page"} %> +

- <%= render :partial => 'paging_nav', :locals => { :pages => @node_pages, :page_param => "node_page"} %>
<% end %> <% unless @ways.empty? %>
-

<%= t 'browse.changeset_details.has_ways', :count => @way_pages.item_count %>

+

+ <%= type_and_paginated_count('way', @way_pages) %> + <%= render :partial => 'paging_nav', :locals => { :pages => @way_pages, :page_param => "way_page" } %> +

- <%= render :partial => 'paging_nav', :locals => { :pages => @way_pages, :page_param => "way_page" } %>
<% end %> <% unless @relations.empty? %>
-

<%= t 'browse.changeset_details.has_relations', :count => @relation_pages.item_count %>

- +

+ <%= type_and_paginated_count('relation', @relation_pages) %> <%= render :partial => 'paging_nav', :locals => { :pages => @relation_pages, :page_param => "relation_page" } %> +

+
<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 127e810b1..d032c58f1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -130,9 +130,12 @@ en: created_at: "Created" closed_at: "Closed" belongs_to: "Author" - has_nodes: "Nodes (%{count})" - has_ways: "Ways (%{count})" - has_relations: "Relations (%{count})" + 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})" no_comment: "(no comment)" ago: "%{ago} ago" by: "by" @@ -189,9 +192,6 @@ en: way: way relation: relation changeset: changeset - paging_nav: - showing_page: "page" - of: "of" redacted: redaction: "Redaction %{id}" message_html: "Version %{version} of this %{type} cannot be shown as it has been redacted. Please see %{redaction_link} for details."