1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-14 11:23:42 +02:00
Sonarr/NzbDrone.Backbone/Controller.js

95 lines
3.3 KiB
JavaScript
Raw Normal View History

2013-03-02 22:13:23 +03:00
define(['app', 'Shared/ModalRegion', 'AddSeries/AddSeriesLayout',
2013-03-04 01:42:26 +03:00
'Series/Index/SeriesIndexCollectionView', 'Upcoming/UpcomingCollectionView',
2013-03-02 22:13:23 +03:00
'Calendar/CalendarCollectionView', 'Shared/NotificationView',
'Shared/NotFoundView', 'MainMenuView', 'HeaderView',
2013-03-04 03:29:48 +03:00
'Series/Details/SeriesDetailsView', 'Series/EpisodeCollection',
2013-03-04 03:09:43 +03:00
'Settings/SettingsLayout'],
2013-03-02 22:13:23 +03:00
function (app, modalRegion) {
2013-02-16 02:38:53 +03:00
2013-02-18 06:37:13 +03:00
var controller = Backbone.Marionette.Controller.extend({
2013-02-16 02:38:53 +03:00
addSeries: function (action, query) {
this.setTitle('Add Series');
2013-02-18 06:37:13 +03:00
NzbDrone.mainRegion.show(new NzbDrone.AddSeries.AddSeriesLayout(this, action, query));
2013-02-16 02:38:53 +03:00
},
series: function (action, query) {
this.setTitle('NzbDrone');
2013-03-04 01:42:26 +03:00
NzbDrone.mainRegion.show(new NzbDrone.Series.Index.SeriesIndexCollectionView());
2013-02-16 02:38:53 +03:00
},
2013-02-20 10:45:52 +03:00
upcoming: function (action, query) {
this.setTitle('Upcoming');
NzbDrone.mainRegion.show(new NzbDrone.Upcoming.UpcomingCollectionView(this, action, query));
},
calendar: function (action, query) {
this.setTitle('Calendar');
2013-02-25 03:00:17 +03:00
var calendarCollection = new NzbDrone.Calendar.CalendarCollection();
calendarCollection.fetch();
2013-02-28 07:48:31 +03:00
NzbDrone.mainRegion.show(new NzbDrone.Calendar.CalendarCollectionView(this, action, query, calendarCollection));
},
2013-02-20 10:45:52 +03:00
2013-03-02 22:13:23 +03:00
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 }));
2013-03-02 22:13:23 +03:00
}
});
},
2013-03-04 03:09:43 +03:00
settings: function(action, query) {
this.setTitle('Settings');
var settingsModel = new NzbDrone.Settings.SettingsModel();
settingsModel.fetch({
success: function(settings){
NzbDrone.mainRegion.show(new NzbDrone.Settings.SettingsLayout(this, action, query, settings));
}
});
},
2013-02-16 02:38:53 +03:00
notFound: function () {
this.setTitle('Not Found');
2013-02-18 06:37:13 +03:00
NzbDrone.mainRegion.show(new NzbDrone.Shared.NotFoundView(this));
2013-02-16 02:38:53 +03:00
},
2013-02-18 06:37:13 +03:00
setTitle: function (title) {
2013-02-16 02:38:53 +03:00
$('#title-region').html(title);
2013-02-18 06:37:13 +03:00
if (title.toLocaleLowerCase() === 'nzbdrone') {
2013-02-16 02:38:53 +03:00
window.document.title = 'NzbDrone';
}
2013-02-18 06:37:13 +03:00
else {
2013-02-16 02:38:53 +03:00
window.document.title = title + ' - NzbDrone';
}
}
});
//Modal dialog initializer
2013-02-16 03:49:25 +03:00
NzbDrone.addInitializer(function () {
2013-02-18 06:37:13 +03:00
NzbDrone.addRegions({ modalRegion: modalRegion });
2013-02-16 03:49:25 +03:00
NzbDrone.vent.on(NzbDrone.Events.OpenModalDialog, function (options) {
2013-02-18 06:37:13 +03:00
console.log('opening modal dialog ' + options.view.template);
2013-02-16 03:49:25 +03:00
NzbDrone.modalRegion.show(options.view);
});
NzbDrone.vent.on(NzbDrone.Events.CloseModalDialog, function () {
console.log('closing modal dialog');
NzbDrone.modalRegion.close();
});
});
2013-02-16 02:38:53 +03:00
return new controller();
});