From d92bf122ed27685ac53acbf79179cca72e97d0ba Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 29 Feb 2016 15:13:09 -0500 Subject: [PATCH] (js) Improve ng-messages of sg-subscribe Improved dry mode of User.$filter and added error message when users search returns no match. --- UI/Templates/ContactsUI/UIxContactsUserFolders.wox | 3 ++- UI/WebServerResources/js/Common/User.service.js | 8 ++++++-- .../js/Common/sgSubscribe.directive.js | 10 ++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/UI/Templates/ContactsUI/UIxContactsUserFolders.wox b/UI/Templates/ContactsUI/UIxContactsUserFolders.wox index 764909d1e..b19bb6351 100644 --- a/UI/Templates/ContactsUI/UIxContactsUserFolders.wox +++ b/UI/Templates/ContactsUI/UIxContactsUserFolders.wox @@ -27,9 +27,10 @@ ng-model="subscribe.searchText" ng-model-options="subscribe.searchTextOptions" var:minlength="minimumSearchLength" - ng-change="subscribe.onChange()"/> + ng-change="subscribe.onChange(searchForm.userSearch)"/>
+
{{'No such user.' | loc }}
diff --git a/UI/WebServerResources/js/Common/User.service.js b/UI/WebServerResources/js/Common/User.service.js index 43366df24..cdbc0e9c1 100644 --- a/UI/WebServerResources/js/Common/User.service.js +++ b/UI/WebServerResources/js/Common/User.service.js @@ -65,8 +65,12 @@ return this.uid == data.uid; }; - if (options && options.dry) - users = []; + if (options) { + if (options.dry) + users = []; + else if (options.results) + users = options.results; + } else users = User.$users; diff --git a/UI/WebServerResources/js/Common/sgSubscribe.directive.js b/UI/WebServerResources/js/Common/sgSubscribe.directive.js index 4b7685885..0308a37fe 100644 --- a/UI/WebServerResources/js/Common/sgSubscribe.directive.js +++ b/UI/WebServerResources/js/Common/sgSubscribe.directive.js @@ -64,7 +64,7 @@ var vm = this; vm.selectedUser = null; - vm.users = User.$users; + vm.users = []; vm.searchTextOptions = { updateOn: 'default blur', @@ -74,11 +74,13 @@ } }; - vm.onChange = function() { - User.$filter(vm.searchText).then(function() { + vm.onChange = function(input) { + User.$filter(vm.searchText, null, { results: vm.users }).then(function(users) { + input.$setValidity('matches', users.length > 0); + input.$setTouched(); if (vm.selectedUser) { // If selected user is no longer part of the matching users, unselect it - if (_.isUndefined(_.find(User.$users, function(user) { + if (_.isUndefined(_.find(users, function(user) { return user.uid == vm.selectedUser.uid; }))) { vm.selectedUser = null;