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.
Radarr/src/UI/Cells/NzbDroneCell.js

42 lines
1.3 KiB

var Backgrid = require('backgrid');
var Backbone = require('backbone');
module.exports = Backgrid.Cell.extend({
_originalInit : Backgrid.Cell.prototype.initialize,
initialize : function(){
this._originalInit.apply(this, arguments);
this.cellValue = this._getValue();
this.listenTo(this.model, 'change', this._refresh);
if(this._onEdit) {
this.listenTo(this.model, 'backgrid:edit', function(model, column, cell, editor){
if(column.get('name') === this.column.get('name')) {
this._onEdit(model, column, cell, editor);
}
});
}
},
_refresh : function(){
this.cellValue = this._getValue();
this.render();
},
_getValue : function(){
var cellValue = this.column.get('cellValue');
if(cellValue) {
if(cellValue === 'this') {
return this.model;
}
}
var name = this.column.get('name');
if(name === 'this') {
return this.model;
}
var value = this.model.get(name);
if(!value) {
return undefined;
}
if(!value.get && typeof value === 'object') {
value = new Backbone.Model(value);
}
return value;
}
});