]> source.dussan.org Git - redmine.git/commitdiff
Use ul tags to do pagination (#21258).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 28 Nov 2015 11:13:15 +0000 (11:13 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 28 Nov 2015 11:13:15 +0000 (11:13 +0000)
Patch by Daniel Ritz.

git-svn-id: http://svn.redmine.org/redmine/trunk@14897 e93f8b46-1217-0410-a6f0-8f06a7374b81

18 files changed:
app/helpers/groups_helper.rb
app/helpers/members_helper.rb
app/views/auth_sources/index.html.erb
app/views/boards/show.html.erb
app/views/issue_statuses/index.html.erb
app/views/issues/index.html.erb
app/views/messages/show.html.erb
app/views/news/index.html.erb
app/views/repositories/revisions.html.erb
app/views/roles/index.html.erb
app/views/search/index.html.erb
app/views/timelog/index.html.erb
app/views/trackers/index.html.erb
app/views/users/index.html.erb
lib/redmine/pagination.rb
public/stylesheets/application.css
test/unit/helpers/groups_helper_test.rb
test/unit/helpers/members_helper_test.rb

index 0214d5212998d4a6dda777ebf7711f8705f2638f..0706dcbf7cb15edd6930aeb480911b54dc8d262f 100644 (file)
@@ -41,6 +41,6 @@ module GroupsHelper
       link_to text, autocomplete_for_user_group_path(group, parameters.merge(:q => params[:q], :format => 'js')), :remote => true
     }
 
-    s + content_tag('p', links, :class => 'pagination')
+    s + content_tag('span', links, :class => 'pagination')
   end
 end
index cd9e5632e6b5a33a3a0627a7278c19518f4e35b2..57ff4d4b51817236b98abcbbe1437bb6ab3f60e2 100644 (file)
@@ -33,6 +33,6 @@ module MembersHelper
       link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true
     }
 
-    s + content_tag('p', links, :class => 'pagination')
+    s + content_tag('span', links, :class => 'pagination')
   end
 end
index fcdbf7d4390d6850f23c95cc59ce1462f4d33392..ecde2bf95f773fa68c3e63681619cf2a83ecd0eb 100644 (file)
@@ -28,4 +28,4 @@
   </tbody>
 </table>
 
-<p class="pagination"><%= pagination_links_full @auth_source_pages %></p>
+<span class="pagination"><%= pagination_links_full @auth_source_pages %></span>
index 7a599eae25d8516636ff295c5b76007370180173..a9734318a073177f7d388ad97501669d61bb676c 100644 (file)
@@ -50,7 +50,7 @@
   <% end %>
   </tbody>
 </table>
-<p class="pagination"><%= pagination_links_full @topic_pages, @topic_count %></p>
+<span class="pagination"><%= pagination_links_full @topic_pages, @topic_count %></span>
 <% else %>
 <p class="nodata"><%= l(:label_no_data) %></p>
 <% end %>
index 3da8c5b80ed29d633575ced22d59368a70a467ed..40a5c92ce1be9dbc6c36203533fb887cea657a59 100644 (file)
@@ -32,6 +32,6 @@
   </tbody>
 </table>
 
-<p class="pagination"><%= pagination_links_full @issue_status_pages %></p>
+<span class="pagination"><%= pagination_links_full @issue_status_pages %></span>
 
 <% html_title(l(:label_issue_status_plural)) -%>
index de87c5ee201f2c34738970e117fbc7cdf944336d..8310dc73e84f44a7a987e5eb5e8b001513870781 100644 (file)
@@ -66,7 +66,7 @@
 <% else %>
 <%= render_query_totals(@query) %>
 <%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
-<p class="pagination"><%= pagination_links_full @issue_pages, @issue_count %></p>
+<span class="pagination"><%= pagination_links_full @issue_pages, @issue_count %></span>
 <% end %>
 
 <% other_formats_links do |f| %>
index 533be20bb90b994b2ea33bae3ad6d8e1fa31d35b..23e6f0285eb8fd099989b527f17ad1212645ff76 100644 (file)
@@ -67,7 +67,7 @@
   <%= link_to_attachments message, :author => false %>
   </div>
 <% end %>
-<p class="pagination"><%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %></p>
+<span class="pagination"><%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %></span>
 <% end %>
 
 <% if !@topic.locked? && authorize_for('messages', 'reply') %>
index 87eb98b4baa777ad2348a1f359a4c37cdb8f5d07..64614c15415e18230cb4bcd7ec87fc5049cedaff 100644 (file)
@@ -37,7 +37,7 @@
     </article>
 <% end %>
 <% end %>
-<p class="pagination"><%= pagination_links_full @news_pages %></p>
+<span class="pagination"><%= pagination_links_full @news_pages %></span>
 
 <% other_formats_links do |f| %>
   <%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.rss_key} %>
index a1e54582fbe511ad31e9bae3a4f5705cec865ecd..c0afb955aa4e48b8a45dd8680f5e2484c031845a 100644 (file)
@@ -17,7 +17,7 @@
                        :revisions => @changesets,
                        :entry     => nil } %>
 
-<p class="pagination"><%= pagination_links_full @changeset_pages,@changeset_count %></p>
+<span class="pagination"><%= pagination_links_full @changeset_pages,@changeset_count %></span>
 
 <% content_for :header_tags do %>
   <%= stylesheet_link_tag "scm" %>
index 9545d55090225154af28fff634c5bbf88f624d57..6561d11704878792e692e49326e20d664762c987 100644 (file)
@@ -29,6 +29,6 @@
   </tbody>
 </table>
 
-<p class="pagination"><%= pagination_links_full @role_pages %></p>
+<span class="pagination"><%= pagination_links_full @role_pages %></span>
 
 <% html_title(l(:label_role_plural)) -%>
index 35d0d0bf72cb2f0819014898c8a2f97a2dc31716..6fceaeab2eed6b69d789d062bff63e1484f18044 100644 (file)
@@ -52,7 +52,7 @@
 <% end %>
 
 <% if @result_pages %>
-<p class="pagination"><%= pagination_links_full @result_pages, @result_count, :per_page_links => false %></p>
+<span class="pagination"><%= pagination_links_full @result_pages, @result_count, :per_page_links => false %></span>
 <% end %>
 
 <% html_title(l(:label_search)) -%>
index ad1854f3619fd4dc29f6ae386aec774366efddfc..a875e53af607b495aacd6a01fef2b9d3c85d5bf4 100644 (file)
@@ -18,7 +18,7 @@
 
 <% unless @entries.empty? %>
 <%= render :partial => 'list', :locals => { :entries => @entries }%>
-<p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
+<span class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></span>
 
 <% other_formats_links do |f| %>
   <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
index f76a4f5dbd5e9f1494485692a3b5b735421e2736..8ba7b7cdcffe87c26c52495a9f9dabe8916079b4 100644 (file)
@@ -34,6 +34,6 @@
   </tbody>
 </table>
 
-<p class="pagination"><%= pagination_links_full @tracker_pages %></p>
+<span class="pagination"><%= pagination_links_full @tracker_pages %></span>
 
 <% html_title(l(:label_tracker_plural)) -%>
index 7cd6bb0679db07ebe379d5a4a325068800c1ae28..c32b46a9c833fd6befee7e2bad0b9204382f6b25 100644 (file)
@@ -53,6 +53,6 @@
   </tbody>
 </table>
 </div>
-<p class="pagination"><%= pagination_links_full @user_pages, @user_count %></p>
+<span class="pagination"><%= pagination_links_full @user_pages, @user_count %></span>
 
 <% html_title(l(:label_user_plural)) -%>
index 943e8f5a797040a7f8bc44a22fd6ca68848de8e4..83ded7b4013abc555060738cccada89bf3dbeafe 100644 (file)
@@ -172,34 +172,40 @@ module Redmine
         per_page_links = false if count.nil?
         page_param = paginator.page_param
 
-        html = ''
+        html = '<ul class="pages">'
         if paginator.previous_page
           # \xc2\xab(utf-8) = &#171;
           text = "\xc2\xab " + l(:label_previous)
-          html << yield(text, {page_param => paginator.previous_page},
-            :class => 'previous', :accesskey => accesskey(:previous)) + ' '
+          html << content_tag('li',
+                              yield(text, {page_param => paginator.previous_page},
+                                    :accesskey => accesskey(:previous)),
+                              :class => 'previous page')
         end
 
         previous = nil
         paginator.linked_pages.each do |page|
           if previous && previous != page - 1
-            html << content_tag('span', '...', :class => 'spacer') + ' '
+            html << content_tag('li', content_tag('span', '...'), :class => 'spacer') + ' '
           end
           if page == paginator.page
-            html << content_tag('span', page.to_s, :class => 'current page')
+            html << content_tag('li', content_tag('span', page.to_s), :class => 'current')
           else
-            html << yield(page.to_s, {page_param => page}, :class => 'page')
+            html << content_tag('li',
+                                yield(page.to_s, {page_param => page}),
+                                :class => 'page')
           end
-          html << ' '
           previous = page
         end
 
         if paginator.next_page
           # \xc2\xbb(utf-8) = &#187;
           text = l(:label_next) + " \xc2\xbb"
-          html << yield(text, {page_param => paginator.next_page},
-            :class => 'next', :accesskey => accesskey(:next)) + ' '
+          html << content_tag('li',
+                              yield(text, {page_param => paginator.next_page},
+                                    :accesskey => accesskey(:next)),
+                              :class => 'next page')
         end
+        html << '</ul>'
 
         html << content_tag('span', "(#{paginator.first_item}-#{paginator.last_item}/#{paginator.item_count})", :class => 'items') + ' '
 
index 095b892e6785baa5a4ad0e7e80c23993b932a17e..b59ffcf442a3e80c6cb653e7dcd2ecf3b8903a57 100644 (file)
@@ -494,7 +494,44 @@ textarea#custom_field_default_value {width: 95%; resize:vertical}
 
 input#content_comments {width: 99%}
 
-p.pagination {margin-top:8px; font-size: 90%}
+span.pagination {margin-left:3px}
+.pagination ul.pages {
+  margin: 0 5px 0 0;
+  padding: 0;
+  display: inline;
+}
+.pagination ul.pages li {
+  display: inline-block;
+  padding: 0;
+  border: 1px solid #BBB;
+  margin-left: -1px;
+  line-height: 2em;
+}
+.pagination ul.pages li a,
+.pagination ul.pages li span {
+  padding: 4px 10px;
+}
+.pagination ul.pages li:first-child {
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+.pagination ul.pages li:last-child {
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+}
+.pagination ul.pages li.current {
+  color: white;
+  background-color: #628DB6;
+  border-color: #628DB6;
+}
+.pagination ul.pages li.page:hover {
+  background-color: #EEE;
+}
+.pagination ul.pages li.page a:hover,
+.pagination ul.pages li.page a:active {
+  color: inherit;
+  text-decoration: inherit;
+}
 
 #search-form fieldset p {margin:0.2em 0;}
 
index 19a08134e01c4b8ddbedbe954d991e150d86eec3..3492a0df15794fbbd9addc818e2ebd9e76305a4f 100644 (file)
@@ -35,8 +35,8 @@ class GroupsHelperTest < ActionView::TestCase
     group = Group.generate!
 
     result = render_principals_for_new_group_users(group, 3)
-    assert_select_in result, 'p.pagination'
-    assert_select_in result, 'span.current.page', :text => '1'
+    assert_select_in result, 'span.pagination'
+    assert_select_in result, 'span.pagination li.current span', :text => '1'
     assert_select_in result, 'a[href=?]', "/groups/#{group.id}/autocomplete_for_user.js?page=2", :text => '2'
   end
 end
index 0c20aa4e78d08b380053c18fc4c555e920e167ca..61089bd4779e13037db56ea64de252759cf3c8c3 100644 (file)
@@ -36,8 +36,8 @@ class MembersHelperTest < ActionView::TestCase
     project = Project.generate!
 
     result = render_principals_for_new_members(project, 3)
-    assert_select_in result, 'p.pagination'
-    assert_select_in result, 'span.current.page', :text => '1'
+    assert_select_in result, 'span.pagination'
+    assert_select_in result, 'span.pagination li.current span', :text => '1'
     assert_select_in result, 'a[href=?]', "/projects/#{project.identifier}/memberships/autocomplete.js?page=2", :text => '2'
   end
 end