Episode details uses listenTo instead of promises

pull/2/head
Mark McDowall 11 years ago
parent 78a5dbe097
commit 86ea33b638

@ -40,6 +40,8 @@ define(
this.series = SeriesCollection.find({ id: this.model.get('seriesId') }); this.series = SeriesCollection.find({ id: this.model.get('seriesId') });
this.templateHelpers.series = this.series.toJSON(); this.templateHelpers.series = this.series.toJSON();
this.openingTab = options.openingTab || 'summary'; this.openingTab = options.openingTab || 'summary';
this.listenTo(this.model, 'sync', this._setMonitoredState);
}, },
onShow: function () { onShow: function () {
@ -85,17 +87,11 @@ define(
}, },
_toggleMonitored: function () { _toggleMonitored: function () {
var self = this;
var name = 'monitored'; var name = 'monitored';
this.model.set(name, !this.model.get(name), { silent: true }); this.model.set(name, !this.model.get(name), { silent: true });
this.ui.monitored.addClass('icon-spinner icon-spin'); this.ui.monitored.addClass('icon-spinner icon-spin');
this.model.save();
var promise = this.model.save();
promise.always(function () {
self._setMonitoredState();
});
}, },
_setMonitoredState: function () { _setMonitoredState: function () {

@ -26,6 +26,9 @@ define(
initialize: function () { initialize: function () {
this.mainView = new ButtonsView(); this.mainView = new ButtonsView();
this.releaseCollection = new ReleaseCollection();
this.listenTo(this.releaseCollection, 'sync', this._showSearchResults);
}, },
onShow: function () { onShow: function () {
@ -55,20 +58,9 @@ define(
e.preventDefault(); e.preventDefault();
} }
var self = this;
this.mainView = new LoadingView(); this.mainView = new LoadingView();
this._showMainView(); this._showMainView();
this.releaseCollection.fetchEpisodeReleases(this.model.id);
var releases = new ReleaseCollection();
var promise = releases.fetchEpisodeReleases(this.model.id);
promise.done(function () {
if (!self.isClosed) {
self.mainView = new ManualSearchLayout({collection: releases});
self._showMainView();
}
});
}, },
_showMainView: function () { _showMainView: function () {
@ -78,7 +70,11 @@ define(
_showButtons: function () { _showButtons: function () {
this.mainView = new ButtonsView(); this.mainView = new ButtonsView();
this._showMainView(); this._showMainView();
},
_showSearchResults: function () {
this.mainView = new ManualSearchLayout({ collection: this.releaseCollection });
this._showMainView();
} }
}); });
}); });

Loading…
Cancel
Save