"use strict" ;
define ( [ 'app' , 'Shared/ModalRegion' , 'AddSeries/AddSeriesLayout' ,
'Series/Index/SeriesIndexCollectionView' , 'Upcoming/UpcomingCollectionView' ,
'Calendar/CalendarCollectionView' , 'Shared/NotificationView' ,
'Shared/NotFoundView' , 'MainMenuView' ,
'Series/Details/SeriesDetailsView' , 'Series/EpisodeCollection' ,
'Settings/SettingsLayout' , 'Missing/MissingCollectionView' ] ,
function ( app , modalRegion ) {
var controller = Backbone . Marionette . Controller . extend ( {
series : function ( ) {
this . _setTitle ( 'NzbDrone' ) ;
NzbDrone . mainRegion . show ( new NzbDrone . Series . Index . SeriesIndexCollectionView ( ) ) ;
} ,
seriesDetails : function ( query ) {
var self = this ;
this . _setTitle ( 'Loading Series' ) ;
var series = new NzbDrone . Series . SeriesModel ( { id : query } ) ;
series . fetch ( {
success : function ( seriesModel ) {
self . _setTitle ( seriesModel . get ( 'title' ) ) ;
NzbDrone . mainRegion . show ( new NzbDrone . Series . Details . SeriesDetailsView ( { model : seriesModel } ) ) ;
}
} ) ;
} ,
addSeries : function ( action ) {
this . _setTitle ( 'Add Series' ) ;
NzbDrone . mainRegion . show ( new NzbDrone . AddSeries . AddSeriesLayout ( { action : action } ) ) ;
} ,
upcoming : function ( ) {
this . _setTitle ( 'Upcoming' ) ;
NzbDrone . mainRegion . show ( new NzbDrone . Upcoming . UpcomingCollectionView ( ) ) ;
} ,
calendar : function ( ) {
this . _setTitle ( 'Calendar' ) ;
var calendarCollection = new NzbDrone . Calendar . CalendarCollection ( ) ;
calendarCollection . fetch ( ) ;
NzbDrone . mainRegion . show ( new NzbDrone . Calendar . CalendarCollectionView ( { collection : calendarCollection } ) ) ;
} ,
settings : function ( action ) {
this . _setTitle ( 'Settings' ) ;
var settingsModel = new NzbDrone . Settings . SettingsModel ( ) ;
settingsModel . fetch ( {
success : function ( settings ) {
NzbDrone . mainRegion . show ( new NzbDrone . Settings . SettingsLayout ( { settings : settings , action : action } ) ) ;
}
} ) ;
} ,
missing : function ( ) {
this . _setTitle ( 'Missing' ) ;
var missingCollection = new NzbDrone . Missing . MissingCollection ( ) ;
missingCollection . fetch ( {
success : function ( ) {
NzbDrone . mainRegion . show ( new NzbDrone . Missing . MissingCollectionView ( { collection : missingCollection } ) ) ;
}
} ) ;
} ,
notFound : function ( ) {
this . _setTitle ( 'Not Found' ) ;
NzbDrone . mainRegion . show ( new NzbDrone . Shared . NotFoundView ( this ) ) ;
} ,
_setTitle : function ( title ) {
$ ( '#title-region' ) . html ( title ) ;
if ( title . toLocaleLowerCase ( ) === 'nzbdrone' ) {
window . document . title = 'NzbDrone' ;
}
else {
window . document . title = title + ' - NzbDrone' ;
}
}
} ) ;
//Modal dialog initializer
NzbDrone . addInitializer ( function ( ) {
NzbDrone . addRegions ( { modalRegion : modalRegion } ) ;
NzbDrone . vent . on ( NzbDrone . Events . OpenModalDialog , function ( options ) {
console . log ( 'opening modal dialog ' + options . view . template ) ;
NzbDrone . modalRegion . show ( options . view ) ;
} ) ;
NzbDrone . vent . on ( NzbDrone . Events . CloseModalDialog , function ( ) {
console . log ( 'closing modal dialog' ) ;
NzbDrone . modalRegion . close ( ) ;
} ) ;
} ) ;
return new controller ( ) ;
} ) ;