Improved background fetching of data.
This commit is contained in:
parent
54d5cab51d
commit
355b32d715
2 changed files with 68 additions and 44 deletions
|
@ -13,8 +13,8 @@ class App.DashboardTicket extends App.Controller
|
||||||
@start_page = 1
|
@start_page = 1
|
||||||
@navupdate '#'
|
@navupdate '#'
|
||||||
|
|
||||||
# refresh list ever 60 sec.
|
# refresh list ever 40 sec.
|
||||||
@interval( @fetch, 60000, 'dashboard_ticket_overview_' + @view )
|
@interval( @fetch, 400000, 'dashboard_ticket_overview_' + @view )
|
||||||
|
|
||||||
fetch: =>
|
fetch: =>
|
||||||
|
|
||||||
|
@ -63,7 +63,8 @@ class App.DashboardTicket extends App.Controller
|
||||||
@loadCollection( type: 'Ticket', data: data.tickets )
|
@loadCollection( type: 'Ticket', data: data.tickets )
|
||||||
|
|
||||||
# set cache
|
# set cache
|
||||||
window.LastRefresh[ @key ] = data
|
if @start_page is 1
|
||||||
|
window.LastRefresh[ @key ] = data
|
||||||
|
|
||||||
@render( data )
|
@render( data )
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Index extends App.Controller
|
||||||
|
|
||||||
# set title
|
# set title
|
||||||
@title ''
|
@title ''
|
||||||
@navupdate '#ticket_view'
|
@navupdate '#ticket/view/' + @view
|
||||||
|
|
||||||
@tickets = []
|
@tickets = []
|
||||||
@tickets_count = 0
|
@tickets_count = 0
|
||||||
|
@ -26,10 +26,23 @@ class Index extends App.Controller
|
||||||
@meta = {}
|
@meta = {}
|
||||||
@bulk = {}
|
@bulk = {}
|
||||||
|
|
||||||
# @render()
|
# set controller to active
|
||||||
@fetch()
|
Config['ActiveController'] = '#ticket_overview_' + @view
|
||||||
|
|
||||||
fetch: ->
|
# refresh list ever 40 sec.
|
||||||
|
@interval( @fetch, 400000, 'ticket_overview_' + @view )
|
||||||
|
|
||||||
|
fetch: =>
|
||||||
|
|
||||||
|
# set new key
|
||||||
|
@key = @view
|
||||||
|
|
||||||
|
# use cache of first page
|
||||||
|
if window.LastRefresh[ @key ] && @start_page is 1
|
||||||
|
@overview = window.LastRefresh[ @key ].overview
|
||||||
|
@tickets_count = window.LastRefresh[ @key ].tickets_count
|
||||||
|
@tickets = window.LastRefresh[ @key ].tickets
|
||||||
|
@render()
|
||||||
|
|
||||||
# get data
|
# get data
|
||||||
if @req
|
if @req
|
||||||
|
@ -44,51 +57,61 @@ class Index extends App.Controller
|
||||||
start_page: @start_page,
|
start_page: @start_page,
|
||||||
}
|
}
|
||||||
processData: true,
|
processData: true,
|
||||||
success: (data, status, xhr) =>
|
success: @load
|
||||||
|
|
||||||
# get meta data
|
|
||||||
@overview = data.overview
|
|
||||||
App.Overview.refresh( @overview, options: { clear: true } )
|
|
||||||
|
|
||||||
App.Overview.unbind('local:rerender')
|
|
||||||
App.Overview.bind 'local:rerender', (record) =>
|
|
||||||
@log 'rerender...', record
|
|
||||||
@render()
|
|
||||||
|
|
||||||
App.Overview.unbind('local:refetch')
|
|
||||||
App.Overview.bind 'local:refetch', (record) =>
|
|
||||||
@log 'refetch...', record
|
|
||||||
@fetch()
|
|
||||||
|
|
||||||
# set page title
|
|
||||||
@title @overview.meta.name
|
|
||||||
|
|
||||||
# load user collection
|
|
||||||
@loadCollection( type: 'User', data: data.users )
|
|
||||||
|
|
||||||
# load ticket collection
|
|
||||||
@loadCollection( type: 'Ticket', data: data.tickets )
|
|
||||||
|
|
||||||
# remember ticket order
|
|
||||||
@tickets = @tickets.concat( data.tickets )
|
|
||||||
|
|
||||||
# remember ticket count
|
|
||||||
@tickets_count = data.tickets_count
|
|
||||||
|
|
||||||
|
|
||||||
# remeber bulk attributes
|
|
||||||
@bulk = data.bulk
|
|
||||||
|
|
||||||
# render page
|
|
||||||
@render()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
load: (data) =>
|
||||||
|
|
||||||
|
# get meta data
|
||||||
|
@overview = data.overview
|
||||||
|
App.Overview.refresh( @overview, options: { clear: true } )
|
||||||
|
|
||||||
|
App.Overview.unbind('local:rerender')
|
||||||
|
App.Overview.bind 'local:rerender', (record) =>
|
||||||
|
@log 'rerender...', record
|
||||||
|
@render()
|
||||||
|
|
||||||
|
App.Overview.unbind('local:refetch')
|
||||||
|
App.Overview.bind 'local:refetch', (record) =>
|
||||||
|
@log 'refetch...', record
|
||||||
|
@fetch()
|
||||||
|
|
||||||
|
# set page title
|
||||||
|
@title @overview.meta.name
|
||||||
|
|
||||||
|
# load user collection
|
||||||
|
@loadCollection( type: 'User', data: data.users )
|
||||||
|
|
||||||
|
# load ticket collection
|
||||||
|
@loadCollection( type: 'Ticket', data: data.tickets )
|
||||||
|
|
||||||
|
# remember ticket order
|
||||||
|
if @start_page is 1
|
||||||
|
@tickets = data.tickets
|
||||||
|
else
|
||||||
|
@tickets = @tickets.concat( data.tickets )
|
||||||
|
|
||||||
|
# remember ticket count
|
||||||
|
@tickets_count = data.tickets_count
|
||||||
|
|
||||||
|
# remeber bulk attributes
|
||||||
|
@bulk = data.bulk
|
||||||
|
|
||||||
|
# set cache
|
||||||
|
if @start_page is 1
|
||||||
|
window.LastRefresh[ @key ] = data
|
||||||
|
|
||||||
|
# render page
|
||||||
|
@render()
|
||||||
|
|
||||||
# refresh/load default collections
|
# refresh/load default collections
|
||||||
# for key, value of data.default_collections
|
# for key, value of data.default_collections
|
||||||
# App[key].refresh( value, options: { clear: true } )
|
# App[key].refresh( value, options: { clear: true } )
|
||||||
|
|
||||||
render: ->
|
render: ->
|
||||||
|
|
||||||
|
return if Config['ActiveController'] isnt '#ticket_overview_' + @view
|
||||||
|
|
||||||
# get total pages
|
# get total pages
|
||||||
pages_total = parseInt( ( @tickets_count / @overview.view[@view_mode].per_page ) + 0.99999 ) || 1
|
pages_total = parseInt( ( @tickets_count / @overview.view[@view_mode].per_page ) + 0.99999 ) || 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue