Added achievements to user profile #268_achievements

This commit is contained in:
2023-07-15 15:16:01 +02:00
parent a71e3e4720
commit aae6472e11
9 changed files with 121 additions and 40 deletions

View File

@@ -13,6 +13,8 @@ export interface Achievement extends DataWithHistory {
operator?: string;
value?: string;
server?: Server;
createdAt?: string;
}
export interface AchievementFilter {

View File

@@ -4,6 +4,7 @@ import { Server, ServerFilter } from "./server.model";
import { UserJoinedServer } from "./user_joined_server.model";
import { UserJoinedVoiceChannel } from "./user_joined_voice_channel.model";
import { UserJoinedGameServer } from "./user_joined_game_server.model";
import { Achievement } from "./achievement.model";
export interface User extends DataWithHistory {
id?: number;
@@ -25,6 +26,9 @@ export interface User extends DataWithHistory {
userJoinedGameServerCount?: number;
userJoinedGameServers?: UserJoinedGameServer[];
achievementCount?: number;
achievements?: Achievement[];
}
export interface UserFilter {

View File

@@ -222,6 +222,12 @@ export class Queries {
joinedOn
leavedOn
}
achievements {
id
name
createdAt
}
}
}
}

View File

@@ -41,12 +41,12 @@
</div>
</div>
<!-- <div class="content-row">-->
<!-- <div class="content-column">-->
<!-- <div class="content-data-name">{{'view.server.profile.minecraft_id' | translate}}:</div>-->
<!-- <div class="content-data-value">{{user.minecraftId}}</div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="content-row">-->
<!-- <div class="content-column">-->
<!-- <div class="content-data-name">{{'view.server.profile.minecraft_id' | translate}}:</div>-->
<!-- <div class="content-data-value">{{user.minecraftId}}</div>-->
<!-- </div>-->
<!-- </div>-->
<div class="content-row">
<div class="content-column">
@@ -78,6 +78,27 @@
<div class="content-divider"></div>
<p-panel header="{{'view.server.profile.achievements.header' | translate}}" [toggleable]="true">
<div *ngFor="let achievement of user.achievements;">
<div class="content-row">
<div class="content-column">
<div class="content-data-name">{{'common.name' | translate}}:</div>
<div class="content-data-value">{{achievement.name}}</div>
</div>
<div class="content-column">
<div class="content-data-name">{{'common.name' | translate}}:</div>
<div class="content-data-value">{{achievement.name}}</div>
</div>
<div class="content-column">
<div class="content-data-name">{{'view.server.profile.achievements.time' | translate}}:</div>
<div class="content-data-value">{{achievement.createdAt | date:'dd.MM.yyyy HH:mm:ss'}}</div>
</div>
</div>
</div>
</p-panel>
<p-panel header="{{'view.server.profile.joined_voice_channel.header' | translate}}" [toggleable]="true">
<div *ngFor="let join of user.joinedVoiceChannels;">
<div class="content-row">
@@ -102,8 +123,8 @@
</div>
</div>
</div>
</p-panel>
<p-panel header="{{'view.server.profile.joined_game_server.header' | translate}}" [toggleable]="true">
<div *ngFor="let join of user.userJoinedGameServers;">
<div class="content-row">