'use strict' ;
define (
[
'marionette' ,
'backgrid' ,
'Missing/Collection' ,
'Cells/SeriesTitleCell' ,
'Cells/EpisodeNumberCell' ,
'Cells/EpisodeTitleCell' ,
'Cells/RelativeDateCell' ,
'Shared/Grid/Pager' ,
'Shared/Toolbar/ToolbarLayout' ,
'Shared/LoadingView'
] , function ( Marionette , Backgrid , MissingCollection , SeriesTitleCell , EpisodeNumberCell , EpisodeTitleCell , RelativeDateCell , GridPager , ToolbarLayout , 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 : 'airDateUtc' ,
label : 'Air Date' ,
cell : RelativeDateCell
}
] ,
leftSideButtons : {
type : 'default' ,
storeState : false ,
items :
[
{
title : 'Season Pass' ,
icon : 'icon-bookmark' ,
route : 'seasonpass'
}
]
} ,
_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 ( ) ;
} ) ;
this . _showToolbar ( ) ;
} ,
_showToolbar : function ( ) {
this . toolbar . show ( new ToolbarLayout ( {
left :
[
this . leftSideButtons
] ,
context : this
} ) ) ;
}
} ) ;
} ) ;