Merge pull request #1252 from Tecnativa/12.0-web_responsive-fix_mobile_chrome

[FIX] web_responsive: Allow searching apps in mobile Chrome
pull/1256/head
Pedro M. Baeza 2019-04-16 13:37:26 +02:00 committed by GitHub
commit 67356b0a87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 11 deletions

View File

@ -72,6 +72,7 @@ odoo.define('web_responsive', function (require) {
AppsMenu.include({ AppsMenu.include({
events: _.extend({ events: _.extend({
"keydown .search-input input": "_searchResultsNavigate", "keydown .search-input input": "_searchResultsNavigate",
"input .search-input input": "_searchMenusSchedule",
"click .o-menu-search-result": "_searchResultChosen", "click .o-menu-search-result": "_searchResultChosen",
"shown.bs.dropdown": "_searchFocus", "shown.bs.dropdown": "_searchFocus",
"hidden.bs.dropdown": "_searchReset", "hidden.bs.dropdown": "_searchReset",
@ -217,17 +218,15 @@ odoo.define('web_responsive', function (require) {
* @param {jQuery.Event} event * @param {jQuery.Event} event
*/ */
_searchResultsNavigate: function (event) { _searchResultsNavigate: function (event) {
// Exit soon when not navigating results
if (this.$search_results.html().trim() === "") {
// Just in case it is the 1st search
this._searchMenusSchedule();
return;
}
// Find current results and active element (1st by default) // Find current results and active element (1st by default)
var all = this.$search_results.find(".o-menu-search-result"), var all = this.$search_results.find(".o-menu-search-result"),
pre_focused = all.filter(".active") || $(all[0]), pre_focused = all.filter(".active") || $(all[0]),
offset = all.index(pre_focused), offset = all.index(pre_focused),
key = event.key; key = event.key;
// Keyboard navigation only supports search results
if (!all.length) {
return;
}
// Transform tab presses in arrow presses // Transform tab presses in arrow presses
if (key === "Tab") { if (key === "Tab") {
event.preventDefault(); event.preventDefault();
@ -245,12 +244,8 @@ odoo.define('web_responsive', function (require) {
case "ArrowDown": case "ArrowDown":
offset++; offset++;
break; break;
// Other keys trigger a search
default: default:
// All keys that write a character have length 1 // Other keys are useless in this event
if (key.length === 1 || key === "Backspace") {
this._searchMenusSchedule();
}
return; return;
} }
// Allow looping on results // Allow looping on results

View File

@ -30,6 +30,7 @@
</div> </div>
</div> </div>
<input type="search" <input type="search"
autocomplete="off"
placeholder="Search menus..." placeholder="Search menus..."
class="form-control"/> class="form-control"/>
</div> </div>