Manual search is persistent through tab changes

This commit is contained in:
Mark McDowall 2013-07-03 20:04:26 -07:00
parent a2d993138c
commit 9d6f7efbf2
8 changed files with 43 additions and 21 deletions

View File

@ -2,7 +2,6 @@
<FileVersion>1</FileVersion> <FileVersion>1</FileVersion>
<AutoEnableOnStartup>False</AutoEnableOnStartup> <AutoEnableOnStartup>False</AutoEnableOnStartup>
<AllowParallelTestExecution>true</AllowParallelTestExecution> <AllowParallelTestExecution>true</AllowParallelTestExecution>
<AllowTestsToRunInParallelWithThemselves>true</AllowTestsToRunInParallelWithThemselves>
<FrameworkUtilisationTypeForNUnit>UseDynamicAnalysis</FrameworkUtilisationTypeForNUnit> <FrameworkUtilisationTypeForNUnit>UseDynamicAnalysis</FrameworkUtilisationTypeForNUnit>
<FrameworkUtilisationTypeForGallio>Disabled</FrameworkUtilisationTypeForGallio> <FrameworkUtilisationTypeForGallio>Disabled</FrameworkUtilisationTypeForGallio>
<FrameworkUtilisationTypeForMSpec>Disabled</FrameworkUtilisationTypeForMSpec> <FrameworkUtilisationTypeForMSpec>Disabled</FrameworkUtilisationTypeForMSpec>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="JavaScriptLibraryMappings"> <component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{backbone.backgrid.filter.js, jQuery-1.9.1}" /> <file url="PROJECT" libraries="{backbone.backgrid.filter.js}" />
</component> </component>
</project> </project>

View File

@ -30,7 +30,7 @@ define(
onShow: function () { onShow: function () {
this._showSummary(); this._showSummary();
this._releaseSearchActivated = false; this.searchLayout = new SearchLayout({ model: this.model });
}, },
@ -58,7 +58,7 @@ define(
} }
this.ui.search.tab('show'); this.ui.search.tab('show');
this.search.show(new SearchLayout({ model: this.model })); this.search.show(this.searchLayout);
} }
}); });

View File

@ -0,0 +1,11 @@
'use strict';
define(
[
'app',
'marionette'
], function (App, Marionette) {
return Marionette.ItemView.extend({
template: 'Episode/Search/ButtonsViewTemplate'
});
});

View File

@ -0,0 +1,4 @@
<div class="search-buttons">
<button class="btn btn-large btn-block x-search-auto"><i class="icon-rocket"/> Automatic Search</button>
<button class="btn btn-large btn-block btn-primary x-search-manual"><i class="icon-user"/> Manual Search</button>
</div>

View File

@ -3,12 +3,13 @@ define(
[ [
'app', 'app',
'marionette', 'marionette',
'Episode/Search/ButtonsView',
'Episode/Search/ManualLayout', 'Episode/Search/ManualLayout',
'Release/Collection', 'Release/Collection',
'Shared/SpinnerView', 'Shared/SpinnerView',
'Shared/Messenger', 'Shared/Messenger',
'Commands/CommandController' 'Commands/CommandController'
], function (App, Marionette, ManualSearchLayout, ReleaseCollection, SpinnerView, Messenger, CommandController) { ], function (App, Marionette, ButtonsView, ManualSearchLayout, ReleaseCollection, SpinnerView, Messenger, CommandController) {
return Marionette.Layout.extend({ return Marionette.Layout.extend({
template: 'Episode/Search/LayoutTemplate', template: 'Episode/Search/LayoutTemplate',
@ -18,12 +19,17 @@ define(
}, },
events: { events: {
'click .x-search-auto': '_searchAuto', 'click .x-search-auto' : '_searchAuto',
'click .x-search-manual': '_searchManual' 'click .x-search-manual': '_searchManual',
'click .x-search-back' : '_showButtons'
},
initialize: function () {
this.mainView = new ButtonsView();
}, },
onShow: function () { onShow: function () {
this._releaseSearchActivated = false; this._showMainView();
}, },
_searchAuto: function (e) { _searchAuto: function (e) {
@ -50,22 +56,29 @@ define(
e.preventDefault(); e.preventDefault();
} }
if (this._releaseSearchActivated) {
return;
}
var self = this; var self = this;
this.main.show(new SpinnerView()); this.mainView = new SpinnerView();
this._showMainView();
var releases = new ReleaseCollection(); var releases = new ReleaseCollection();
var promise = releases.fetchEpisodeReleases(this.model.id); var promise = releases.fetchEpisodeReleases(this.model.id);
promise.done(function () { promise.done(function () {
if (!self.isClosed) { if (!self.isClosed) {
self.main.show(new ManualSearchLayout({collection: releases})); self.mainView = new ManualSearchLayout({collection: releases});
self._showMainView();
} }
}); });
},
_showMainView: function () {
this.main.show(this.mainView);
},
_showButtons: function () {
this.mainView = new ButtonsView();
this._showMainView();
} }
}); });

View File

@ -1,7 +1 @@
 <div id="episode-search-region"></div>
<div id="episode-search-region">
<div class="search-buttons">
<button class="btn btn-large btn-block x-search-auto"><i class="icon-rocket"/> Automatic Search</button>
<button class="btn btn-large btn-block btn-primary x-search-manual"><i class="icon-user"/> Manual Search</button>
</div>
</div>

View File

@ -1 +1,2 @@
<div id="episode-release-grid"/> <div id="episode-release-grid"/>
<button class="btn x-search-back">Back</button>