mirror of https://github.com/Radarr/Radarr
100 lines
3.6 KiB
JavaScript
100 lines
3.6 KiB
JavaScript
define(['app', 'Shared/ModalRegion', 'AddSeries/AddSeriesLayout',
|
|
'Series/SeriesCollectionView', 'Upcoming/UpcomingCollectionView',
|
|
'Calendar/CalendarCollectionView', 'Shared/NotificationView',
|
|
'Shared/NotFoundView', 'MainMenuView', 'HeaderView',
|
|
'Series/Details/SeriesDetailsView', 'Series/Details/EpisodeCollection'],
|
|
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());
|
|
},
|
|
|
|
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, action, query, calendarCollection));
|
|
},
|
|
|
|
seriesDetails: function (query) {
|
|
this.setTitle('Series Title Goes Here');
|
|
// var seriesModel = new NzbDrone.Series.SeriesModel();
|
|
// seriesModel.fetch();
|
|
|
|
var seriesEpisodes = new NzbDrone.Series.Details.EpisodeCollection({ seriesId: query });
|
|
seriesEpisodes.fetch({
|
|
success: function (collection) {
|
|
var seasons = collection.models.groupBy(function(episode){
|
|
var seasonNumber = episode.get('seasonNumber');
|
|
|
|
if (seasonNumber === undefined)
|
|
return 0;
|
|
|
|
return seasonNumber;
|
|
});
|
|
|
|
var seasonCollection = new NzbDrone.Series.Details.SeasonCollection();
|
|
|
|
$.each(seasons, function(index, season){
|
|
seasonCollection.add(new NzbDrone.Series.Details.SeasonModel(
|
|
{ seasonNumber: index, episodes: season })
|
|
);
|
|
});
|
|
|
|
NzbDrone.mainRegion.show(new NzbDrone.Series.Details.SeriesDetailsView({ collection: seasonCollection }));
|
|
}
|
|
});
|
|
},
|
|
|
|
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();
|
|
|
|
});
|
|
|