From 55df4a57f671df0eb725f7c6d82df7845b237485 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 5 May 2017 12:05:02 +0200 Subject: [PATCH] [ADD] make prefetch timeout configurable --- web_search_autocomplete_prefetch/README.rst | 9 +++++++-- .../src/js/web_search_autocomplete_prefetch.js | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/web_search_autocomplete_prefetch/README.rst b/web_search_autocomplete_prefetch/README.rst index e8f8af57..88b25800 100644 --- a/web_search_autocomplete_prefetch/README.rst +++ b/web_search_autocomplete_prefetch/README.rst @@ -12,7 +12,6 @@ term in the background and only offers an option if this search has a result. Usage ===== -* go to ... .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot :target: https://runbot.odoo-community.org/runbot/162/8.0 @@ -26,11 +25,17 @@ Known issues / Roadmap * some searches (especially via function fields) can be very heavy on the server. - To disable prefetching on a per field basis, set the option `web_search_autocomplete_prefetch.disable`:: + options="{'web_search_autocomplete_prefetch.disable': true}" + on your field in the search view. +* by default, the addon triggers a search 350 milliseconds after the last key + pess. If you want a different timeout, set the parameter + ``web_search_autocomplete_prefetch.keypress_timeout`` to the amount of + milliseconds you need as timeout. + Bug Tracker =========== diff --git a/web_search_autocomplete_prefetch/static/src/js/web_search_autocomplete_prefetch.js b/web_search_autocomplete_prefetch/static/src/js/web_search_autocomplete_prefetch.js index 99556afa..1d34dde5 100644 --- a/web_search_autocomplete_prefetch/static/src/js/web_search_autocomplete_prefetch.js +++ b/web_search_autocomplete_prefetch/static/src/js/web_search_autocomplete_prefetch.js @@ -85,6 +85,23 @@ openerp.web_search_autocomplete_prefetch = function(instance) instance.web.search.AutoComplete.include({ keypress_timeout: 350, + start: function() + { + var self = this; + return jQuery.when( + this._super.apply(this, arguments), + new instance.web.Model('ir.config_parameter').call( + 'get_param', + [ + 'web_search_autocomplete_prefetch.keypress_timeout', + this.keypress_timeout + ] + ).then(function(keypress_timeout) + { + self.keypress_timeout = parseInt(keypress_timeout); + }) + ); + }, select_item: function() { if(!this.current_result)