Radarr/src/UI/Episode/Activity/EpisodeActivityLayout.js

68 lines
2.2 KiB
JavaScript

var Marionette = require('marionette');
var Backgrid = require('backgrid');
var HistoryCollection = require('../../Activity/History/HistoryCollection');
var EventTypeCell = require('../../Cells/EventTypeCell');
var QualityCell = require('../../Cells/QualityCell');
var RelativeDateCell = require('../../Cells/RelativeDateCell');
var EpisodeActivityActionsCell = require('./EpisodeActivityActionsCell');
var EpisodeActivityDetailsCell = require('./EpisodeActivityDetailsCell');
var NoActivityView = require('./NoActivityView');
var LoadingView = require('../../Shared/LoadingView');
module.exports = Marionette.Layout.extend({
template : 'Episode/Activity/EpisodeActivityLayoutTemplate',
regions : {activityTable : '.activity-table'},
columns : [{
name : 'eventType',
label : '',
cell : EventTypeCell,
cellValue : 'this'
}, {
name : 'sourceTitle',
label : 'Source Title',
cell : 'string'
}, {
name : 'quality',
label : 'Quality',
cell : QualityCell
}, {
name : 'date',
label : 'Date',
cell : RelativeDateCell
}, {
name : 'this',
label : '',
cell : EpisodeActivityDetailsCell,
sortable : false
}, {
name : 'this',
label : '',
cell : EpisodeActivityActionsCell,
sortable : false
}],
initialize : function(options){
this.model = options.model;
this.series = options.series;
this.collection = new HistoryCollection({
episodeId : this.model.id,
tableName : 'episodeActivity'
});
this.collection.fetch();
this.listenTo(this.collection, 'sync', this._showTable);
},
onRender : function(){
this.activityTable.show(new LoadingView());
},
_showTable : function(){
if(this.collection.any()) {
this.activityTable.show(new Backgrid.Grid({
collection : this.collection,
columns : this.columns,
className : 'table table-hover table-condensed'
}));
}
else {
this.activityTable.show(new NoActivityView());
}
}
});