sonarr-repo-only/UI/Series/Details/SeriesDetailsLayout.js

58 lines
1.8 KiB
JavaScript

'use strict';
define(
[
'marionette',
'Series/EpisodeCollection',
'Series/SeasonCollection',
'Series/Details/SeasonCollectionView',
'Shared/LoadingView',
'backstrech'
], function (Marionette, EpisodeCollection, SeasonCollection, SeasonCollectionView, LoadingView) {
return Marionette.Layout.extend({
itemViewContainer: '.x-series-seasons',
template : 'Series/Details/SeriesDetailsTemplate',
regions: {
seasons: '#seasons'
},
ui: {
header: '.x-header'
},
initialize: function () {
$('body').addClass('backdrop');
},
onShow: function () {
var self = this;
if (this.model.has('fanArt')) {
$.backstretch(this.model.get('fanArt'));
}
else {
$('body').removeClass('backdrop');
}
this.seasons.show(new LoadingView());
this.seasonCollection = new SeasonCollection();
this.episodeCollection = new EpisodeCollection();
$.when(this.episodeCollection.fetch({data: { seriesId: this.model.id }}), this.seasonCollection.fetch({data: { seriesId: this.model.id }})).done(function () {
self.seasons.show(new SeasonCollectionView({
collection : self.seasonCollection,
episodeCollection: self.episodeCollection,
series : self.model
}));
});
},
onClose: function () {
$('.backstretch').remove();
$('body').removeClass('backdrop');
}
});
});