1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-22 22:15:17 -04:00

New: Manual Import episodes

This commit is contained in:
Mark McDowall
2015-03-03 16:42:37 -08:00
parent 29ca1bc9da
commit 6dd22e7dcb
66 changed files with 1766 additions and 117 deletions
+46
View File
@@ -0,0 +1,46 @@
var _ = require('underscore');
var vent = require('../../vent');
var NzbDroneCell = require('../../Cells/NzbDroneCell');
var SelectEpisodeLayout = require('../Episode/SelectEpisodeLayout');
module.exports = NzbDroneCell.extend({
className : 'episodes-cell editable',
events : {
'click' : '_onClick'
},
render : function() {
this.$el.empty();
var episodes = this.model.get('episodes');
if (episodes)
{
var episodeNumbers = _.map(episodes, 'episodeNumber');
this.$el.html(episodeNumbers.join(', '));
}
return this;
},
_onClick : function () {
var series = this.model.get('series');
var seasonNumber = this.model.get('seasonNumber');
if (series === undefined || seasonNumber === undefined) {
return;
}
var view = new SelectEpisodeLayout({ series: series, seasonNumber: seasonNumber });
this.listenTo(view, 'manualimport:selected:episodes', this._setEpisodes);
vent.trigger(vent.Commands.OpenModal2Command, view);
},
_setEpisodes : function (e) {
this.model.set('episodes', e.episodes);
}
});
+16
View File
@@ -0,0 +1,16 @@
var NzbDroneCell = require('../../Cells/NzbDroneCell');
module.exports = NzbDroneCell.extend({
className : 'path-cell',
render : function() {
this.$el.empty();
var relativePath = this.model.get('relativePath');
var path = this.model.get('path');
this.$el.html('<div title="{0}">{1}</div>'.format(path, relativePath));
return this;
}
});
+23
View File
@@ -0,0 +1,23 @@
var vent = require('../../vent');
var QualityCell = require('../../Cells/QualityCell');
var SelectQualityLayout = require('../Quality/SelectQualityLayout');
module.exports = QualityCell.extend({
className : 'quality-cell editable',
events : {
'click' : '_onClick'
},
_onClick : function () {
var view = new SelectQualityLayout();
this.listenTo(view, 'manualimport:selected:quality', this._setQuality);
vent.trigger(vent.Commands.OpenModal2Command, view);
},
_setQuality : function (e) {
this.model.set('quality', e.quality);
}
});
+47
View File
@@ -0,0 +1,47 @@
var vent = require('../../vent');
var NzbDroneCell = require('../../Cells/NzbDroneCell');
var SelectSeasonLayout = require('../Season/SelectSeasonLayout');
module.exports = NzbDroneCell.extend({
className : 'season-cell editable',
events : {
'click' : '_onClick'
},
render : function() {
this.$el.empty();
if (this.model.has('seasonNumber')) {
this.$el.html(this.model.get('seasonNumber'));
}
this.delegateEvents();
return this;
},
_onClick : function () {
var series = this.model.get('series');
if (!series) {
return;
}
var view = new SelectSeasonLayout({ seasons: series.seasons });
this.listenTo(view, 'manualimport:selected:season', this._setSeason);
vent.trigger(vent.Commands.OpenModal2Command, view);
},
_setSeason : function (e) {
if (this.model.has('seasonNumber') && e.seasonNumber === this.model.get('seasonNumber')) {
return;
}
this.model.set({
seasonNumber : e.seasonNumber,
episodes : []
});
}
});
+45
View File
@@ -0,0 +1,45 @@
var vent = require('../../vent');
var NzbDroneCell = require('../../Cells/NzbDroneCell');
var SelectSeriesLayout = require('../Series/SelectSeriesLayout');
module.exports = NzbDroneCell.extend({
className : 'series-title-cell editable',
events : {
'click' : '_onClick'
},
render : function() {
this.$el.empty();
var series = this.model.get('series');
if (series)
{
this.$el.html(series.title);
}
this.delegateEvents();
return this;
},
_onClick : function () {
var view = new SelectSeriesLayout();
this.listenTo(view, 'manualimport:selected:series', this._setSeries);
vent.trigger(vent.Commands.OpenModal2Command, view);
},
_setSeries : function (e) {
if (this.model.has('series') && e.model.id === this.model.get('series').id) {
return;
}
this.model.set({
series : e.model.toJSON(),
seasonNumber : undefined,
episodes : []
});
}
});