'use strict';
define(
[
'backgrid',
'moment',
'Shared/FormatHelpers'
], function (Backgrid, Moment, FormatHelpers) {
return Backgrid.Cell.extend({
className: 'episode-status-cell',
render: function () {
this.$el.empty();
if (this.model) {
var icon;
var tooltip;
var hasAired = Moment(this.model.get('airDateUtc')).isBefore(Moment());
var hasFile = this.model.get('hasFile');
if (hasFile) {
var episodeFile = this.model.get('episodeFile');
var quality = episodeFile.quality;
var size = FormatHelpers.bytes(episodeFile.size);
var title = 'Episode downloaded';
if (quality.proper) {
title += ' [PROPER] - {0}'.format(size);
this.$el.html('{1}'.format(title, quality.quality.name));
}
else {
title += ' - {0}'.format(size);
this.$el.html('{1}'.format(title, quality.quality.name));
}
return this;
}
else {
if (this.model.get('downloading')) {
icon = 'icon-download-alt';
tooltip = 'Episode is downloading';
}
else if (!this.model.get('airDateUtc')) {
icon = 'icon-question-sign';
tooltip = 'TBA';
}
else if (hasAired) {
icon = 'icon-warning-sign';
tooltip = 'Episode missing from disk';
}
else {
icon = 'icon-time';
tooltip = 'Episode has not aired';
}
}
this.$el.html(''.format(icon, tooltip));
}
return this;
}
});
});