You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/UI/ManualImport/Episode/SelectEpisodeLayout.js

82 lines
2.4 KiB

var _ = require('underscore');
var vent = require('vent');
var Marionette = require('marionette');
var Backgrid = require('backgrid');
var EpisodeCollection = require('../../Series/EpisodeCollection');
var LoadingView = require('../../Shared/LoadingView');
var SelectAllCell = require('../../Cells/SelectAllCell');
var EpisodeNumberCell = require('../../Series/Details/EpisodeNumberCell');
var RelativeDateCell = require('../../Cells/RelativeDateCell');
var SelectEpisodeRow = require('./SelectEpisodeRow');
module.exports = Marionette.Layout.extend({
template : 'ManualImport/Episode/SelectEpisodeLayoutTemplate',
regions : {
episodes : '.x-episodes'
},
events : {
'click .x-select' : '_selectEpisodes'
},
columns : [
{
name : '',
cell : SelectAllCell,
headerCell : 'select-all',
sortable : false
},
{
name : 'episodeNumber',
label : '#',
cell : EpisodeNumberCell
},
{
name : 'title',
label : 'Title',
hideSeriesLink : true,
cell : 'string',
sortable : false
},
{
name : 'airDateUtc',
label : 'Air Date',
cell : RelativeDateCell
}
],
initialize : function(options) {
this.series = options.series;
this.seasonNumber = options.seasonNumber;
},
onRender : function() {
this.episodes.show(new LoadingView());
this.episodeCollection = new EpisodeCollection({ seriesId : this.series.id });
this.episodeCollection.fetch();
this.listenToOnce(this.episodeCollection, 'sync', function () {
this.episodeView = new Backgrid.Grid({
columns : this.columns,
collection : this.episodeCollection.bySeason(this.seasonNumber),
className : 'table table-hover season-grid',
row : SelectEpisodeRow
});
this.episodes.show(this.episodeView);
});
},
_selectEpisodes : function () {
var episodes = _.map(this.episodeView.getSelectedModels(), function (episode) {
return episode.toJSON();
});
this.trigger('manualimport:selected:episodes', { episodes: episodes });
vent.trigger(vent.Commands.CloseModal2Command);
}
});