diff --git a/console/src/app/modules/search-project-autocomplete/search-project-autocomplete.component.ts b/console/src/app/modules/search-project-autocomplete/search-project-autocomplete.component.ts index a4be67119..747995a54 100644 --- a/console/src/app/modules/search-project-autocomplete/search-project-autocomplete.component.ts +++ b/console/src/app/modules/search-project-autocomplete/search-project-autocomplete.component.ts @@ -1,5 +1,5 @@ import { COMMA, ENTER } from '@angular/cdk/keycodes'; -import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Input, OnInit, OnDestroy, Output, ViewChild } from '@angular/core'; import { UntypedFormControl } from '@angular/forms'; import { MatLegacyAutocomplete as MatAutocomplete, @@ -25,7 +25,7 @@ export enum ProjectAutocompleteType { templateUrl: './search-project-autocomplete.component.html', styleUrls: ['./search-project-autocomplete.component.scss'], }) -export class SearchProjectAutocompleteComponent implements OnDestroy { +export class SearchProjectAutocompleteComponent implements OnInit, OnDestroy { public selectable: boolean = true; public removable: boolean = true; public addOnBlur: boolean = true; @@ -91,6 +91,35 @@ export class SearchProjectAutocompleteComponent implements OnDestroy { }); } + public ngOnInit(): void { + // feat-3916 show projects as soon as I am in the input field of the project + const query = new ProjectQuery(); + const nameQuery = new ProjectNameQuery(); + nameQuery.setMethod(TextQueryMethod.TEXT_QUERY_METHOD_CONTAINS_IGNORE_CASE); + query.setNameQuery(nameQuery); + + switch (this.autocompleteType) { + case ProjectAutocompleteType.PROJECT_GRANTED: + this.mgmtService.listGrantedProjects(10, 0, [query]).then((projects) => { + this.filteredProjects = projects.resultList; + }); + break; + case ProjectAutocompleteType.PROJECT_OWNED: + this.mgmtService.listProjects(10, 0, [query]).then((projects) => { + this.filteredProjects = projects.resultList; + }); + break; + default: + Promise.all([ + this.mgmtService.listGrantedProjects(10, 0, [query]), + this.mgmtService.listProjects(10, 0, [query]), + ]).then((values) => { + this.filteredProjects = values[0].resultList; + this.filteredProjects = this.filteredProjects.concat(values[1].resultList); + }); + } + } + public ngOnDestroy(): void { this.unsubscribed$.next(); } diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.ts b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.ts index 46735958e..97bd6053d 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.ts +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.ts @@ -64,6 +64,15 @@ export class SearchUserAutocompleteComponent implements OnInit, AfterContentChec this.filteredUsers = []; this.unsubscribed$.next(); // clear old subscription } else if (this.target === UserTarget.SELF) { + // feat-3916 show users as soon as I am in the input field of the user + const query = new SearchQuery(); + const lnQuery = new LoginNameQuery(); + lnQuery.setMethod(TextQueryMethod.TEXT_QUERY_METHOD_CONTAINS_IGNORE_CASE); + query.setLoginNameQuery(lnQuery); + this.userService.listUsers(10, 0, [query]).then((users) => { + this.filteredUsers = users.resultList; + }); + this.getFilteredResults(); // new subscription } } diff --git a/e2e/cypress/e2e/permissions/permissions.cy.ts b/e2e/cypress/e2e/permissions/permissions.cy.ts index ef495af64..7392514b4 100644 --- a/e2e/cypress/e2e/permissions/permissions.cy.ts +++ b/e2e/cypress/e2e/permissions/permissions.cy.ts @@ -36,7 +36,7 @@ describe('permissions', () => { it('should add a manager', () => { cy.get('[data-e2e="add-member-button"]').click(); cy.get('[data-e2e="add-member-input"]').type(testManagerLoginname); - cy.get('[data-e2e="user-option"]').click(); + cy.get('[data-e2e="user-option"]').first().click(); cy.contains('[data-e2e="role-checkbox"]', roles[0]).click(); cy.get('[data-e2e="confirm-add-member-button"]').click(); cy.shouldConfirmSuccess();