From 22b91872ec329b7a8b7f9207ba9b26edcfffa6f5 Mon Sep 17 00:00:00 2001 From: dbh Date: Thu, 27 Oct 2016 14:29:27 +0530 Subject: [PATCH] [IMP] mail: add delay of 500ms to display the canned responses --- addons/mail/static/src/js/composer.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/addons/mail/static/src/js/composer.js b/addons/mail/static/src/js/composer.js index a3b86e54c8c..657f9feea14 100644 --- a/addons/mail/static/src/js/composer.js +++ b/addons/mail/static/src/js/composer.js @@ -490,6 +490,7 @@ var BasicComposer = Widget.extend({ return; } + clearTimeout(this.canned_timeout); var self = this; this.preprocess_message().then(function (message) { self.trigger('post_message', message); @@ -713,12 +714,18 @@ var BasicComposer = Widget.extend({ }); }, mention_get_canned_responses: function (search) { - var canned_responses = chat_manager.get_canned_responses(); - var matches = fuzzy.filter(utils.unaccent(search), _.pluck(canned_responses, 'source')); - var indexes = _.pluck(matches.slice(0, this.options.mention_fetch_limit), 'index'); - return _.map(indexes, function (i) { - return canned_responses[i]; - }); + var self = this; + var def = $.Deferred(); + clearTimeout(this.canned_timeout); + this.canned_timeout = setTimeout(function() { + var canned_responses = chat_manager.get_canned_responses(); + var matches = fuzzy.filter(utils.unaccent(search), _.pluck(canned_responses, 'source')); + var indexes = _.pluck(matches.slice(0, self.options.mention_fetch_limit), 'index'); + def.resolve(_.map(indexes, function (i) { + return canned_responses[i]; + })); + }, 500); + return def; }, mention_get_commands: function (search) { var search_regexp = new RegExp(_.str.escapeRegExp(utils.unaccent(search)), 'i');