From 899fa0370e85dcb04415d15cddc1c68f9967a854 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:39:08 +0200 Subject: [PATCH] Feature/improve users table of admin control panel (#866) * Improve users table * Update changelog --- CHANGELOG.md | 1 + .../admin-users/admin-users.component.ts | 17 ++++++++++--- .../components/admin-users/admin-users.html | 25 ++++++++++++++----- .../admin-users/admin-users.module.ts | 3 ++- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4960394c..1ef179de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Changed the date to UTC in the data gathering service +- Reused the value component in the users table of the admin control panel ## 1.141.1 - 24.04.2022 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 5a5a96a7..a27af3a3 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,6 +1,7 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; -import { AdminData } from '@ghostfolio/common/interfaces'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { AdminData, User } from '@ghostfolio/common/interfaces'; import { differenceInSeconds, formatDistanceToNowStrict, @@ -15,6 +16,7 @@ import { takeUntil } from 'rxjs/operators'; templateUrl: './admin-users.html' }) export class AdminUsersComponent implements OnDestroy, OnInit { + public user: User; public users: AdminData['users']; private unsubscribeSubject = new Subject(); @@ -24,8 +26,17 @@ export class AdminUsersComponent implements OnDestroy, OnInit { */ public constructor( private changeDetectorRef: ChangeDetectorRef, - private dataService: DataService - ) {} + private dataService: DataService, + private userService: UserService + ) { + this.userService.stateChanged + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((state) => { + if (state?.user) { + this.user = state.user; + } + }); + } /** * Initializes the controller 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 8982e229..fab2e301 100644 --- a/apps/client/src/app/components/admin-users/admin-users.html +++ b/apps/client/src/app/components/admin-users/admin-users.html @@ -45,14 +45,27 @@ {{ formatDistanceToNow(userItem.createdAt) }} - - {{ userItem.accountCount }} + + - - {{ userItem.transactionCount }} + + - - {{ userItem.engagement | number: '1.0-0' }} + + {{ formatDistanceToNow(userItem.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 c59c632e..44b9696a 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 @@ -2,13 +2,14 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; +import { GfValueModule } from '@ghostfolio/ui/value'; import { AdminUsersComponent } from './admin-users.component'; @NgModule({ declarations: [AdminUsersComponent], exports: [], - imports: [CommonModule, MatButtonModule, MatMenuModule], + imports: [CommonModule, GfValueModule, MatButtonModule, MatMenuModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class GfAdminUsersModule {}