OSDN Git Service

Issues pagination
authorrandx <dmitriy.zaporozhets@gmail.com>
Wed, 21 Mar 2012 22:09:56 +0000 (00:09 +0200)
committerrandx <dmitriy.zaporozhets@gmail.com>
Wed, 21 Mar 2012 22:09:56 +0000 (00:09 +0200)
20 files changed:
app/assets/stylesheets/common.scss
app/controllers/issues_controller.rb
app/views/admin/projects/index.html.haml
app/views/admin/users/index.html.haml
app/views/issues/_issues.html.haml
app/views/issues/index.html.haml
app/views/kaminari/admin/_first_page.html.haml [moved from app/views/kaminari/_first_page.html.haml with 100% similarity]
app/views/kaminari/admin/_gap.html.haml [moved from app/views/kaminari/_gap.html.haml with 100% similarity]
app/views/kaminari/admin/_last_page.html.haml [moved from app/views/kaminari/_last_page.html.haml with 100% similarity]
app/views/kaminari/admin/_next_page.html.haml [moved from app/views/kaminari/_next_page.html.haml with 100% similarity]
app/views/kaminari/admin/_page.html.haml [moved from app/views/kaminari/_page.html.haml with 100% similarity]
app/views/kaminari/admin/_paginator.html.haml [moved from app/views/kaminari/_paginator.html.haml with 100% similarity]
app/views/kaminari/admin/_prev_page.html.haml [moved from app/views/kaminari/_prev_page.html.haml with 100% similarity]
app/views/kaminari/gitlab/_first_page.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_gap.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_last_page.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_next_page.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_page.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_paginator.html.haml [new file with mode: 0644]
app/views/kaminari/gitlab/_prev_page.html.haml [new file with mode: 0644]

index 723f850..a729dfe 100644 (file)
@@ -461,8 +461,27 @@ img.lil_av {
     border-top:none;
 
     form { 
-      padding-top:16px;
+      padding:9px 0;
+      margin:0px;
     }
+
+    .pills { 
+      li { 
+        padding:3px 0;
+        &.active a { background-color:$style_color; }
+        a { 
+          border-radius:7px;
+        }
+      }
+    }
+  }
+
+  &.bottom { 
+    padding: 0 10px;
+    background:#f5f5f5;
+    border-top: 1px solid #eee;
+    @include round-borders-bottom(4px);
+    border-bottom:none;
   }
 
   &.padded { 
@@ -1008,3 +1027,13 @@ p.time {
 .thin_area{
   height: 150px;
 }
+
+.gitlab_pagination { 
+  span { 
+    padding:0 10px;
+
+    a { 
+      color:$link_color;
+    }
+  }
+}
index 53d8b74..1fc59d9 100644 (file)
@@ -28,7 +28,7 @@ class IssuesController < ApplicationController
               when 2 then @project.issues.closed
               when 3 then @project.issues.opened.assigned(current_user)
               else @project.issues.opened
-              end
+              end.page(params[:page]).per(10)
 
     @issues = @issues.includes(:author, :project)
 
index 7cda522..079ae38 100644 (file)
@@ -19,4 +19,4 @@
       %td= last_commit(project)
       %td= link_to 'Edit', edit_admin_project_path(project), :id => "edit_#{dom_id(project)}", :class => "btn small"
       %td= link_to 'Destroy', [:admin, project], :confirm => 'Are you sure?', :method => :delete, :class => "btn small danger"
-= paginate @admin_projects
+= paginate @admin_projects, :theme => "admin"
index a0b4df1..19eb647 100644 (file)
@@ -20,4 +20,4 @@
       %td= link_to 'Edit', edit_admin_user_path(user), :id => "edit_#{dom_id(user)}", :class => "btn small"
       %td= link_to 'Destroy', [:admin, user], :confirm => 'Are you sure?', :method => :delete, :class => "btn small danger"
 
-= paginate @admin_users
+= paginate @admin_users, :theme => "admin"
index bf863a2..f18cbe2 100644 (file)
@@ -3,3 +3,5 @@
 
 - @issues.non_critical.each do |issue|
   = render(:partial => 'issues/show', :locals => {:issue => issue})
+
+%li= paginate @issues, :remote => true, :theme => "gitlab"
index e55cae1..283e936 100644 (file)
@@ -38,7 +38,6 @@
       - if @issues.blank?
         %li
           %p.padded Nothing to show here
-
 :javascript
   var href       = $('.issue_search').parent().attr('action');
   var last_terms = '';
diff --git a/app/views/kaminari/gitlab/_first_page.html.haml b/app/views/kaminari/gitlab/_first_page.html.haml
new file mode 100644 (file)
index 0000000..fee8112
--- /dev/null
@@ -0,0 +1,9 @@
+-#  Link to the "First" page
+-#  available local variables
+-#    url:           url to the first page
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span.first
+  = link_to_unless current_page.first?, raw(t 'views.pagination.first'), url, :remote => remote
diff --git a/app/views/kaminari/gitlab/_gap.html.haml b/app/views/kaminari/gitlab/_gap.html.haml
new file mode 100644 (file)
index 0000000..f82f185
--- /dev/null
@@ -0,0 +1,8 @@
+-#  Non-link tag that stands for skipped pages...
+-#  available local variables
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span.page.gap
+  = raw(t 'views.pagination.truncate')
diff --git a/app/views/kaminari/gitlab/_last_page.html.haml b/app/views/kaminari/gitlab/_last_page.html.haml
new file mode 100644 (file)
index 0000000..6e41d23
--- /dev/null
@@ -0,0 +1,9 @@
+-#  Link to the "Last" page
+-#  available local variables
+-#    url:           url to the last page
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span.last
+  = link_to_unless current_page.last?, raw(t 'views.pagination.last'), url, {:remote => remote}
diff --git a/app/views/kaminari/gitlab/_next_page.html.haml b/app/views/kaminari/gitlab/_next_page.html.haml
new file mode 100644 (file)
index 0000000..e87ab4e
--- /dev/null
@@ -0,0 +1,9 @@
+-#  Link to the "Next" page
+-#  available local variables
+-#    url:           url to the next page
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span.next
+  = link_to_unless current_page.last?, raw(t 'views.pagination.next'), url, :rel => 'next', :remote => remote
diff --git a/app/views/kaminari/gitlab/_page.html.haml b/app/views/kaminari/gitlab/_page.html.haml
new file mode 100644 (file)
index 0000000..528bba8
--- /dev/null
@@ -0,0 +1,10 @@
+-#  Link showing page number
+-#  available local variables
+-#    page:          a page object for "this" page
+-#    url:           url to this page
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span{:class => "page#{' current' if page.current?}"}
+  = link_to_unless page.current?, page, url, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil}
diff --git a/app/views/kaminari/gitlab/_paginator.html.haml b/app/views/kaminari/gitlab/_paginator.html.haml
new file mode 100644 (file)
index 0000000..858fe9c
--- /dev/null
@@ -0,0 +1,18 @@
+-#  The container tag
+-#  available local variables
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+-#    paginator:     the paginator that renders the pagination tags inside
+= paginator.render do
+  %nav.gitlab_pagination
+    -#= first_page_tag unless current_page.first?
+    = prev_page_tag
+    - each_page do |page|
+      - if page.left_outer? || page.right_outer? || page.inside_window?
+        = page_tag page
+      - elsif !page.was_truncated?
+        = gap_tag
+    = next_page_tag
+    -#= last_page_tag unless current_page.last?
diff --git a/app/views/kaminari/gitlab/_prev_page.html.haml b/app/views/kaminari/gitlab/_prev_page.html.haml
new file mode 100644 (file)
index 0000000..13f0d8a
--- /dev/null
@@ -0,0 +1,9 @@
+-#  Link to the "Previous" page
+-#  available local variables
+-#    url:           url to the previous page
+-#    current_page:  a page object for the currently displayed page
+-#    num_pages:     total number of pages
+-#    per_page:      number of items to fetch per page
+-#    remote:        data-remote
+%span.prev
+  = link_to_unless current_page.first?, raw(t 'views.pagination.previous'), url, :rel => 'prev', :remote => remote