From 7e6dcbda8ad36e0da3823fa9bd58cc4f7076d952 Mon Sep 17 00:00:00 2001 From: Toaster2 Date: Tue, 17 Feb 2026 11:36:46 +0100 Subject: [PATCH 1/5] Ability to emphasize StatisticComponents --- src/app/components/ui/info/statistic.component.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/components/ui/info/statistic.component.ts b/src/app/components/ui/info/statistic.component.ts index 2a79d9ae..fd758587 100644 --- a/src/app/components/ui/info/statistic.component.ts +++ b/src/app/components/ui/info/statistic.component.ts @@ -3,23 +3,24 @@ import {IconProp} from "@fortawesome/fontawesome-svg-core"; import {faExclamationTriangle} from "@fortawesome/free-solid-svg-icons"; import {TooltipComponent} from "../text/tooltip.component"; import {FaIconComponent} from "@fortawesome/angular-fontawesome"; -import { DecimalPipe } from "@angular/common"; +import { DecimalPipe, NgClass } from "@angular/common"; @Component({ selector: 'app-statistic', imports: [ TooltipComponent, FaIconComponent, - DecimalPipe + DecimalPipe, + NgClass ], template: ` - + @if (truncate) { - {{value | number:'1.0-1'}} + {{value | number:'1.0-1'}} } @else { - {{value}} + {{value}} } ` @@ -29,4 +30,5 @@ export class StatisticComponent { @Input({required: true}) name: string = "Statistic"; @Input({required: true}) icon: IconProp = faExclamationTriangle; @Input() truncate: boolean = false; + @Input() emphasize: boolean = false; } From 53f44b654ebbd2c3c46942aa7355477674de2e40 Mon Sep 17 00:00:00 2001 From: Toaster2 Date: Tue, 17 Feb 2026 11:38:07 +0100 Subject: [PATCH 2/5] Get own level relations from level response instead --- src/app/api/client.service.ts | 4 ---- src/app/api/types/levels/level-relations.ts | 3 +++ src/app/api/types/levels/level.ts | 3 +++ src/app/pages/level/level.component.ts | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/api/client.service.ts b/src/app/api/client.service.ts index 795e7575..7f732b95 100644 --- a/src/app/api/client.service.ts +++ b/src/app/api/client.service.ts @@ -151,10 +151,6 @@ export class ClientService extends ApiImplementation { return this.http.get(`/photos/id/${id}`); } - getLevelRelations(id: number) { - return this.http.get(`/levels/id/${id}/relations`); - } - setLevelAsHearted(id: number) { return this.http.post(`/levels/id/${id}/heart`, null); } diff --git a/src/app/api/types/levels/level-relations.ts b/src/app/api/types/levels/level-relations.ts index f13db7f7..72a7b1ca 100644 --- a/src/app/api/types/levels/level-relations.ts +++ b/src/app/api/types/levels/level-relations.ts @@ -1,5 +1,8 @@ export interface LevelRelations { isHearted: boolean; isQueued: boolean; + levelRating: number; myPlaysCount: number; + completionCount: number; + photoCount: number; } \ No newline at end of file diff --git a/src/app/api/types/levels/level.ts b/src/app/api/types/levels/level.ts index fbd043f3..f0b2c3b8 100644 --- a/src/app/api/types/levels/level.ts +++ b/src/app/api/types/levels/level.ts @@ -1,4 +1,5 @@ import {User} from "../users/user"; +import { LevelRelations } from "./level-relations"; export interface Level { levelId: number; @@ -22,4 +23,6 @@ export interface Level { hearts: number; totalPlays: number; uniquePlays: number; + + ownRelations: LevelRelations | undefined; } diff --git a/src/app/pages/level/level.component.ts b/src/app/pages/level/level.component.ts index 619bff6d..d0d430aa 100644 --- a/src/app/pages/level/level.component.ts +++ b/src/app/pages/level/level.component.ts @@ -81,7 +81,6 @@ export class LevelComponent { this.auth.user.subscribe(user => { if(user) { this.ownUser = user; - this.client.getLevelRelations(id).subscribe(relations => this.relations = relations); } }); }); @@ -91,6 +90,7 @@ export class LevelComponent { setDataFromLevel(data: Level) { this.level = data; + this.relations = data.ownRelations; if(this.isBrowser) { window.history.replaceState({}, '', `/level/${data.levelId}/${this.slug.transform(data.title)}`); } From d41d3de285a149d794c85acb6899d05a4ac32c9d Mon Sep 17 00:00:00 2001 From: Toaster2 Date: Tue, 17 Feb 2026 11:39:40 +0100 Subject: [PATCH 3/5] Emphasize certain level stats in certain cases --- src/app/components/items/level-statistics.component.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/app/components/items/level-statistics.component.ts b/src/app/components/items/level-statistics.component.ts index cee7ccb1..ebed6dd6 100644 --- a/src/app/components/items/level-statistics.component.ts +++ b/src/app/components/items/level-statistics.component.ts @@ -2,7 +2,6 @@ import {Component, Input} from '@angular/core'; import {Level} from "../../api/types/levels/level"; import {faHeart, faPlay, faStar, faThumbsDown, faThumbsUp} from "@fortawesome/free-solid-svg-icons"; import {StatisticComponent} from "../ui/info/statistic.component"; -import { getFormattedDateTime, getShortDateTime } from '../../helpers/date-time'; import { LevelTeamPickStatusComponent } from "./level-team-pick-status.component"; @Component({ @@ -13,10 +12,10 @@ import { LevelTeamPickStatusComponent } from "./level-team-pick-status.component ], template: `
- - - - + + + + @if (level.teamPicked) { From 7c83eea5aee8ce51bb0675a0ffa22de3d3732c8f Mon Sep 17 00:00:00 2001 From: Toaster2 Date: Tue, 17 Feb 2026 12:15:05 +0100 Subject: [PATCH 4/5] Explicitly require ownUser to also be set to show level header buttons --- src/app/pages/level/level.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/level/level.component.html b/src/app/pages/level/level.component.html index 173bbaf2..610c4fd2 100644 --- a/src/app/pages/level/level.component.html +++ b/src/app/pages/level/level.component.html @@ -52,10 +52,10 @@ } - @if(relations && !isMobile) { + @if(ownUser && relations && !isMobile) { } - @else if(relations && isMobile) { + @else if(ownUser && relations && isMobile) { } From 8a15ed600b352507cf6c77dfd0a3c73b4d3c9c4a Mon Sep 17 00:00:00 2001 From: Toaster2 Date: Tue, 17 Feb 2026 12:39:19 +0100 Subject: [PATCH 5/5] Remove unnecessary '!'s --- src/app/pages/level/level.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/level/level.component.html b/src/app/pages/level/level.component.html index 610c4fd2..153fee3d 100644 --- a/src/app/pages/level/level.component.html +++ b/src/app/pages/level/level.component.html @@ -53,10 +53,10 @@ @if(ownUser && relations && !isMobile) { - + } @else if(ownUser && relations && isMobile) { - + }