From 32ed6a14d501ca7b581f0f332c295548ca293116 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 18 May 2016 09:37:14 -0400 Subject: [PATCH] (js) Directive to create chip on blur Fixes #3470 --- NEWS | 1 + UI/Templates/MailerUI/UIxMailEditor.wox | 9 ++-- .../js/Common/sgTransformOnBlur.directive.js | 51 +++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 UI/WebServerResources/js/Common/sgTransformOnBlur.directive.js diff --git a/NEWS b/NEWS index ad6cd8b5b..27ee7295e 100644 --- a/NEWS +++ b/NEWS @@ -57,6 +57,7 @@ Bug fixes - [web] fixed sender addresses of draft when using multiple IMAP accounts (#3577) - [web] create a new message when clicking on a "mailto" link (#3588) - [web] fixed handling of Web calendars option "reload on login" + - [web] add recipient chip when leaving an input field (to/cc/bcc) (#3470) - [dav] we now handle the default classifications for tasks (#3541) - [eas] properly unfold long mail headers (#3152) - [eas] correctly set EAS message class for S/MIME messages (#3576) diff --git a/UI/Templates/MailerUI/UIxMailEditor.wox b/UI/Templates/MailerUI/UIxMailEditor.wox index a98953fe7..468e628d7 100644 --- a/UI/Templates/MailerUI/UIxMailEditor.wox +++ b/UI/Templates/MailerUI/UIxMailEditor.wox @@ -55,7 +55,8 @@ + md-transform-chip="editor.addRecipient($chip, 'to')" + sg-transform-on-blur="sg-transform-on-blur"> + md-transform-chip="editor.addRecipient($chip, 'cc')" + sg-transform-on-blur="sg-transform-on-blur"> + md-transform-chip="editor.addRecipient($chip, 'bcc')" + sg-transform-on-blur="sg-transform-on-blur"> + */ + function sgTransformOnBlur() { + return { + link: link, + require: 'mdChips', // Extends the original mdChips directive + restrict: 'A' + }; + + function link(scope, element, attributes, mdChipsCtrl) { + mdChipsCtrl.onInputBlur = function() { + this.inputHasFocus = false; + + // ADDED CODE + var chipBuffer = this.getChipBuffer(); + if ((this.hasAutocomplete && this.requireMatch) || !chipBuffer || chipBuffer === "") return; + this.appendChip(chipBuffer); + this.resetChipBuffer(); + // - EOF - ADDED CODE + }; + } + } + + angular + .module('SOGo.Common') + .directive('sgTransformOnBlur', sgTransformOnBlur); +})();