diff --git a/src/NzbDrone.Api/Series/SeriesModule.cs b/src/NzbDrone.Api/Series/SeriesModule.cs index 7d501459e..72799e9ae 100644 --- a/src/NzbDrone.Api/Series/SeriesModule.cs +++ b/src/NzbDrone.Api/Series/SeriesModule.cs @@ -25,7 +25,8 @@ namespace NzbDrone.Api.Series IHandle, IHandle, IHandle, - IHandle + IHandle, + IHandle { private readonly ISeriesService _seriesService; @@ -224,5 +225,10 @@ namespace NzbDrone.Api.Series { BroadcastResourceChange(ModelAction.Updated, message.Series.Id); } + + public void Handle(MediaCoversUpdatedEvent message) + { + BroadcastResourceChange(ModelAction.Updated, message.Series.Id); + } } } diff --git a/src/UI/Series/Details/SeriesDetailsLayout.js b/src/UI/Series/Details/SeriesDetailsLayout.js index 8d77d2464..5775c38a1 100644 --- a/src/UI/Series/Details/SeriesDetailsLayout.js +++ b/src/UI/Series/Details/SeriesDetailsLayout.js @@ -31,7 +31,8 @@ module.exports = Marionette.Layout.extend({ edit : '.x-edit', refresh : '.x-refresh', rename : '.x-rename', - search : '.x-search' + search : '.x-search', + poster : '.x-series-poster' }, events : { @@ -56,18 +57,12 @@ module.exports = Marionette.Layout.extend({ this._refresh(); } }); + + this.listenTo(this.model, 'change:images', this._updateImages); }, onShow : function() { - $('body').addClass('backdrop'); - var fanArt = this._getFanArt(); - - if (fanArt) { - this._backstrech = $.backstretch(fanArt); - } else { - $('body').removeClass('backdrop'); - } - + this._showBackdrop(); this._showSeasons(); this._setMonitoredState(); this._showInfo(); @@ -107,11 +102,11 @@ module.exports = Marionette.Layout.extend({ reqres.removeHandler(reqres.Requests.GetEpisodeFileById); }, - _getFanArt : function() { - var fanArt = _.where(this.model.get('images'), { coverType : 'fanart' }); + _getImage : function(type) { + var image = _.where(this.model.get('images'), { coverType : type }); - if (fanArt && fanArt[0]) { - return fanArt[0].url; + if (image && image[0]) { + return image[0].url; } return undefined; @@ -231,5 +226,26 @@ module.exports = Marionette.Layout.extend({ }); vent.trigger(vent.Commands.OpenModalCommand, view); + }, + + _updateImages : function () { + var poster = this._getImage('poster'); + + if (poster) { + this.ui.poster.attr('src', poster); + } + + this._showBackdrop(); + }, + + _showBackdrop : function () { + $('body').addClass('backdrop'); + var fanArt = this._getImage('fanart'); + + if (fanArt) { + this._backstrech = $.backstretch(fanArt); + } else { + $('body').removeClass('backdrop'); + } } }); \ No newline at end of file