Commit 8c0aba94 authored by Alfredo Sumaran's avatar Alfredo Sumaran

Get pagination options form the view

parent f3134c2a
class @Todos class @Todos
constructor: (@name) -> constructor: (opts = {}) ->
@todos_per_page = gon.todos_per_page || 20 {
@el = $('.js-todos-options')
} = opts
@perPage = @el.data('perPage')
@clearListeners() @clearListeners()
@initBtnListeners() @initBtnListeners()
...@@ -59,26 +64,30 @@ class @Todos ...@@ -59,26 +64,30 @@ class @Todos
$('.todos-pending .badge, .todos-pending-count').text data.count $('.todos-pending .badge, .todos-pending-count').text data.count
$('.todos-done .badge').text data.done_count $('.todos-done .badge').text data.done_count
getRenderedPages: -> getTotalPages: ->
$('.gl-pagination .page').length @el.data('totalPages')
getCurrentPage: -> getCurrentPage: ->
parseInt($.trim($('.gl-pagination .page.active').text())) @el.data('currentPage')
getTodosPerPage: ->
@el.data('perPage')
redirectIfNeeded: (total) -> redirectIfNeeded: (total) ->
currPages = @getRenderedPages() currPages = @getTotalPages()
currPage = @getCurrentPage() currPage = @getCurrentPage()
newPages = Math.ceil(total / @todos_per_page) newPages = Math.ceil(total / @getTodosPerPage())
url = location.href # Includes query strings url = location.href # Includes query strings
# Refresh if no remaining Todos # Refresh if no remaining Todos
if !total if not total
location.reload() location.reload()
return return
# Do nothing if no pagination # Do nothing if no pagination
return if !currPages return if not currPages
# If new total of pages is different than we have now # If new total of pages is different than we have now
if newPages isnt currPages if newPages isnt currPages
......
...@@ -2,7 +2,6 @@ class Dashboard::TodosController < Dashboard::ApplicationController ...@@ -2,7 +2,6 @@ class Dashboard::TodosController < Dashboard::ApplicationController
before_action :find_todos, only: [:index, :destroy, :destroy_all] before_action :find_todos, only: [:index, :destroy, :destroy_all]
def index def index
gon.todos_per_page = Todo.default_per_page
@todos = @todos.page(params[:page]) @todos = @todos.page(params[:page])
end end
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
.prepend-top-default .prepend-top-default
- if @todos.any? - if @todos.any?
.js-todos-options{ data: {per_page: @todos.limit_value, current_page: @todos.current_page, total_pages: @todos.total_pages} }
- @todos.group_by(&:project).each do |group| - @todos.group_by(&:project).each do |group|
.panel.panel-default.panel-small.js-todos-list .panel.panel-default.panel-small.js-todos-list
- project = group[0] - project = group[0]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment