var reqres = require('../reqres'); var Backbone = require('backbone'); var NzbDroneCell = require('./NzbDroneCell'); var QueueCollection = require('../Activity/Queue/QueueCollection'); var moment = require('moment'); var FormatHelpers = require('../Shared/FormatHelpers'); module.exports = NzbDroneCell.extend({ className : 'episode-status-cell', render : function() { this.listenTo(QueueCollection, 'sync', this._renderCell); this._renderCell(); return this; }, _renderCell : function() { if (this.episodeFile) { this.stopListening(this.episodeFile, 'change', this._refresh); } this.$el.empty(); if (this.model) { var icon; var tooltip; var hasAired = moment(this.model.get('airDateUtc')).isBefore(moment()); this.episodeFile = this._getFile(); if (this.episodeFile) { this.listenTo(this.episodeFile, 'change', this._refresh); var quality = this.episodeFile.get('quality'); var revision = quality.revision; var size = FormatHelpers.bytes(this.episodeFile.get('size')); var title = 'Episode downloaded'; if (revision.real && revision.real > 0) { title += '[REAL]'; } if (revision.version && revision.version > 1) { title += ' [PROPER]'; } if (size !== '') { title += ' - {0}'.format(size); } if (this.episodeFile.get('qualityCutoffNotMet')) { this.$el.html('{1}'.format(title, quality.quality.name)); } else { this.$el.html('{1}'.format(title, quality.quality.name)); } return; } else { var model = this.model; var downloading = QueueCollection.findEpisode(model.get('id')); if (downloading) { var progress = 100 - (downloading.get('sizeleft') / downloading.get('size') * 100); if (progress === 0) { icon = 'icon-sonarr-downloading'; tooltip = 'Episode is downloading'; } else { this.$el.html('