From a56da6fbb932a47d3131bca4a2df161483ed764d Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Sat, 20 Sep 2014 20:31:16 +0200 Subject: [PATCH] Fixed pagination. --- .../_dashboard/ticket_search.js.coffee | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/app/assets/javascripts/app/controllers/_dashboard/ticket_search.js.coffee b/app/assets/javascripts/app/controllers/_dashboard/ticket_search.js.coffee index f2288d253..4d33be320 100644 --- a/app/assets/javascripts/app/controllers/_dashboard/ticket_search.js.coffee +++ b/app/assets/javascripts/app/controllers/_dashboard/ticket_search.js.coffee @@ -4,16 +4,18 @@ class App.DashboardTicketSearch extends App.Controller constructor: -> super - @start_page = 1 + @item_from = 1 @navupdate '#' + @key = @name + @Session.get('id') + # render @fetch() fetch: (force) => @ajax( - id: 'dashboard_ticket_search' + @name, + id: 'dashboard_ticket_search' + @key, type: 'GET', url: @apiPath + '/tickets/search', data: @@ -30,7 +32,7 @@ class App.DashboardTicketSearch extends App.Controller load: (data = false, ajax = false) => if ajax - App.Store.write( 'dashboard_ticket_search' + @name, data ) + App.Store.write( 'dashboard_ticket_search' + @key, data ) # load assets App.Collection.loadAssets( data.assets ) @@ -38,7 +40,7 @@ class App.DashboardTicketSearch extends App.Controller @render( data ) else - data = App.Store.get( 'dashboard_ticket_search' + @name ) + data = App.Store.get( 'dashboard_ticket_search' + @key ) if data @render( data ) @@ -52,24 +54,30 @@ class App.DashboardTicketSearch extends App.Controller @tickets_count = data.tickets_count @ticket_ids = data.tickets per_page = @per_page || 5 - pages_total = parseInt( ( @tickets_count / per_page ) + 0.99999 ) || 1 + + items_total = @tickets_count + items_per_page = Math.min(per_page || 10, @tickets_count) + items_from = @item_from + items_till = items_from-1 + items_per_page + if items_till > items_total + items_till = items_total html = App.view('dashboard/ticket')( - overview: @overview, - pages_total: pages_total, - start_page: @start_page, + overview: @overview + items_per_page: items_per_page + items_from: items_from + items_till: items_till + items_total: items_total ) html = $(html) html.find('li').removeClass('active') html.find(".page [data-id=\"#{@start_page}\"]").parents('li').addClass('active') @tickets_in_table = [] - start = ( @start_page-1 ) * 5 - end = ( @start_page ) * 5 - i = start - while i < end + i = items_from - 1 + while i < items_till + if @ticket_ids[ i ] + @tickets_in_table.push App.Ticket.retrieve( @ticket_ids[ i ] ) i = i + 1 - if @ticket_ids[ i - 1 ] - @tickets_in_table.push App.Ticket.fullLocal( @ticket_ids[ i - 1 ] ) openTicket = (id,e) => ticket = App.Ticket.fullLocal(id) @@ -127,6 +135,13 @@ class App.DashboardTicketSearch extends App.Controller page: (e) => e.preventDefault() id = $(e.target).data('id') - @start_page = id + @item_from = id @load() + page: (e) => + e.preventDefault() + @item_from = $(e.target).data('from') + if !@item_from + @item_from = $(e.target).parent().data('from') + return if !@item_from + @load()