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;