diff --git a/UI/Commands/CommandController.js b/UI/Commands/CommandController.js index 16a0a17f9..2b7bc3e90 100644 --- a/UI/Commands/CommandController.js +++ b/UI/Commands/CommandController.js @@ -4,7 +4,7 @@ define(['app'], function () { NzbDrone.Commands.Execute = function (name, properties) { var data = { command: name }; - if (!properties) { + if (properties) { $.extend(data, properties); } diff --git a/UI/Series/Details/SeasonLayout.js b/UI/Series/Details/SeasonLayout.js index ea1da3b97..1b4fcfe64 100644 --- a/UI/Series/Details/SeasonLayout.js +++ b/UI/Series/Details/SeasonLayout.js @@ -4,11 +4,20 @@ define([ 'Cells/EpisodeStatusCell', 'Cells/EpisodeTitleCell', 'Cells/AirDateCell', - 'Cells/ToggleCell'], - function (App, EpisodeStatusCell, EpisodeTitleCell, AirDateCell, ToggleCell) { + 'Cells/ToggleCell', + 'Shared/Messenger'], + function (App, EpisodeStatusCell, EpisodeTitleCell, AirDateCell, ToggleCell, Messenger) { return Backbone.Marionette.Layout.extend({ template: 'Series/Details/SeasonLayoutTemplate', + ui: { + seasonSearch: '.x-season-search' + }, + + events: { + 'click .x-season-search': '_seasonSearch' + }, + regions: { episodeGrid: '#x-episode-grid' }, @@ -63,6 +72,40 @@ define([ collection: this.episodeCollection, className : 'table table-hover season-grid' })); + }, + + _seasonSearch: function () { + var command = 'seasonSearch'; + + this.idle = false; + + this.ui.seasonSearch.addClass('icon-spinner icon-spin'); + + var properties = { + seriesId: this.model.get('seriesId'), + seasonNumber: this.model.get('seasonNumber') + }; + + var self = this; + var commandPromise = App.Commands.Execute(command, properties); + + commandPromise.fail(function (options) { + if (options.readyState === 0 || options.status === 0) { + return; + } + + Messenger.show({ + message: 'Season search failed', + type : 'error' + }); + }); + + commandPromise.always(function () { + if (!self.isClosed) { + self.ui.seasonSearch.removeClass('icon-spinner icon-spin'); + self.idle = true; + } + }); } }); }); diff --git a/UI/Series/Details/SeasonLayoutTemplate.html b/UI/Series/Details/SeasonLayoutTemplate.html index 472a5dd68..4522cc268 100644 --- a/UI/Series/Details/SeasonLayoutTemplate.html +++ b/UI/Series/Details/SeasonLayoutTemplate.html @@ -1,4 +1,4 @@