diff options
| author | mgh-odoo <mgh@odoo.com> | 2018-10-29 08:42:59 +0000 |
|---|---|---|
| committer | mgh-odoo <mgh@odoo.com> | 2019-01-10 12:31:53 +0000 |
| commit | 9ee9724a10fc5e835d8d42da0e9e83fe687848d8 (patch) | |
| tree | 362c7afc5f90e1c90746df80835355793e55733f /addons/mail/static/src/js/composers/basic_composer.js | |
| parent | 80f3eb27f7a0ad0390eca6ac9b7bd03df71c4ec2 (diff) | |
[Generic] unaccent search
- added unaccent search on POS customer/partner and product
- moved unaccent from "mail.utils" to "web.utils"
- added more character to make function accurate
We might use str.normalize(from ES6) but the problem is str.normalize method can not consider some double characters i.e. accented character when normalized it returns 2 normal characters and normalize method returns single character, so here custom unaccent method is used to normalize the string
What we can improve here: We can use str.normalize method and check if string is still have unaccented charaters that we can call our unaccent method but this unaccent method is also working and performing well
closes odoo/odoo#27671
Diffstat (limited to 'addons/mail/static/src/js/composers/basic_composer.js')
| -rw-r--r-- | addons/mail/static/src/js/composers/basic_composer.js | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/addons/mail/static/src/js/composers/basic_composer.js b/addons/mail/static/src/js/composers/basic_composer.js index 09c521ad795..03ffd1c7a30 100644 --- a/addons/mail/static/src/js/composers/basic_composer.js +++ b/addons/mail/static/src/js/composers/basic_composer.js @@ -4,7 +4,7 @@ odoo.define('mail.composer.Basic', function (require) { var emojis = require('mail.emojis'); var MentionManager = require('mail.composer.MentionManager'); var DocumentViewer = require('mail.DocumentViewer'); -var mailUtils = require('mail.utils'); +var utils = require('web.utils'); var config = require('web.config'); var core = require('web.core'); @@ -306,7 +306,7 @@ var BasicComposer = Widget.extend({ clearTimeout(this._cannedTimeout); this._cannedTimeout = setTimeout(function () { var cannedResponses = self.call('mail_service', 'getCannedResponses'); - var matches = fuzzy.filter(mailUtils.unaccent(search), _.pluck(cannedResponses, 'source')); + var matches = fuzzy.filter(utils.unaccent(search), _.pluck(cannedResponses, 'source')); var indexes = _.pluck(matches.slice(0, self.options.mentionFetchLimit), 'index'); def.resolve(_.map(indexes, function (index) { return cannedResponses[index]; @@ -320,7 +320,7 @@ var BasicComposer = Widget.extend({ * @returns {Array} */ _mentionGetCommands: function (search) { - var searchRegexp = new RegExp(_.str.escapeRegExp(mailUtils.unaccent(search)), 'i'); + var searchRegexp = new RegExp(_.str.escapeRegExp(utils.unaccent(search)), 'i'); return _.filter(this._mentionCommands, function (command) { return searchRegexp.test(command.name); }).slice(0, this.options.mentionFetchLimit); @@ -349,12 +349,12 @@ var BasicComposer = Widget.extend({ // filter prefetched partners with the given search string var suggestions = []; var limit = self.options.mentionFetchLimit; - var searchRegexp = new RegExp(_.str.escapeRegExp(mailUtils.unaccent(search)), 'i'); + var searchRegexp = new RegExp(_.str.escapeRegExp(utils.unaccent(search)), 'i'); _.each(prefetchedPartners, function (partners) { if (limit > 0) { var filteredPartners = _.filter(partners, function (partner) { return partner.email && searchRegexp.test(partner.email) || - partner.name && searchRegexp.test(mailUtils.unaccent(partner.name)); + partner.name && searchRegexp.test(utils.unaccent(partner.name)); }); if (filteredPartners.length) { suggestions.push(filteredPartners.slice(0, limit)); |
