Episode details uses listenTo instead of promises

This commit is contained in:
Mark McDowall 2013-10-07 23:03:00 -07:00
parent 78a5dbe097
commit 86ea33b638
2 changed files with 12 additions and 20 deletions

View File

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

View File

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