define(['app', 'Shared/ModalRegion', 'AddSeries/AddSeriesLayout', 'Series/SeriesCollectionView', 'Upcoming/UpcomingCollectionView', 'Calendar/CalendarCollectionView', 'Shared/NotificationView', 'Shared/NotFoundView'], function (app, modalRegion) { var controller = Backbone.Marionette.Controller.extend({ addSeries: function (action, query) { this.setTitle('Add Series'); NzbDrone.mainRegion.show(new NzbDrone.AddSeries.AddSeriesLayout(this, action, query)); }, series: function (action, query) { this.setTitle('NzbDrone'); NzbDrone.mainRegion.show(new NzbDrone.Series.SeriesCollectionView(this, action, query)); }, upcoming: function (action, query) { this.setTitle('Upcoming'); NzbDrone.mainRegion.show(new NzbDrone.Upcoming.UpcomingCollectionView(this, action, query)); }, calendar: function (action, query) { this.setTitle('Calendar'); var calendarCollection = new NzbDrone.Calendar.CalendarCollection(); calendarCollection.fetch(); NzbDrone.mainRegion.show(new NzbDrone.Calendar.CalendarCollectionView(this, calendarCollection, action, query)); }, 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'; } } }); 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(); });