Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit e4f3f81

Browse files
committed
- fixes errors that prevented the enter key from being detected in the address bar
- fixes bug where searching for the same text twice used a cached copy of the home view, and didn't hide the personalization tabs - Closes #1657
1 parent 41a21bb commit e4f3f81

File tree

4 files changed

+38
-37
lines changed

4 files changed

+38
-37
lines changed

js/router.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ module.exports = Backbone.Router.extend({
199199
};
200200
},
201201

202-
newView: function(View, options) {
202+
newView: function(View, options, ignoreCache) {
203203
var now = Date.now(),
204204
cached = this.viewCache[View.getCacheIndex(Backbone.history.getFragment())],
205205
requestedRoute = Backbone.history.getFragment(),
@@ -253,7 +253,7 @@ module.exports = Backbone.Router.extend({
253253
}
254254
}
255255

256-
if (cached && (now - cached.cachedAt < cached.view.cacheExpires)) {
256+
if (cached && (now - cached.cachedAt < cached.view.cacheExpires && !ignoreCache)) {
257257
// we have an un-expired cached view, let's reattach it
258258
this.view = cached.view;
259259

@@ -285,10 +285,10 @@ module.exports = Backbone.Router.extend({
285285

286286
launchPageConnectModal: function(config) {
287287
var defaults = {
288-
connectText: 'Connecting...',
289-
failedText: 'Unable to Connect.'
290-
},
291-
deferred = $.Deferred();
288+
connectText: 'Connecting...',
289+
failedText: 'Unable to Connect.'
290+
},
291+
deferred = $.Deferred();
292292

293293
if (!(
294294
config &&
@@ -353,6 +353,8 @@ module.exports = Backbone.Router.extend({
353353
},
354354

355355
home: function(state, searchText){
356+
//if search terms have been given, don't use cached views
357+
var ignoreCache = Boolean(searchText);
356358
this.newView(homeView, {
357359
viewArgs: {
358360
userModel: this.userModel,
@@ -361,7 +363,7 @@ module.exports = Backbone.Router.extend({
361363
state: state,
362364
searchItemsText: searchText
363365
}
364-
});
366+
}, ignoreCache);
365367

366368
// hide the discover onboarding callout
367369
this.$discoverHolder = this.$discoverHolder || $('.js-OnboardingIntroDiscoverHolder');

js/views/homeVw.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ module.exports = pageVw.extend({
196196
backToTopTmpl: backToTopTmpl
197197
}));
198198

199+
self.listingToggle = self.$('.js-homeListingToggle');
200+
199201
self.setState(self.state, self.searchItemsText);
200202
if(self.model.get('page').profile.vendor == true) {
201203
self.$el.find('.js-homeCreateStore').addClass('hide');
@@ -226,9 +228,9 @@ module.exports = pageVw.extend({
226228
self.obContainer.on('scroll', self.scrollHandler);
227229

228230
//populate search field
229-
if(self.searchItemsText){
231+
if (self.searchItemsText){
230232
self.$el.find('.js-homeSearchItems').val("#" + self.searchItemsText);
231-
self.$el.find('.js-homeListingToggle').addClass('hide');
233+
self.listingToggle.addClass('hide');
232234
$('#obContainer').scrollTop(0);
233235
}
234236

@@ -490,12 +492,12 @@ module.exports = pageVw.extend({
490492
},
491493

492494
searchItemsFocus: function(){
493-
this.$('.js-homeListingToggle').addClass('hide');
495+
this.listingToggle.addClass('hide');
494496
},
495497

496498
searchItemsBlur: function(){
497499
if (!this.searchItemsText){
498-
this.$('.js-homeListingToggle').removeClass('hide');
500+
this.listingToggle.removeClass('hide');
499501
}
500502
},
501503

@@ -529,7 +531,7 @@ module.exports = pageVw.extend({
529531
window.obEventBus.trigger("setAddressBar", {'addressText': ""});
530532

531533
this.$el.find('.js-discoverHeading').html(window.polyglot.t('Discover'));
532-
this.$el.find('.js-homeListingToggle').removeClass('hide');
534+
this.listingToggle.removeClass('hide');
533535

534536
// change loading text copy
535537
this.$el.find('.js-loadingText').html(this.$el.find('.js-loadingText').data('defaultText'));

js/views/pageNavVw.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,8 +666,8 @@ module.exports = baseVw.extend({
666666

667667
//detect enter key
668668
if (e.keyCode == 13){
669-
// Stop right here! Route was already changed
670669
if (this.suggestionsVw.wasSelectedOnEnter()) {
670+
//if enter was clicked while a suggestion was highlighted, let the suggestions view handle the routing
671671
return;
672672
}
673673

js/views/suggestionsVw.js

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module.exports = baseVw.extend({
1616

1717
lastQuery: '',
1818
list: [],
19-
selectedOnEnter: false,
19+
//selectedOnEnter: false,
2020
type: '',
2121
visible: false,
2222

@@ -40,7 +40,7 @@ module.exports = baseVw.extend({
4040
this.$input.on('keyup.local', function(e){
4141
var keyCode = e.keyCode || e.which;
4242

43-
if (e.keyCode == 13) {
43+
if (keyCode == 13) {
4444
self.selectItemOnEnter();
4545
} else {
4646
self.showBox(e, $(this).val());
@@ -122,17 +122,15 @@ module.exports = baseVw.extend({
122122
selectItemOnEnter: function() {
123123
var $selected = this.$('a.selected');
124124

125-
this.selectedOnEnter = true;
125+
//this.selectedOnEnter = true;
126126

127127
app.hideOverlay();
128128
this.hideSuggestions();
129129

130-
if (typeof $selected !== 'undefined' && $selected.length) {
130+
if (typeof $selected !== 'undefined' && $selected.length) {
131131
Backbone.history.navigate($selected.attr('href'), {
132132
trigger: true
133133
});
134-
135-
return;
136134
}
137135
},
138136

@@ -201,12 +199,12 @@ module.exports = baseVw.extend({
201199
this.list = [];
202200

203201
switch (this.type) {
204-
case 'handles':
205-
this.list = this.findInHandlesList(query);
206-
break;
207-
case 'tags':
208-
this.list = this.findInTagsList(query);
209-
break;
202+
case 'handles':
203+
this.list = this.findInHandlesList(query);
204+
break;
205+
case 'tags':
206+
this.list = this.findInTagsList(query);
207+
break;
210208
}
211209

212210
return this.list;
@@ -224,23 +222,19 @@ module.exports = baseVw.extend({
224222

225223
itemTitle: function(item) {
226224
switch (this.type) {
227-
case 'handles':
228-
return item.handle + ' &ndash; ' + item.name;
229-
break;
230-
case 'tags':
231-
return item.startsWith('#') ? item : '#' + item;
232-
break;
225+
case 'handles':
226+
return item.handle + ' &ndash; ' + item.name;
227+
case 'tags':
228+
return item.startsWith('#') ? item : '#' + item;
233229
}
234230
},
235231

236232
itemUrl: function(item) {
237233
switch (this.type) {
238-
case 'handles':
239-
return '#userPage/' + item.guid + '/store';
240-
break;
241-
case 'tags':
242-
return '#home/products/' + (item.startsWith('#') ? item.substr(1, item.length) : item);
243-
break;
234+
case 'handles':
235+
return '#userPage/' + item.guid + '/store';
236+
case 'tags':
237+
return '#home/products/' + (item.startsWith('#') ? item.substr(1, item.length) : item);
244238
}
245239
},
246240

@@ -249,13 +243,16 @@ module.exports = baseVw.extend({
249243
},
250244

251245
wasSelectedOnEnter: function() {
246+
/*
252247
if (this.selectedOnEnter) {
253248
this.selectedOnEnter = false;
254249
255250
return true;
256251
}
257252
258253
return false;
254+
*/
255+
return this.$('a.selected').length;
259256
},
260257

261258
remove: function() {

0 commit comments

Comments
 (0)