diff --git a/console/src/app/modules/contributors/contributors.component.html b/console/src/app/modules/contributors/contributors.component.html index ee223ba0c7..31e742cf8a 100644 --- a/console/src/app/modules/contributors/contributors.component.html +++ b/console/src/app/modules/contributors/contributors.component.html @@ -27,6 +27,11 @@ aria-label="Edit contributors"> add + + \ No newline at end of file diff --git a/console/src/app/modules/contributors/contributors.component.scss b/console/src/app/modules/contributors/contributors.component.scss index 295a451504..86a3021697 100644 --- a/console/src/app/modules/contributors/contributors.component.scss +++ b/console/src/app/modules/contributors/contributors.component.scss @@ -39,6 +39,15 @@ margin: 0 8px 0 -15px; } + .fill-space { + flex: 1; + } + + .refresh-img { + float: left; + margin: 0 8px 0 -15px; + } + .avatar-circle { float: left; margin: 0 8px 0 -15px; diff --git a/console/src/app/modules/contributors/contributors.component.ts b/console/src/app/modules/contributors/contributors.component.ts index e6ace22744..49fe9e6af4 100644 --- a/console/src/app/modules/contributors/contributors.component.ts +++ b/console/src/app/modules/contributors/contributors.component.ts @@ -32,6 +32,7 @@ export class ContributorsComponent { @Input() membersSubject!: BehaviorSubject; @Output() addClicked: EventEmitter = new EventEmitter(); @Output() showDetailClicked: EventEmitter = new EventEmitter(); + @Output() refreshClicked: EventEmitter = new EventEmitter(); public emitAddMember(): void { this.addClicked.emit(); @@ -40,4 +41,8 @@ export class ContributorsComponent { public emitShowDetail(): void { this.showDetailClicked.emit(); } + + public emitRefresh(): void { + this.refreshClicked.emit(); + } } diff --git a/console/src/app/pages/iam/iam.component.html b/console/src/app/pages/iam/iam.component.html index b493fde342..346db849a8 100644 --- a/console/src/app/pages/iam/iam.component.html +++ b/console/src/app/pages/iam/iam.component.html @@ -17,7 +17,7 @@ + (showDetailClicked)="showDetail()" (refreshClicked)="loadMembers()" [disabled]="false"> \ No newline at end of file diff --git a/console/src/app/pages/iam/iam.component.ts b/console/src/app/pages/iam/iam.component.ts index 41edb496d8..20f15426eb 100644 --- a/console/src/app/pages/iam/iam.component.ts +++ b/console/src/app/pages/iam/iam.component.ts @@ -22,6 +22,10 @@ export class IamComponent { constructor(private adminService: AdminService, private dialog: MatDialog, private toast: ToastService, private router: Router) { + this.loadMembers(); + } + + public loadMembers(): void { this.loadingSubject.next(true); from(this.adminService.SearchIamMembers(100, 0)).pipe( map(resp => { diff --git a/console/src/app/pages/orgs/org-detail/org-detail.component.html b/console/src/app/pages/orgs/org-detail/org-detail.component.html index 341bcab32c..9a5d7a8838 100644 --- a/console/src/app/pages/orgs/org-detail/org-detail.component.html +++ b/console/src/app/pages/orgs/org-detail/org-detail.component.html @@ -2,22 +2,28 @@

{{org?.name}}

{{'ORG_DETAIL.DESCRIPTION' | translate}}

- -
- {{domain.domain}} - - + + - - -
+
+ {{domain.domain}} + {{domain.domain}} -

{{'ORG.PAGES.ORGDOMAIN_VERIFICATION' | translate}}

- - + + + + + +
+

{{'ORG.PAGES.ORGDOMAIN_VERIFICATION' | translate}}

+ +
+ @@ -42,7 +48,7 @@ + (showDetailClicked)="showDetail()" (refreshClicked)="loadMembers()" [disabled]="false"> diff --git a/console/src/app/pages/orgs/org-detail/org-detail.component.scss b/console/src/app/pages/orgs/org-detail/org-detail.component.scss index 66bcc3c9ba..00310a3e24 100644 --- a/console/src/app/pages/orgs/org-detail/org-detail.component.scss +++ b/console/src/app/pages/orgs/org-detail/org-detail.component.scss @@ -18,8 +18,10 @@ margin-right: 1rem; cursor: pointer; - &:hover { - text-decoration: underline; + &:not(.disabled) { + &:hover { + text-decoration: underline; + } } } diff --git a/console/src/app/pages/orgs/org-detail/org-detail.component.ts b/console/src/app/pages/orgs/org-detail/org-detail.component.ts index 758a0afb75..30810eb2b0 100644 --- a/console/src/app/pages/orgs/org-detail/org-detail.component.ts +++ b/console/src/app/pages/orgs/org-detail/org-detail.component.ts @@ -76,17 +76,7 @@ export class OrgDetailComponent implements OnInit, OnDestroy { this.toast.showError(error); }); - this.loadingSubject.next(true); - from(this.mgmtService.SearchMyOrgMembers(100, 0)).pipe( - map(resp => { - this.totalMemberResult = resp.toObject().totalResult; - return resp.toObject().resultList; - }), - catchError(() => of([])), - finalize(() => this.loadingSubject.next(false)), - ).subscribe(members => { - this.membersSubject.next(members); - }); + this.loadMembers(); this.mgmtService.SearchMyOrgDomains(0, 100).then(result => { this.domains = result.toObject().resultList; @@ -200,4 +190,18 @@ export class OrgDetailComponent implements OnInit, OnDestroy { }, }); } + + public loadMembers(): void { + this.loadingSubject.next(true); + from(this.mgmtService.SearchMyOrgMembers(100, 0)).pipe( + map(resp => { + this.totalMemberResult = resp.toObject().totalResult; + return resp.toObject().resultList; + }), + catchError(() => of([])), + finalize(() => this.loadingSubject.next(false)), + ).subscribe(members => { + this.membersSubject.next(members); + }); + } } diff --git a/console/src/app/pages/orgs/orgs.module.ts b/console/src/app/pages/orgs/orgs.module.ts index c773e744b3..bce4e20ab2 100644 --- a/console/src/app/pages/orgs/orgs.module.ts +++ b/console/src/app/pages/orgs/orgs.module.ts @@ -19,6 +19,7 @@ import { ContributorsModule } from 'src/app/modules/contributors/contributors.mo import { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module'; import { SharedModule } from 'src/app/modules/shared/shared.module'; import { WarnDialogModule } from 'src/app/modules/warn-dialog/warn-dialog.module'; +import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe.module'; import { ChangesModule } from '../../modules/changes/changes.module'; import { AddDomainDialogModule } from './org-detail/add-domain-dialog/add-domain-dialog.module'; @@ -32,6 +33,7 @@ import { PolicyGridComponent } from './policy-grid/policy-grid.component'; declarations: [OrgDetailComponent, OrgGridComponent, PolicyGridComponent, DomainVerificationComponent], imports: [ CommonModule, + HasRolePipeModule, OrgsRoutingModule, FormsModule, HasRoleModule, diff --git a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html index 8a0ea774bd..64996a5360 100644 --- a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html +++ b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html @@ -38,7 +38,7 @@ + (showDetailClicked)="showDetail()" (refreshClicked)="loadMembers()" [disabled]="false"> diff --git a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.ts b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.ts index 4f22b6194c..ed98e939a4 100644 --- a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.ts +++ b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.ts @@ -107,20 +107,25 @@ export class GrantedProjectDetailComponent implements OnInit, OnDestroy { this.toast.showError(error); }); - from(this.mgmtService.SearchProjectGrantMembers(this.projectId, - this.grantId, 100, 0)).pipe( - map(resp => { - this.totalMemberResult = resp.toObject().totalResult; - return resp.toObject().resultList; - }), - catchError(() => of([])), - finalize(() => this.loadingSubject.next(false)), - ).subscribe(members => { - this.membersSubject.next(members); - }); + this.loadMembers(); } } + public loadMembers(): void { + this.loadingSubject.next(true); + from(this.mgmtService.SearchProjectGrantMembers(this.projectId, + this.grantId, 100, 0)).pipe( + map(resp => { + this.totalMemberResult = resp.toObject().totalResult; + return resp.toObject().resultList; + }), + catchError(() => of([])), + finalize(() => this.loadingSubject.next(false)), + ).subscribe(members => { + this.membersSubject.next(members); + }); + } + public navigateBack(): void { this._location.back(); } diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html index 24d8d8d91a..ce854ed822 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html @@ -110,7 +110,7 @@ + (showDetailClicked)="showDetail()" (refreshClicked)="loadMembers()" [disabled]="false"> diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.ts index 90dae74dce..8b67c8b754 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.ts +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.ts @@ -22,8 +22,8 @@ import { ProjectState, ProjectType, ProjectView, - UserView, UserGrantSearchKey, + UserView, } from 'src/app/proto/generated/management_pb'; import { ManagementService } from 'src/app/services/mgmt.service'; import { ToastService } from 'src/app/services/toast.service'; @@ -82,8 +82,7 @@ export class OwnedProjectDetailComponent implements OnInit, OnDestroy { private _location: Location, private dialog: MatDialog, private router: Router, - ) { - } + ) { } public ngOnInit(): void { this.subscription = this.route.params.subscribe(params => this.getData(params)); @@ -107,6 +106,11 @@ export class OwnedProjectDetailComponent implements OnInit, OnDestroy { this.toast.showError(error); }); + this.loadMembers(); + } + + public loadMembers(): void { + this.loadingSubject.next(true); from(this.mgmtService.SearchProjectMembers(this.projectId, 100, 0)).pipe( map(resp => { this.totalMemberResult = resp.toObject().totalResult; diff --git a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html index a5d0b71683..15d1e977d3 100644 --- a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html +++ b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html @@ -138,8 +138,9 @@ {{user.preferredLoginName}}
- - + + + diff --git a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html index 5e18d2fd32..a189dd71e8 100644 --- a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html +++ b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html @@ -158,7 +158,9 @@ - + + + diff --git a/console/src/app/services/authentication.service.ts b/console/src/app/services/authentication.service.ts index eb795d5c97..a760a32bc8 100644 --- a/console/src/app/services/authentication.service.ts +++ b/console/src/app/services/authentication.service.ts @@ -36,14 +36,13 @@ export class AuthenticationService { } public async authenticate( - config?: Partial, + partialConfig?: Partial, setState: boolean = true, force: boolean = false, ): Promise { - if (config) { - this.authConfig = config; + if (partialConfig) { + Object.assign(this.authConfig, partialConfig); } - console.log(this.authConfig); this.oauthService.configure(this.authConfig); this.oauthService.strictDiscoveryDocumentValidation = false; @@ -51,7 +50,7 @@ export class AuthenticationService { this._authenticated = this.oauthService.hasValidAccessToken(); - if (!this.oauthService.hasValidIdToken() || !this.authenticated || config || force) { + if (!this.oauthService.hasValidIdToken() || !this.authenticated || partialConfig || force) { const newState = setState ? await this.statehandler.createState().toPromise() : undefined; this.oauthService.initCodeFlow(newState); }