diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 48783c91b..77fba46b1 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -1,4 +1,5 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatTableDataSource } from '@angular/material/table'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; @@ -26,8 +27,19 @@ export class AdminUsersComponent implements OnDestroy, OnInit { public hasPermissionToImpersonateAllUsers: boolean; public info: InfoItem; public user: User; - public users: AdminData['users']; - + public dataSource: MatTableDataSource = + new MatTableDataSource(); + public displayedColumns = [ + 'index', + 'user', + 'country', + 'registration', + 'accounts', + 'activities', + 'engagementPerDay', + 'lastRequest', + 'actions' + ]; private unsubscribeSubject = new Subject(); public constructor( @@ -118,8 +130,7 @@ export class AdminUsersComponent implements OnDestroy, OnInit { .fetchAdminData() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ users }) => { - this.users = users; - + this.dataSource = new MatTableDataSource(users) this.changeDetectorRef.markForCheck(); }); } diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html index 71166a6e1..b6e296b95 100644 --- a/apps/client/src/app/components/admin-users/admin-users.html +++ b/apps/client/src/app/components/admin-users/admin-users.html @@ -2,136 +2,232 @@
- - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + +
#User - Country - - Registration - - Accounts - - Activities - - Engagement per Day - - Last Request -
{{ i + 1 }} -
- {{ userItem.id }} - {{ (userItem.id | slice:0:5) + '...' }} - -
-
- {{ getEmojiFlag(userItem.country) }} + + + # + + {{ i + 1 }} + + User + +
+ {{ element.id }} + {{ (element.id | slice:0:5) + '...' }} -
- {{ formatDistanceToNow(userItem.createdAt) }} - - - - - + + + Country + + {{ getEmojiFlag(element.country) }} - - + + + + + Registration + + {{ formatDistanceToNow(element.createdAt) }} + + Accounts + + + + Activities + + + + Engagement per Day + + + + Last Request + + {{ formatDistanceToNow(element.lastActivity) }} + + + + + + - - - - -
diff --git a/apps/client/src/app/components/admin-users/admin-users.module.ts b/apps/client/src/app/components/admin-users/admin-users.module.ts index 8c381b205..6222b5cf1 100644 --- a/apps/client/src/app/components/admin-users/admin-users.module.ts +++ b/apps/client/src/app/components/admin-users/admin-users.module.ts @@ -6,6 +6,7 @@ import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; import { AdminUsersComponent } from './admin-users.component'; +import { MatTableModule } from '@angular/material/table'; @NgModule({ declarations: [AdminUsersComponent], @@ -15,7 +16,8 @@ import { AdminUsersComponent } from './admin-users.component'; GfPremiumIndicatorModule, GfValueModule, MatButtonModule, - MatMenuModule + MatMenuModule, + MatTableModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] })