From c77b5aeb93fb61c2ec67d89f7a1266418fff5a9a Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Thu, 9 Oct 2014 10:12:17 +0200 Subject: Only suggest tags that are not already part of the mail. - Fixup for issue #52 --- web-ui/app/js/mixins/with_mail_tagging.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'web-ui/app/js/mixins') diff --git a/web-ui/app/js/mixins/with_mail_tagging.js b/web-ui/app/js/mixins/with_mail_tagging.js index f5bd7840..75a96ab8 100644 --- a/web-ui/app/js/mixins/with_mail_tagging.js +++ b/web-ui/app/js/mixins/with_mail_tagging.js @@ -26,17 +26,22 @@ define( this.trigger(document, events.mail.tags.update, {ident: mail.ident, tags: tags}); }; - this.attachTagCompletion = function() { + this.attachTagCompletion = function(mail) { if(!features.isEnabled('tags')) { return; } + this.tagFilter = function (parsedResult) { + var filtered = _.filter(parsedResult, function (tag) {return ! _.contains(mail.tags, tag.name); }); + return _.map(filtered, function(tag) { return {value: Handlebars.Utils.escapeExpression(tag.name)}; }); + } + this.tagCompleter = new Bloodhound({ datumTokenizer: function(d) { return [d.value]; }, queryTokenizer: function(q) { return [q.trim()]; }, remote: { url: '/tags?q=%QUERY', - filter: function(pr) { return _.map(pr, function(pp) { return {value: Handlebars.Utils.escapeExpression(pp.name)}; }); } + filter: this.tagFilter } }); -- cgit v1.2.3