diff --git a/app/app.component.css b/app/app.component.css index c8e3a034c..5f6db5169 100644 --- a/app/app.component.css +++ b/app/app.component.css @@ -167,3 +167,11 @@ footer a { background-color: #fafafa; color: rgba(0, 0, 0, 0.87); } + +.md-chips .md-chip-input-container { +width: 100%; +} + +.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap { +width: 100%; +} diff --git a/app/feature-toggle/feature-groups/email-input/email-input.component.html b/app/feature-toggle/feature-groups/email-input/email-input.component.html index 0f4fbd15f..a26b4522a 100644 --- a/app/feature-toggle/feature-groups/email-input/email-input.component.html +++ b/app/feature-toggle/feature-groups/email-input/email-input.component.html @@ -8,16 +8,20 @@
{{ item.email }} - close + close
- + + -
- {{ item.email }} -
+ {{ item.email }}({{ item.id }})
+
diff --git a/app/feature-toggle/feature-groups/email-input/email-input.component.ts b/app/feature-toggle/feature-groups/email-input/email-input.component.ts index a8fe06b7e..8d89a96df 100644 --- a/app/feature-toggle/feature-groups/email-input/email-input.component.ts +++ b/app/feature-toggle/feature-groups/email-input/email-input.component.ts @@ -20,11 +20,25 @@ import { UserService } from '../../../users/user.service'; display: flex; align-items: center; } + .list-item { + font-size: 15px; + } + .close { + padding-top: 12px; + } + ng2-dropdown-menu { + width: 420px !important; + } + + .ng2-menu-item { + width: 420px !important; + } + `] }) export class EmailInputComponent implements OnChanges, OnInit { public errorMessage: any; // Handling error message - public onlyEmails: string[] = []; + public onlyIds: string[] = []; @Input() users: User[]; // List of Users added to tag-input @Input() usersIds: string[] = []; // ids @@ -34,36 +48,50 @@ export class EmailInputComponent implements OnChanges, OnInit { @Input() readonly: false; @Output() usersChange = new EventEmitter(); - constructor(private userService: UserService) {} + constructor(private userService: UserService) { + console.log('this.users', this.users); + } ngOnInit() { Object.assign(this.users, this.readonly); } ngOnChanges() { - if (this.usersIds) { - let users: User[] = []; - for (let userId of this.usersIds) { - let user = User.getEmptyUser(); - user.id = userId; - user.email = userId; - users.push(user); - } - this.users = users; + this.users = []; + if (this.usersIds.length) { + this.userService.getUsers({ + includeOnly: this.usersIds + }).then((fetchedUsers: User[]) => { + this.usersIds.forEach((userId) => { + let _user = fetchedUsers.find((user) => { + return user.id === userId; + }); + if (_user === undefined) { + let emptyUser = User.getEmptyUser(); + emptyUser.id = userId; + emptyUser.email = userId; + this.users.push(emptyUser); + } else { + this.users.push(_user); + } + }); + }); } } updateData() { - this.onlyEmails = []; - for (let k = 0; k < this.users.length; k++) { - this.onlyEmails.push(this.users[k].email); - } - this.usersChange.emit(this.onlyEmails); + this.onlyIds = []; + this.users.forEach((user) => { + this.onlyIds.push(user.id); + }); + this.usersChange.emit(this.onlyIds); Object.assign(this.users, this.readonly); } requestAutoCompleteItems = (search: string): Observable => { - return Observable.fromPromise(this.userService.getUsers(search, '') + return Observable.fromPromise(this.userService.getUsers({ + emailId: search + }) .then( (users: User[]) => { return users; diff --git a/app/feature-toggle/feature-toggle.component.html b/app/feature-toggle/feature-toggle.component.html index c4e2b6cdc..831b79ae6 100644 --- a/app/feature-toggle/feature-toggle.component.html +++ b/app/feature-toggle/feature-toggle.component.html @@ -14,8 +14,12 @@

{{ 'feature toggles' | translate }}

{{ featureGroup.name }}

- +