Sonarr/UI/Controller.js

107 lines
3.9 KiB
JavaScript
Raw Normal View History

"use strict";
define(['app', 'Shared/ModalRegion', 'AddSeries/AddSeriesLayout',
2013-04-23 00:35:04 +00:00
'Series/Index/SeriesIndexLayout', 'Upcoming/UpcomingCollectionView',
'Calendar/CalendarCollectionView', 'Shared/NotificationView',
2013-04-20 00:46:56 +00:00
'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');
2013-04-23 00:35:04 +00:00
NzbDrone.mainRegion.show(new NzbDrone.Series.Index.SeriesIndexLayout());
},
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';
2013-03-02 19:13:23 +00:00
}
else {
window.document.title = title + ' - NzbDrone';
2013-03-04 00:09:43 +00:00
}
}
});
2013-02-15 23:38:53 +00:00
//Modal dialog initializer
NzbDrone.addInitializer(function () {
2013-02-15 23:38:53 +00:00
NzbDrone.addRegions({ modalRegion: modalRegion });
2013-02-15 23:38:53 +00:00
NzbDrone.vent.on(NzbDrone.Events.OpenModalDialog, function (options) {
console.log('opening modal dialog ' + options.view.template);
NzbDrone.modalRegion.show(options.view);
});
2013-02-16 00:49:25 +00:00
NzbDrone.vent.on(NzbDrone.Events.CloseModalDialog, function () {
console.log('closing modal dialog');
NzbDrone.modalRegion.close();
});
2013-02-16 00:49:25 +00:00
});
return new controller();
2013-02-16 00:49:25 +00:00
});
2013-02-15 23:38:53 +00:00