From da821ea6c78372364af9d63798110fb742e3b1bc Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Aug 2015 22:17:57 -0400 Subject: [PATCH] (js) Improve recipient auto-completion --- UI/Templates/MailerUI/UIxMailEditor.wox | 78 ++++++++++++++----- .../js/Mailer/MessageEditorController.js | 20 +++-- .../scss/components/chips/chips.scss | 4 + 3 files changed, 77 insertions(+), 25 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailEditor.wox b/UI/Templates/MailerUI/UIxMailEditor.wox index ef350632a..928e446b6 100644 --- a/UI/Templates/MailerUI/UIxMailEditor.wox +++ b/UI/Templates/MailerUI/UIxMailEditor.wox @@ -6,15 +6,17 @@ xmlns:label="OGo:label"> - +
edit - - + + + ng-model="editor.message.editable.from"> {{identity}} @@ -22,71 +24,107 @@ send - + save - + close -
+
-
+
- + - {{user}} + + + {{user.$$fullname}} + {{user.$$email}} + + {{$chip}}
+
- + - {{user}} + + + {{user.$$fullname}} + {{user.$$email}} + + {{$chip}}
+
- + - {{user}} + + + {{user.$$fullname}} + {{user.$$email}} + + {{$chip}}
+
- +
Cc Bcc diff --git a/UI/WebServerResources/js/Mailer/MessageEditorController.js b/UI/WebServerResources/js/Mailer/MessageEditorController.js index b9905893b..1b0ce054c 100644 --- a/UI/WebServerResources/js/Mailer/MessageEditorController.js +++ b/UI/WebServerResources/js/Mailer/MessageEditorController.js @@ -10,6 +10,7 @@ function MessageEditorController($stateParams, $state, $q, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox, AddressBook, Preferences) { var vm = this; + vm.addRecipient = addRecipient; vm.autocomplete = {to: {}, cc: {}, bcc: {}}; vm.autosave = null; vm.autosaveDrafts = autosaveDrafts; @@ -90,11 +91,20 @@ } function contactFilter($query) { - var deferred = $q.defer(); - AddressBook.$filterAll($query).then(function(results) { - deferred.resolve(_.invoke(results, '$shortFormat', $query)); - }); - return deferred.promise; + return AddressBook.$filterAll($query); + } + + function addRecipient(user) { + var recipient = []; + + if (angular.isString(user)) + return user; + if (user.$$fullname) + recipient.push(user.$$fullname); + if (user.$$email) + recipient.push('<' + user.$$email + '>'); + + return recipient.join(' '); } // Drafts autosaving diff --git a/UI/WebServerResources/scss/components/chips/chips.scss b/UI/WebServerResources/scss/components/chips/chips.scss index c7330a608..1f07ce437 100644 --- a/UI/WebServerResources/scss/components/chips/chips.scss +++ b/UI/WebServerResources/scss/components/chips/chips.scss @@ -14,4 +14,8 @@ md-chips { } } } +} + +.sg-chips-autocomplete { + width: (3 * $contact-chip-name-width); } \ No newline at end of file