Improved ontime loading & added game ontime #446

This commit is contained in:
2023-12-03 16:04:56 +01:00
parent 3d21123786
commit 0a47393510
11 changed files with 86 additions and 58 deletions

View File

@@ -16,6 +16,7 @@ export interface User extends DataWithHistory {
reactionCount?: number;
birthday?: string;
ontime?: number;
gameOntime?: number;
level?: Level;
server?: Server;
leftServer?: boolean;

View File

@@ -361,6 +361,7 @@ export class Queries {
name
xp
ontime
gameOntime
level {
id
name
@@ -386,6 +387,7 @@ export class Queries {
reactionCount
birthday
ontime
gameOntime
level {
id
name

View File

@@ -3,7 +3,8 @@
</h1>
<div class="content-wrapper">
<div class="content">
<p-table #dt [value]="members" [responsive]="true" responsiveLayout="stack" [breakpoint]="'720px'" dataKey="id" editMode="row" [rowHover]="true" [rows]="10"
<p-table #dt [value]="members" [responsive]="true" responsiveLayout="stack" [breakpoint]="'720px'" dataKey="id"
editMode="row" [rowHover]="true" [rows]="10"
[rowsPerPageOptions]="[10,25,50]" [paginator]="true" [loading]="loading" [totalRecords]="totalRecords"
[lazy]="true" (onLazyLoad)="nextPage($event)">
@@ -17,7 +18,8 @@
{{'view.server.members.members' | translate}}
</div>
<app-multi-select-columns [table]="name" [columns]="columns" [(hiddenColumns)]="hiddenColumns"></app-multi-select-columns>
<app-multi-select-columns [table]="name" [columns]="columns"
[(hiddenColumns)]="hiddenColumns"></app-multi-select-columns>
</div>
<div class="table-caption-btn-wrapper btn-wrapper">
@@ -65,6 +67,13 @@
</div>
</th>
<th hideable-th="game_ontime" [parent]="this" [sortable]="true">
<div class="table-header-label">
<div class="table-header-text">{{'common.game_ontime' | translate}}</div>
<p-sortIcon field="game_ontime" class="table-header-icon"></p-sortIcon>
</div>
</th>
<th hideable-th="left_server" [parent]="this" [sortable]="true">
<div class="table-header-label">
<div class="table-header-text">{{'common.left_server' | translate}}</div>
@@ -106,7 +115,8 @@
</th>
<th hideable-th="discord_id" [parent]="this" class="table-header-medium">
<form [formGroup]="filterForm">
<input type="text" pInputText formControlName="discordId" placeholder="{{'common.discord_id' | translate}}">
<input type="text" pInputText formControlName="discordId"
placeholder="{{'common.discord_id' | translate}}">
</form>
</th>
<th hideable-th="name" [parent]="this">
@@ -116,14 +126,17 @@
</th>
<th hideable-th="xp" [parent]="this"></th>
<th hideable-th="ontime" [parent]="this"></th>
<th hideable-th="game_ontime" [parent]="this"></th>
<th hideable-th="left_server" [parent]="this" class="table-header-small-dropdown">
<form [formGroup]="filterForm">
<p-dropdown formControlName="leftServer" [options]="leftServerOptions" placeholder="{{'common.left_server' | translate}}"></p-dropdown>
<p-dropdown formControlName="leftServer" [options]="leftServerOptions"
placeholder="{{'common.left_server' | translate}}"></p-dropdown>
</form>
</th>
<th hideable-th="level" [parent]="this" class="table-header-small-dropdown">
<form [formGroup]="filterForm">
<p-dropdown formControlName="level" [options]="levels" placeholder="{{'common.level' | translate}}"></p-dropdown>
<p-dropdown formControlName="level" [options]="levels"
placeholder="{{'common.level' | translate}}"></p-dropdown>
</form>
</th>
<th></th>
@@ -189,6 +202,17 @@
</ng-template>
</p-cellEditor>
</td>
<td hideable-th="game_ontime" [parent]="this">
<span class="p-column-title">{{'common.game_ontime' | translate}}:</span>
<p-cellEditor>
<ng-template pTemplate="input">
{{member.gameOntime}}
</ng-template>
<ng-template pTemplate="output">
{{member.gameOntime}}
</ng-template>
</p-cellEditor>
</td>
<td hideable-th="left_server" [parent]="this">
<span class="p-column-title">{{'common.left_server' | translate}}:</span>
<p-cellEditor>
@@ -204,7 +228,8 @@
<span class="p-column-title">{{'common.level' | translate}}:</span>
<p-cellEditor>
<ng-template pTemplate="input">
<p-dropdown [options]="levels" [(ngModel)]="member.level" dataKey="id" placeholder="{{'common.level' | translate}}"></p-dropdown>
<p-dropdown [options]="levels" [(ngModel)]="member.level" dataKey="id"
placeholder="{{'common.level' | translate}}"></p-dropdown>
</ng-template>
<ng-template pTemplate="output">
{{member.level.name}}
@@ -235,7 +260,8 @@
</td>
<td>
<div class="btn-wrapper">
<app-history-btn *ngIf="!isEditingNew" [id]="member.id" [query]="query" translationKey="view.server.members.header"></app-history-btn>
<app-history-btn *ngIf="!isEditingNew" [id]="member.id" [query]="query"
translationKey="view.server.members.header"></app-history-btn>
<button *ngIf="!editing" pButton pInitEditableRow class="btn icon-btn" icon="pi pi-pencil"
(click)="onRowEditInit(dt, member, ri)"></button>
<button *ngIf="!editing" pButton pInitEditableRow class="btn icon-btn" icon="pi pi-user"

View File

@@ -89,7 +89,7 @@ export class MembersComponent extends ComponentWithTable implements OnInit, OnDe
private data: DataService,
private route: ActivatedRoute
) {
super("member", ["id", "discord_id", "name", "xp", "ontime", "left_server", "level"]);
super("member", ["id", "discord_id", "name", "xp", "ontime", "game_ontime", "left_server", "level"]);
}
ngOnInit(): void {

View File

@@ -63,11 +63,18 @@
<div class="content-row">
<div class="content-column">
<div class="content-data-name">{{'view.server.profile.ontime' | translate}}:</div>
<div class="content-data-name">{{'common.ontime' | translate}}:</div>
<div class="content-data-value">{{user.ontime}}</div>
</div>
</div>
<div class="content-row">
<div class="content-column">
<div class="content-data-name">{{'common.game_ontime' | translate}}:</div>
<div class="content-data-value">{{user.gameOntime}}</div>
</div>
</div>
<div class="content-row">
<div class="content-column">
<div class="content-data-name">{{'view.server.profile.level' | translate}}:</div>
@@ -266,7 +273,7 @@
<div class="content-data-name">{{'common.id' | translate}}:</div>
<div class="content-data-value">{{join.id}}</div>
</div>
<div class="content-column" style="flex: 0.75;">
<div class="content-data-name"
style="flex: 0.35;">{{'view.server.profile.joined_game_server.time' | translate}}:

View File

@@ -154,6 +154,7 @@
"uploaded": "Daten wurden erfolgreich importiert."
},
"first_name": "Vorname",
"game_ontime": "Spiel Ontime",
"hidden_columns": "Ausgeblendete Spalten",
"history": {
"attribute": "Attribut",
@@ -542,7 +543,6 @@
"message_count": "Anzahl Nachrichten",
"minecraft_id": "Minecraft Id",
"name": "Name",
"ontime": "Ontime",
"permission_denied": "Zugriff verweigert!",
"permission_denied_d": "Du musst Moderator sein, um andere Profile sehen zu können!",
"reaction_count": "Anzahl Reaktionen",

View File

@@ -154,6 +154,7 @@
"uploaded": "Data was imported successfully."
},
"first_name": "First name",
"game_ontime": "Game ontime",
"hidden_columns": "Hidden columns",
"history": {
"attribute": "Attribute",
@@ -542,7 +543,6 @@
"message_count": "Message count",
"minecraft_id": "Minecraft Id",
"name": "Name",
"ontime": "Ontime",
"permission_denied": "Access denied!",
"permission_denied_d": "You have to be moderator to see other profiles!",
"reaction_count": "Reaction count",