var Marionette = require('marionette'); var NzbDroneCell = require('../../Cells/NzbDroneCell'); module.exports = NzbDroneCell.extend({ className : 'queue-status-cell', template : 'Activity/Queue/QueueStatusCellTemplate', render : function(){ this.$el.empty(); if(this.cellValue) { var status = this.cellValue.get('status').toLowerCase(); var trackedDownloadStatus = this.cellValue.has('trackedDownloadStatus') ? this.cellValue.get('trackedDownloadStatus').toLowerCase() : 'ok'; var icon = 'icon-nd-downloading'; var title = 'Downloading'; var itemTitle = this.cellValue.get('title'); var content = itemTitle; if(status === 'paused') { icon = 'icon-pause'; title = 'Paused'; } if(status === 'queued') { icon = 'icon-cloud'; title = 'Queued'; } if(status === 'completed') { icon = 'icon-inbox'; title = 'Downloaded'; } if(status === 'pending') { icon = 'icon-time'; title = 'Pending'; } if(status === 'failed') { icon = 'icon-nd-download-failed'; title = 'Download failed'; } if(status === 'warning') { icon = 'icon-nd-download-warning'; title = 'Download warning: check download client for more details'; } if(trackedDownloadStatus === 'warning') { icon += ' icon-nd-warning'; this.templateFunction = Marionette.TemplateCache.get(this.template); content = this.templateFunction(this.cellValue.toJSON()); } if(trackedDownloadStatus === 'error') { if(status === 'completed') { icon = 'icon-nd-import-failed'; title = 'Import failed: ' + itemTitle; } else { icon = 'icon-nd-download-failed'; title = 'Download failed'; } this.templateFunction = Marionette.TemplateCache.get(this.template); content = this.templateFunction(this.cellValue.toJSON()); } this.$el.html(''.format(icon)); this.$el.popover({ content : content, html : true, trigger : 'hover', title : title, placement : 'right', container : this.$el }); } return this; } });