'use strict' ;
define (
[
'marionette' ,
'backgrid' ,
'Missing/Collection' ,
'Cells/SeriesTitleCell' ,
'Cells/EpisodeNumberCell' ,
'Cells/EpisodeTitleCell' ,
'Cells/AirDateCell' ,
'Shared/Grid/Pager' ,
'Shared/LoadingView'
] , function ( Marionette , Backgrid , MissingCollection , SeriesTitleCell , EpisodeNumberCell , EpisodeTitleCell , AirDateCell , GridPager , LoadingView ) {
return Marionette . Layout . extend ( {
template : 'Missing/MissingLayoutTemplate' ,
regions : {
missing : '#x-missing' ,
toolbar : '#x-toolbar' ,
pager : '#x-pager'
} ,
columns :
[
{
name : 'series' ,
label : 'Series Title' ,
sortable : false ,
cell : SeriesTitleCell
} ,
{
name : 'this' ,
label : 'Episode' ,
sortable : false ,
cell : EpisodeNumberCell
} ,
{
name : 'this' ,
label : 'Episode Title' ,
sortable : false ,
cell : EpisodeTitleCell
} ,
{
name : 'airDate' ,
label : 'Air Date' ,
cell : AirDateCell
}
] ,
_showTable : function ( ) {
this . missing . show ( new Backgrid . Grid ( {
columns : this . columns ,
collection : this . missingCollection ,
className : 'table table-hover'
} ) ) ;
this . pager . show ( new GridPager ( {
columns : this . columns ,
collection : this . missingCollection
} ) ) ;
} ,
onShow : function ( ) {
var self = this ;
this . missing . show ( new LoadingView ( ) ) ;
this . missingCollection = new MissingCollection ( ) ;
this . missingCollection . fetch ( ) . done ( function ( ) {
self . _showTable ( ) ;
} ) ;
}
} ) ;
} ) ;