+
+
+
+
{{projectName}} {{ 'PROJECT.MEMBER.TITLE' | translate }}
+
{{ 'PROJECT.MEMBER.DESCRIPTION' | translate }}
-
-
-
{{projectName}} {{ 'PROJECT.MEMBER.TITLE' | translate }}
-
{{ 'PROJECT.MEMBER.DESCRIPTION' | translate }}
-
-
+
+
+
+
+
+
+ add{{ 'ACTIONS.NEW' | translate }}
+
+
@@ -118,6 +106,6 @@
(page)="changePage($event)">
-
+
\ No newline at end of file
diff --git a/console/src/app/modules/project-members/project-members.component.scss b/console/src/app/modules/project-members/project-members.component.scss
index 8225525664..262c440c76 100644
--- a/console/src/app/modules/project-members/project-members.component.scss
+++ b/console/src/app/modules/project-members/project-members.component.scss
@@ -16,6 +16,7 @@
.right {
flex: 1;
padding-top: 1rem;
+ padding-right: 1rem;
.head {
display: flex;
@@ -42,33 +43,12 @@
}
}
-.table-header-row {
- display: flex;
- align-items: center;
+.icon-button {
+ margin-right: .5rem;
+}
- .col {
- display: flex;
- flex-direction: column;
- .desc {
- font-size: .8rem;
- color: #8795a1;
- }
- .count {
- font-size: 2rem;
- }
- }
-
- .fill-space {
- flex: 1;
- }
-
- .icon-button {
- margin-right: .5rem;
- }
-
- .add-button {
- border-radius: .5rem;
- }
+.add-button {
+ border-radius: .5rem;
}
.table-wrapper {
diff --git a/console/src/app/modules/project-members/project-members.component.ts b/console/src/app/modules/project-members/project-members.component.ts
index ed3df8b80e..057d3c0b60 100644
--- a/console/src/app/modules/project-members/project-members.component.ts
+++ b/console/src/app/modules/project-members/project-members.component.ts
@@ -170,7 +170,13 @@ export class ProjectMembersComponent {
}
}
- public changePage(event: PageEvent): void {
- this.dataSource.loadMembers(this.project.projectId, this.projectType, event.pageIndex, event.pageSize, this.grantId);
+ public changePage(event?: PageEvent): void {
+ this.dataSource.loadMembers(
+ this.project.projectId,
+ this.projectType,
+ event?.pageIndex ?? this.paginator.pageIndex,
+ event?.pageSize ?? this.paginator.pageSize,
+ this.grantId,
+ );
}
}
diff --git a/console/src/app/modules/project-members/project-members.module.ts b/console/src/app/modules/project-members/project-members.module.ts
index 157deb33a4..75795d1896 100644
--- a/console/src/app/modules/project-members/project-members.module.ts
+++ b/console/src/app/modules/project-members/project-members.module.ts
@@ -5,6 +5,7 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
+import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatPaginatorModule } from '@angular/material/paginator';
@@ -17,6 +18,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { HasRoleModule } from 'src/app/directives/has-role/has-role.module';
import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe.module';
+import { RefreshTableModule } from '../refresh-table/refresh-table.module';
import { ProjectMembersRoutingModule } from './project-members-routing.module';
import { ProjectMembersComponent } from './project-members.component';
@@ -43,6 +45,8 @@ import { ProjectMembersComponent } from './project-members.component';
FormsModule,
TranslateModule,
HasRolePipeModule,
+ RefreshTableModule,
+ MatDialogModule,
],
})
export class ProjectMembersModule { }
diff --git a/console/src/app/modules/project-roles/project-roles.component.html b/console/src/app/modules/project-roles/project-roles.component.html
index 9a81d15d3e..34907d78bc 100644
--- a/console/src/app/modules/project-roles/project-roles.component.html
+++ b/console/src/app/modules/project-roles/project-roles.component.html
@@ -1,79 +1,70 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+ {{ 'PROJECT.ROLE.KEY' | translate }} |
+ {{role.key}} |
+
+
+
+ {{ 'PROJECT.ROLE.DISPLAY_NAME' | translate }} |
+ {{role.displayName}} |
+
+
+
+ {{ 'PROJECT.ROLE.GROUP' | translate }} |
+
+ {{role.group}}
+ |
+
+
+
+ {{ 'PROJECT.ROLE.CREATIONDATE' | translate }} |
+
+ {{role.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }}
+ |
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- |
-
-
-
- |
-
-
-
- {{ 'PROJECT.ROLE.KEY' | translate }} |
- {{role.key}} |
-
-
-
- {{ 'PROJECT.ROLE.DISPLAY_NAME' | translate }} |
- {{role.displayName}} |
-
-
-
- {{ 'PROJECT.ROLE.GROUP' | translate }} |
-
- {{role.group}}
- |
-
-
-
- {{ 'PROJECT.ROLE.CREATIONDATE' | translate }} |
-
- {{role.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }}
- |
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/console/src/app/modules/project-roles/project-roles.component.scss b/console/src/app/modules/project-roles/project-roles.component.scss
index 8a117e1a3e..59fcdb9065 100644
--- a/console/src/app/modules/project-roles/project-roles.component.scss
+++ b/console/src/app/modules/project-roles/project-roles.component.scss
@@ -1,31 +1,10 @@
-.table-header-row {
- display: flex;
- align-items: center;
-
- .col {
- display: flex;
- flex-direction: column;
- .desc {
- font-size: .8rem;
- color: #8795a1;
- }
- .count {
- font-size: 2rem;
- }
- }
-
- .fill-space {
- flex: 1;
- }
-
- .icon-button {
- margin-right: .5rem;
- }
-
- .add-button {
+.rounded-button {
border-radius: .5rem;
- }
+}
+
+.icon-button {
+ margin-right: .5rem;
}
.table-wrapper {
diff --git a/console/src/app/modules/project-roles/project-roles.component.ts b/console/src/app/modules/project-roles/project-roles.component.ts
index 40e5edfaea..6b7c7716e0 100644
--- a/console/src/app/modules/project-roles/project-roles.component.ts
+++ b/console/src/app/modules/project-roles/project-roles.component.ts
@@ -30,10 +30,11 @@ export class ProjectRolesComponent implements AfterViewInit, OnInit {
/** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
public displayedColumns: string[] = ['select', 'key', 'displayname', 'group', 'creationDate'];
- constructor(private projectService: ProjectService, private toast: ToastService, private dialog: MatDialog) { }
+ constructor(private projectService: ProjectService, private toast: ToastService, private dialog: MatDialog) {
+ this.dataSource = new ProjectRolesDataSource(this.projectService);
+ }
public ngOnInit(): void {
- this.dataSource = new ProjectRolesDataSource(this.projectService);
this.dataSource.loadRoles(this.projectId, 0, 25, 'asc');
this.selection.changed.subscribe(() => {
@@ -119,4 +120,8 @@ export class ProjectRolesComponent implements AfterViewInit, OnInit {
width: '400px',
});
}
+
+ public refreshPage(): void {
+ this.dataSource.loadRoles(this.projectId, this.paginator.pageIndex, this.paginator.pageSize);
+ }
}
diff --git a/console/src/app/modules/project-roles/project-roles.module.ts b/console/src/app/modules/project-roles/project-roles.module.ts
index 132c9cbd29..92dee97d99 100644
--- a/console/src/app/modules/project-roles/project-roles.module.ts
+++ b/console/src/app/modules/project-roles/project-roles.module.ts
@@ -18,6 +18,7 @@ import { HasRoleModule } from 'src/app/directives/has-role/has-role.module';
import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe.module';
import { TimestampToDatePipeModule } from 'src/app/pipes/timestamp-to-date-pipe.module';
+import { RefreshTableModule } from '../refresh-table/refresh-table.module';
import { ProjectRoleDetailComponent } from './project-role-detail/project-role-detail.component';
import { ProjectRolesComponent } from './project-roles.component';
@@ -44,6 +45,7 @@ import { ProjectRolesComponent } from './project-roles.component';
TranslateModule,
MatMenuModule,
TimestampToDatePipeModule,
+ RefreshTableModule,
],
exports: [
ProjectRolesComponent,
diff --git a/console/src/app/modules/refresh-table/refresh-table.component.html b/console/src/app/modules/refresh-table/refresh-table.component.html
new file mode 100644
index 0000000000..5dd4ade2d5
--- /dev/null
+++ b/console/src/app/modules/refresh-table/refresh-table.component.html
@@ -0,0 +1,18 @@
+
+
\ No newline at end of file
diff --git a/console/src/app/modules/refresh-table/refresh-table.component.scss b/console/src/app/modules/refresh-table/refresh-table.component.scss
new file mode 100644
index 0000000000..36bdf557a9
--- /dev/null
+++ b/console/src/app/modules/refresh-table/refresh-table.component.scss
@@ -0,0 +1,26 @@
+
+.table-header-row {
+ display: flex;
+ align-items: center;
+
+ .col {
+ display: flex;
+ flex-direction: column;
+
+ .desc {
+ font-size: .8rem;
+ color: #8795a1;
+ }
+ .count {
+ font-size: 2rem;
+ }
+ }
+
+ .fill-space {
+ flex: 1;
+ }
+
+ .icon-button {
+ margin-right: .5rem;
+ }
+}
diff --git a/console/src/app/modules/refresh-table/refresh-table.component.spec.ts b/console/src/app/modules/refresh-table/refresh-table.component.spec.ts
new file mode 100644
index 0000000000..6c429da406
--- /dev/null
+++ b/console/src/app/modules/refresh-table/refresh-table.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { RefreshTableComponent } from './refresh-table.component';
+
+describe('RefreshTableComponent', () => {
+ let component: RefreshTableComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [RefreshTableComponent],
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(RefreshTableComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/console/src/app/modules/refresh-table/refresh-table.component.ts b/console/src/app/modules/refresh-table/refresh-table.component.ts
new file mode 100644
index 0000000000..0824f23964
--- /dev/null
+++ b/console/src/app/modules/refresh-table/refresh-table.component.ts
@@ -0,0 +1,46 @@
+import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations';
+import { SelectionModel } from '@angular/cdk/collections';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+
+const rotate = animation([
+ animate(
+ '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',
+ keyframes([
+ style({
+ transform: 'rotate(0deg)',
+ }),
+ style({
+ transform: 'rotate(360deg)',
+ }),
+ ]),
+ ),
+]);
+@Component({
+ selector: 'app-refresh-table',
+ templateUrl: './refresh-table.component.html',
+ styleUrls: ['./refresh-table.component.scss'],
+ animations: [
+ trigger('rotate', [
+ transition('* => *', [useAnimation(rotate, { params: { time: '1s' } })]),
+ ]),
+ ],
+})
+export class RefreshTableComponent implements OnInit {
+ @Input() public selection: SelectionModel = new SelectionModel(true, []);
+ @Input() public dataSize: number = 0;
+ @Input() public emitRefreshAfterTimeoutInMs: number = 0;
+ @Output() public refreshed: EventEmitter = new EventEmitter();
+
+ ngOnInit(): void {
+ if (this.emitRefreshAfterTimeoutInMs) {
+ setTimeout(() => {
+ this.emitRefresh();
+ }, this.emitRefreshAfterTimeoutInMs);
+ }
+ }
+
+ emitRefresh(): void {
+ this.selection.clear();
+ return this.refreshed.emit();
+ }
+}
diff --git a/console/src/app/modules/refresh-table/refresh-table.module.ts b/console/src/app/modules/refresh-table/refresh-table.module.ts
new file mode 100644
index 0000000000..7f998f1673
--- /dev/null
+++ b/console/src/app/modules/refresh-table/refresh-table.module.ts
@@ -0,0 +1,27 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { MatButtonModule } from '@angular/material/button';
+import { MatIconModule } from '@angular/material/icon';
+import { MatTooltipModule } from '@angular/material/tooltip';
+import { TranslateModule } from '@ngx-translate/core';
+
+import { RefreshTableComponent } from './refresh-table.component';
+
+
+
+@NgModule({
+ declarations: [RefreshTableComponent],
+ imports: [
+ CommonModule,
+ MatButtonModule,
+ MatIconModule,
+ TranslateModule,
+ FormsModule,
+ MatTooltipModule,
+ ],
+ exports: [
+ RefreshTableComponent,
+ ],
+})
+export class RefreshTableModule { }
diff --git a/console/src/app/modules/user-grants/user-grants.component.html b/console/src/app/modules/user-grants/user-grants.component.html
index 100bab6a44..7a75f36bfb 100644
--- a/console/src/app/modules/user-grants/user-grants.component.html
+++ b/console/src/app/modules/user-grants/user-grants.component.html
@@ -1,148 +1,119 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+ {{ 'PROJECT.GRANT.USER' | translate }} |
+
+ {{grant?.firstName}} {{grant?.lastName}} |
+
+
+
+ {{ 'PROJECT.GRANT.GRANTEDORGDOMAIN' | translate }} |
+
+ {{grant.orgName}} |
+
+
+
+ {{ 'PROJECT.GRANT.PROJECTNAME' | translate }} |
+
+ {{grant.projectName}} |
+
+
+
+ {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} |
+
+ {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
+
+
+
+ {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} |
+
+ {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
+
+
+
+ {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }} |
+
+
+ {{'PROJECT.GRANT.NOROLES' | translate}}
+ {{ (role.length>8)? (role | slice:0:8)+'..':(role) }}
+
+
+
+
+ {{ (role.length>6)? (role | slice:0:6)+'..':(role) }}
+
+
+
+ {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
+
+
+ {{role.key}}
+
+
+
+
+
+
+
+ {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
+
+
+ {{role}}
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
- {{ 'PROJECT.GRANT.USER' | translate }} |
-
- {{grant?.firstName}} {{grant?.lastName}} |
-
-
-
- {{ 'PROJECT.GRANT.GRANTEDORGDOMAIN' | translate }} |
-
- {{grant.orgName}} |
-
-
-
- {{ 'PROJECT.GRANT.PROJECTNAME' | translate }} |
-
- {{grant.projectName}} |
-
-
-
- {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} |
-
- {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
-
-
-
- {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} |
-
- {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
-
-
-
-
- {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }} |
-
-
- {{'PROJECT.GRANT.NOROLES' | translate}}
- {{ (role.length>8)? (role | slice:0:8)+'..':(role) }}
-
-
-
-
-
-
- {{ (role.length>6)? (role | slice:0:6)+'..':(role) }}
-
-
-
- {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
-
-
- {{role.key}}
-
-
-
-
-
-
-
- {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
-
-
- {{role}}
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/console/src/app/modules/user-grants/user-grants.component.scss b/console/src/app/modules/user-grants/user-grants.component.scss
index 1a69216fbc..3c817ccb62 100644
--- a/console/src/app/modules/user-grants/user-grants.component.scss
+++ b/console/src/app/modules/user-grants/user-grants.component.scss
@@ -1,31 +1,6 @@
-.table-header-row {
- display: flex;
- align-items: center;
-
- .col {
- display: flex;
- flex-direction: column;
- .desc {
- font-size: .8rem;
- color: #8795a1;
- }
- .count {
- font-size: 2rem;
- }
- }
-
- .fill-space {
- flex: 1;
- }
-
- .icon-button {
- margin-right: .5rem;
- }
-
- .add-button {
- border-radius: .5rem;
- }
+.add-button {
+ border-radius: .5rem;
}
.table-wrapper {
diff --git a/console/src/app/modules/user-grants/user-grants.component.ts b/console/src/app/modules/user-grants/user-grants.component.ts
index c88f17d52d..44cd2eb131 100644
--- a/console/src/app/modules/user-grants/user-grants.component.ts
+++ b/console/src/app/modules/user-grants/user-grants.component.ts
@@ -176,11 +176,16 @@ export class UserGrantsComponent implements OnInit, AfterViewInit {
});
}
- public changePage(event: PageEvent): void {
- this.dataSource.loadGrants(this.context, event.pageIndex, event.pageSize, {
- projectId: this.projectId,
- grantId: this.grantId,
- userId: this.userId,
- });
+ public changePage(event?: PageEvent): void {
+ this.dataSource.loadGrants(
+ this.context,
+ event?.pageIndex ?? this.paginator.pageIndex,
+ event?.pageSize ?? this.paginator.pageSize,
+ {
+ projectId: this.projectId,
+ grantId: this.grantId,
+ userId: this.userId,
+ },
+ );
}
}
diff --git a/console/src/app/modules/user-grants/user-grants.module.ts b/console/src/app/modules/user-grants/user-grants.module.ts
index bb1534afde..cd123fee7a 100644
--- a/console/src/app/modules/user-grants/user-grants.module.ts
+++ b/console/src/app/modules/user-grants/user-grants.module.ts
@@ -17,6 +17,7 @@ import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe.module';
import { TimestampToDatePipeModule } from 'src/app/pipes/timestamp-to-date-pipe.module';
import { AvatarModule } from '../avatar/avatar.module';
+import { RefreshTableModule } from '../refresh-table/refresh-table.module';
import { UserGrantsComponent } from './user-grants.component';
@@ -41,6 +42,7 @@ import { UserGrantsComponent } from './user-grants.component';
TranslateModule,
HasRolePipeModule,
TimestampToDatePipeModule,
+ RefreshTableModule,
],
exports: [
UserGrantsComponent,
diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html
index b56d0ed19f..7d56f264c2 100644
--- a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html
+++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html
@@ -4,8 +4,8 @@
-
-
+
-
+
+ matTooltip="{{ member.email }} | {{member.rolesList?.join(' ')}}"
+ [ngStyle]="{'z-index': 100 - i}">
;
+ @ViewChild(MatTable) public table!: MatTable;
/** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
public displayedColumns: string[] = ['select', 'firstname', 'lastname', 'username', 'email', 'roles'];
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts
index dcffe4b264..fe3eca23f0 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts
+++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts
@@ -17,6 +17,7 @@ import { ChangesModule } from 'src/app/modules/changes/changes.module';
import { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module';
import { ProjectContributorsModule } from 'src/app/modules/project-contributors/project-contributors.module';
import { ProjectRolesModule } from 'src/app/modules/project-roles/project-roles.module';
+import { RefreshTableModule } from 'src/app/modules/refresh-table/refresh-table.module';
import { UserGrantsModule } from 'src/app/modules/user-grants/user-grants.module';
import { WarnDialogModule } from 'src/app/modules/warn-dialog/warn-dialog.module';
import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe.module';
@@ -59,6 +60,7 @@ import { ProjectGrantsComponent } from './project-grants/project-grants.componen
MatProgressSpinnerModule,
ChangesModule,
MetaLayoutModule,
+ RefreshTableModule,
],
})
export class OwnedProjectDetailModule { }
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants-datasource.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants-datasource.ts
index 21bea8ee92..bf431e5582 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants-datasource.ts
+++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants-datasource.ts
@@ -10,6 +10,7 @@ import { ProjectService } from 'src/app/services/project.service';
* (including sorting, pagination, and filtering).
*/
export class ProjectGrantsDataSource extends DataSource {
+ public totalResult: number = 0;
public grantsSubject: BehaviorSubject = new BehaviorSubject([]);
private loadingSubject: BehaviorSubject = new BehaviorSubject(false);
public loading$: Observable = this.loadingSubject.asObservable();
@@ -24,6 +25,7 @@ export class ProjectGrantsDataSource extends DataSource {
this.loadingSubject.next(true);
from(this.projectService.SearchProjectGrants(projectId, pageSize, offset)).pipe(
map(resp => {
+ this.totalResult = resp.toObject().totalResult;
return resp.toObject().resultList;
}),
catchError(() => of([])),
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.html b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.html
index c109a4403e..0a2582e37a 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.html
+++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.html
@@ -1,91 +1,84 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+ {{ 'PROJECT.GRANT.GRANTEDORG' | translate }} |
+
+ {{grant.grantedOrgName}} |
+
+
+
+ {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} |
+
+ {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
+
+
+
+ {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} |
+
+ {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
+
+
+
+
+ {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }} |
+
+
+ {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
+
+
+ {{role.key}}
+
+
+
+ |
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- |
-
-
-
- |
-
-
-
- {{ 'PROJECT.GRANT.GRANTEDORG' | translate }} |
-
- {{grant.grantedOrgName}} |
-
-
-
- {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} |
-
- {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
-
-
-
- {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} |
-
- {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} |
-
-
-
-
- {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }} |
-
-
- {{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}
-
-
- {{role.key}}
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.scss b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.scss
index 401ceee490..4f9d5908b7 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.scss
+++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.scss
@@ -1,30 +1,5 @@
-.table-header-row {
- display: flex;
- align-items: center;
-
- .col {
- display: flex;
- flex-direction: column;
- .desc {
- font-size: .8rem;
- color: #8795a1;
- }
- .count {
- font-size: 2rem;
- }
- }
-
- .fill-space {
- flex: 1;
- }
-
- .icon-button {
- margin-right: .5rem;
- }
-
- .add-button {
- border-radius: .5rem;
- }
+.rounded-button {
+ border-radius: .5rem;
}
.table-wrapper {
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.ts
index 47b372160c..47012f4a08 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.ts
+++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/project-grants/project-grants.component.ts
@@ -52,11 +52,11 @@ export class ProjectGrantsComponent implements OnInit, AfterViewInit {
}
- private loadGrantsPage(): void {
+ public loadGrantsPage(pageIndex?: number, pageSize?: number): void {
this.dataSource.loadGrants(
this.projectId,
- this.paginator.pageIndex,
- this.paginator.pageSize,
+ pageIndex ?? this.paginator.pageIndex,
+ pageSize ?? this.paginator.pageSize,
);
}
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-list/owned-project-grid/owned-project-grid.component.html b/console/src/app/pages/projects/owned-projects/owned-project-list/owned-project-grid/owned-project-grid.component.html
index 79290b1370..bc03a7d818 100644
--- a/console/src/app/pages/projects/owned-projects/owned-project-list/owned-project-grid/owned-project-grid.component.html
+++ b/console/src/app/pages/projects/owned-projects/owned-project-list/owned-project-grid/owned-project-grid.component.html
@@ -29,7 +29,7 @@
@@ -57,7 +57,7 @@
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 2cfb455fd0..d67c9b4d0a 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
@@ -126,7 +126,7 @@
-
+
diff --git a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-mfa/auth-user-mfa.component.html b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-mfa/auth-user-mfa.component.html
index 15372d025e..a5ad9d214f 100644
--- a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-mfa/auth-user-mfa.component.html
+++ b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-mfa/auth-user-mfa.component.html
@@ -1,19 +1,37 @@
-
-
- {{'USER.MFA.TYPE.'+ mfa.type | translate}}
-
-
-
-
-
{{error}}
-
+
+
+
+ {{ 'USER.MFA.TABLETYPE' | translate }} |
+ {{'USER.MFA.TYPE.'+ mfa.type | translate}} |
+
+
+
+ {{ 'USER.MFA.TABLESTATE' | translate }} |
+
+ {{'USER.MFA.STATE.'+ mfa.state | translate}}
+
+
+ |
+
+
+
+ {{ 'USER.MFA.TABLEACTIONS' | translate }} |
+
+
+ |
+
+
+
+
+
+
+