From 1a6613c3d4b0e1494ad6c3c89b19a6ac2faea7ce Mon Sep 17 00:00:00 2001 From: Felix Engelmann Date: Mon, 18 May 2026 23:18:25 +0200 Subject: [PATCH 1/3] fix(topo): enhance advanced filters dialog with slider for rating range and update translations --- .../line-advanced-filters-dialog.component.html | 13 +++++++++---- .../modules/line/line-list/line-list.component.ts | 2 -- client/src/assets/i18n/line/de.json | 6 ++++++ client/src/assets/i18n/line/en.json | 6 ++++++ client/src/assets/i18n/line/it.json | 6 ++++++ client/src/assets/i18n/line/nl.json | 6 ++++++ 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.html b/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.html index ec23cec2..8e151336 100644 --- a/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.html +++ b/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.html @@ -70,10 +70,16 @@
{{ t("advancedFiltersRatingSection") }}
-
- {{ draft.minRating }} +
+ - {{ draft.maxRating }}
diff --git a/client/src/app/modules/line/line-list/line-list.component.ts b/client/src/app/modules/line/line-list/line-list.component.ts index 2697b729..9b0f4621 100644 --- a/client/src/app/modules/line/line-list/line-list.component.ts +++ b/client/src/app/modules/line/line-list/line-list.component.ts @@ -58,7 +58,6 @@ import { selectInstanceSettingsState } from '../../../ngrx/selectors/instance-se import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { LanguageService } from '../../../services/core/language.service'; import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog'; -import { Tag } from 'primeng/tag'; import { LineAdvancedFiltersDialogComponent, type LineAdvancedFiltersDialogData, @@ -109,7 +108,6 @@ import { LineGradePipe, TopoImageComponent, TranslateSpecialGradesPipe, - Tag, ], providers: [ConfirmationService, DialogService], templateUrl: './line-list.component.html', diff --git a/client/src/assets/i18n/line/de.json b/client/src/assets/i18n/line/de.json index 03b30bd8..033cba2e 100644 --- a/client/src/assets/i18n/line/de.json +++ b/client/src/assets/i18n/line/de.json @@ -121,7 +121,13 @@ "lineList.advancedFiltersFaYearPlaceholder": "Beliebig", "lineList.advancedFiltersFaYearTo": "Bis Jahr", "lineList.advancedFiltersVideoSection": "Video", + "lineList.advancedFiltersVideoAny": "Beliebig", + "lineList.advancedFiltersVideoYes": "Mit Video", + "lineList.advancedFiltersVideoNo": "Ohne Video", "lineList.advancedFiltersClimbSection": "Begehungsstatus", + "lineList.advancedFiltersClimbAny": "Beliebig", + "lineList.advancedFiltersClimbClimbed": "Von mir begehen", + "lineList.advancedFiltersClimbNotClimbed": "Nicht von mir begehen", "lineList.advancedFiltersStartingPositionSection": "Startposition", "lineList.advancedFiltersStartingPositionsPlaceholder": "Beliebige Position", "lineList.advancedFiltersBoolSection": "Linienmerkmale", diff --git a/client/src/assets/i18n/line/en.json b/client/src/assets/i18n/line/en.json index 2d561257..bafa058c 100644 --- a/client/src/assets/i18n/line/en.json +++ b/client/src/assets/i18n/line/en.json @@ -121,7 +121,13 @@ "lineList.advancedFiltersFaYearPlaceholder": "Any", "lineList.advancedFiltersFaYearTo": "To year", "lineList.advancedFiltersVideoSection": "Video", + "lineList.advancedFiltersVideoAny": "Any", + "lineList.advancedFiltersVideoYes": "With video", + "lineList.advancedFiltersVideoNo": "Without video", "lineList.advancedFiltersClimbSection": "Ascent status", + "lineList.advancedFiltersClimbAny": "Any", + "lineList.advancedFiltersClimbClimbed": "Climbed by me", + "lineList.advancedFiltersClimbNotClimbed": "Not climbed by me", "lineList.advancedFiltersStartingPositionSection": "Starting position", "lineList.advancedFiltersStartingPositionsPlaceholder": "Any position", "lineList.advancedFiltersBoolSection": "Line characteristics", diff --git a/client/src/assets/i18n/line/it.json b/client/src/assets/i18n/line/it.json index ef32842a..0dde6698 100644 --- a/client/src/assets/i18n/line/it.json +++ b/client/src/assets/i18n/line/it.json @@ -121,7 +121,13 @@ "lineList.advancedFiltersFaYearPlaceholder": "Qualsiasi", "lineList.advancedFiltersFaYearTo": "All'anno", "lineList.advancedFiltersVideoSection": "Video", + "lineList.advancedFiltersVideoAny": "Qualsiasi", + "lineList.advancedFiltersVideoYes": "Con video", + "lineList.advancedFiltersVideoNo": "Senza video", "lineList.advancedFiltersClimbSection": "Stato salita", + "lineList.advancedFiltersClimbAny": "Qualsiasi", + "lineList.advancedFiltersClimbClimbed": "Scalata da me", + "lineList.advancedFiltersClimbNotClimbed": "Non scalata da me", "lineList.advancedFiltersStartingPositionSection": "Posizione di partenza", "lineList.advancedFiltersStartingPositionsPlaceholder": "Qualsiasi posizione", "lineList.advancedFiltersBoolSection": "Caratteristiche della linea", diff --git a/client/src/assets/i18n/line/nl.json b/client/src/assets/i18n/line/nl.json index d024e45f..57bd15e6 100644 --- a/client/src/assets/i18n/line/nl.json +++ b/client/src/assets/i18n/line/nl.json @@ -121,7 +121,13 @@ "lineList.advancedFiltersFaYearPlaceholder": "Alle", "lineList.advancedFiltersFaYearTo": "Tot jaar", "lineList.advancedFiltersVideoSection": "Video", + "lineList.advancedFiltersVideoAny": "Alle", + "lineList.advancedFiltersVideoYes": "Met video", + "lineList.advancedFiltersVideoNo": "Zonder video", "lineList.advancedFiltersClimbSection": "Beklimstatus", + "lineList.advancedFiltersClimbAny": "Alle", + "lineList.advancedFiltersClimbClimbed": "Door mij beklommen", + "lineList.advancedFiltersClimbNotClimbed": "Niet door mij beklommen", "lineList.advancedFiltersStartingPositionSection": "Startpositie", "lineList.advancedFiltersStartingPositionsPlaceholder": "Alle posities", "lineList.advancedFiltersBoolSection": "Lijnkenmerken", From ad836cc210c038a340f8c28d99f54e25e5d66286 Mon Sep 17 00:00:00 2001 From: Felix Engelmann Date: Mon, 18 May 2026 23:25:24 +0200 Subject: [PATCH 2/3] Make translations stick --- .../line-advanced-filters-dialog.component.ts | 48 +++++++++++++++---- client/src/assets/i18n/de.json | 7 +++ client/src/assets/i18n/en.json | 7 +++ client/src/assets/i18n/it.json | 7 +++ client/src/assets/i18n/line/de.json | 6 --- client/src/assets/i18n/line/en.json | 6 --- client/src/assets/i18n/line/it.json | 6 --- client/src/assets/i18n/line/nl.json | 6 --- client/src/assets/i18n/nl.json | 7 +++ 9 files changed, 68 insertions(+), 32 deletions(-) diff --git a/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.ts b/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.ts index 3e46c94e..776458b8 100644 --- a/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.ts +++ b/client/src/app/modules/line/line-advanced-filters-dialog/line-advanced-filters-dialog.component.ts @@ -2,6 +2,7 @@ import { AsyncPipe } from '@angular/common'; import { Component, inject, OnInit } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { TranslocoDirective, TranslocoService } from '@jsverse/transloco'; +import { marker } from '@jsverse/transloco-keys-manager/marker'; import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'; import { Button } from 'primeng/button'; import { Checkbox } from 'primeng/checkbox'; @@ -148,20 +149,51 @@ export class LineAdvancedFiltersDialogComponent implements OnInit { } ngOnInit(): void { - const t = (k: string) => this.transloco.translate('line.lineList.' + k); this.videoOptions = [ - { label: t('advancedFiltersVideoAny'), value: 'any' }, - { label: t('advancedFiltersVideoYes'), value: 'yes' }, - { label: t('advancedFiltersVideoNo'), value: 'no' }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersVideoAny'), + ), + value: 'any', + }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersVideoYes'), + ), + value: 'yes', + }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersVideoNo'), + ), + value: 'no', + }, ]; this.climbOptions = [ - { label: t('advancedFiltersClimbAny'), value: 'any' }, - { label: t('advancedFiltersClimbClimbed'), value: 'climbed' }, - { label: t('advancedFiltersClimbNotClimbed'), value: 'notClimbed' }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersClimbAny'), + ), + value: 'any', + }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersClimbClimbed'), + ), + value: 'climbed', + }, + { + label: this.transloco.translate( + marker('line.lineList.advancedFiltersClimbNotClimbed'), + ), + value: 'notClimbed', + }, ]; this.startingPositionOptions = [ { - label: t('advancedFiltersStartingPositionsPlaceholder'), + label: this.transloco.translate( + 'line.lineList.advancedFiltersStartingPositionsPlaceholder', + ), value: null, }, ...Object.values(StartingPosition).map((value) => ({ diff --git a/client/src/assets/i18n/de.json b/client/src/assets/i18n/de.json index 6e7d3ce9..ee27b143 100644 --- a/client/src/assets/i18n/de.json +++ b/client/src/assets/i18n/de.json @@ -803,6 +803,13 @@ "line.askReallyWantToDeleteLine": "Bist Du Dir sicher? Dies ist eine extrem destruktive Aktion und kann nicht rückgängig gemacht werden. Alle Begehungen der Linie etc. werden ebenfalls gelöscht. Fortfahren?", "line.yesDelete": "Ja, alles löschen!", "line.noDontDelete": "Nee, doch nicht.", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersVideoAny": "Beliebig", + "line.lineList.advancedFiltersVideoYes": "Mit Video", + "line.lineList.advancedFiltersVideoNo": "Ohne Video", + "line.lineList.advancedFiltersClimbAny": "Beliebig", + "line.lineList.advancedFiltersClimbClimbed": "Von mir begehen", + "line.lineList.advancedFiltersClimbNotClimbed": "Nicht von mir begehen", "line.infos": "Infos", "line.ascents": "Begehungen", "line.gallery": "Galerie", diff --git a/client/src/assets/i18n/en.json b/client/src/assets/i18n/en.json index b9a92fb5..49d73ded 100644 --- a/client/src/assets/i18n/en.json +++ b/client/src/assets/i18n/en.json @@ -803,6 +803,13 @@ "line.askReallyWantToDeleteLine": "Are you certain? This is an extremely destructive action and cannot be undone. All logged line ascents etc. will also be deleted. Proceed?", "line.yesDelete": "Yes, delete everything!", "line.noDontDelete": "Maybe not.", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersVideoAny": "Any", + "line.lineList.advancedFiltersVideoYes": "With video", + "line.lineList.advancedFiltersVideoNo": "Without video", + "line.lineList.advancedFiltersClimbAny": "Any", + "line.lineList.advancedFiltersClimbClimbed": "Climbed by me", + "line.lineList.advancedFiltersClimbNotClimbed": "Not climbed by me", "line.infos": "Information", "line.ascents": "Ascents", "line.gallery": "Gallery", diff --git a/client/src/assets/i18n/it.json b/client/src/assets/i18n/it.json index 404148e2..249c7960 100644 --- a/client/src/assets/i18n/it.json +++ b/client/src/assets/i18n/it.json @@ -803,6 +803,13 @@ "line.askReallyWantToDeleteLine": "Confermi? Questa è un'azione estremamente distruttiva e non si può tornare indietro. Vengono eliminati anche tutte le ripetizioni del problema, ecc. Procedere?", "line.yesDelete": "Elimina tutto!", "line.noDontDelete": "No, vabbè dai...", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersVideoAny": "Qualsiasi", + "line.lineList.advancedFiltersVideoYes": "Con video", + "line.lineList.advancedFiltersVideoNo": "Senza video", + "line.lineList.advancedFiltersClimbAny": "Qualsiasi", + "line.lineList.advancedFiltersClimbClimbed": "Scalata da me", + "line.lineList.advancedFiltersClimbNotClimbed": "Non scalata da me", "line.infos": "Informazioni", "line.ascents": "Ripetizioni", "line.gallery": "Galleria", diff --git a/client/src/assets/i18n/line/de.json b/client/src/assets/i18n/line/de.json index 033cba2e..03b30bd8 100644 --- a/client/src/assets/i18n/line/de.json +++ b/client/src/assets/i18n/line/de.json @@ -121,13 +121,7 @@ "lineList.advancedFiltersFaYearPlaceholder": "Beliebig", "lineList.advancedFiltersFaYearTo": "Bis Jahr", "lineList.advancedFiltersVideoSection": "Video", - "lineList.advancedFiltersVideoAny": "Beliebig", - "lineList.advancedFiltersVideoYes": "Mit Video", - "lineList.advancedFiltersVideoNo": "Ohne Video", "lineList.advancedFiltersClimbSection": "Begehungsstatus", - "lineList.advancedFiltersClimbAny": "Beliebig", - "lineList.advancedFiltersClimbClimbed": "Von mir begehen", - "lineList.advancedFiltersClimbNotClimbed": "Nicht von mir begehen", "lineList.advancedFiltersStartingPositionSection": "Startposition", "lineList.advancedFiltersStartingPositionsPlaceholder": "Beliebige Position", "lineList.advancedFiltersBoolSection": "Linienmerkmale", diff --git a/client/src/assets/i18n/line/en.json b/client/src/assets/i18n/line/en.json index bafa058c..2d561257 100644 --- a/client/src/assets/i18n/line/en.json +++ b/client/src/assets/i18n/line/en.json @@ -121,13 +121,7 @@ "lineList.advancedFiltersFaYearPlaceholder": "Any", "lineList.advancedFiltersFaYearTo": "To year", "lineList.advancedFiltersVideoSection": "Video", - "lineList.advancedFiltersVideoAny": "Any", - "lineList.advancedFiltersVideoYes": "With video", - "lineList.advancedFiltersVideoNo": "Without video", "lineList.advancedFiltersClimbSection": "Ascent status", - "lineList.advancedFiltersClimbAny": "Any", - "lineList.advancedFiltersClimbClimbed": "Climbed by me", - "lineList.advancedFiltersClimbNotClimbed": "Not climbed by me", "lineList.advancedFiltersStartingPositionSection": "Starting position", "lineList.advancedFiltersStartingPositionsPlaceholder": "Any position", "lineList.advancedFiltersBoolSection": "Line characteristics", diff --git a/client/src/assets/i18n/line/it.json b/client/src/assets/i18n/line/it.json index 0dde6698..ef32842a 100644 --- a/client/src/assets/i18n/line/it.json +++ b/client/src/assets/i18n/line/it.json @@ -121,13 +121,7 @@ "lineList.advancedFiltersFaYearPlaceholder": "Qualsiasi", "lineList.advancedFiltersFaYearTo": "All'anno", "lineList.advancedFiltersVideoSection": "Video", - "lineList.advancedFiltersVideoAny": "Qualsiasi", - "lineList.advancedFiltersVideoYes": "Con video", - "lineList.advancedFiltersVideoNo": "Senza video", "lineList.advancedFiltersClimbSection": "Stato salita", - "lineList.advancedFiltersClimbAny": "Qualsiasi", - "lineList.advancedFiltersClimbClimbed": "Scalata da me", - "lineList.advancedFiltersClimbNotClimbed": "Non scalata da me", "lineList.advancedFiltersStartingPositionSection": "Posizione di partenza", "lineList.advancedFiltersStartingPositionsPlaceholder": "Qualsiasi posizione", "lineList.advancedFiltersBoolSection": "Caratteristiche della linea", diff --git a/client/src/assets/i18n/line/nl.json b/client/src/assets/i18n/line/nl.json index 57bd15e6..d024e45f 100644 --- a/client/src/assets/i18n/line/nl.json +++ b/client/src/assets/i18n/line/nl.json @@ -121,13 +121,7 @@ "lineList.advancedFiltersFaYearPlaceholder": "Alle", "lineList.advancedFiltersFaYearTo": "Tot jaar", "lineList.advancedFiltersVideoSection": "Video", - "lineList.advancedFiltersVideoAny": "Alle", - "lineList.advancedFiltersVideoYes": "Met video", - "lineList.advancedFiltersVideoNo": "Zonder video", "lineList.advancedFiltersClimbSection": "Beklimstatus", - "lineList.advancedFiltersClimbAny": "Alle", - "lineList.advancedFiltersClimbClimbed": "Door mij beklommen", - "lineList.advancedFiltersClimbNotClimbed": "Niet door mij beklommen", "lineList.advancedFiltersStartingPositionSection": "Startpositie", "lineList.advancedFiltersStartingPositionsPlaceholder": "Alle posities", "lineList.advancedFiltersBoolSection": "Lijnkenmerken", diff --git a/client/src/assets/i18n/nl.json b/client/src/assets/i18n/nl.json index 5999d826..2d869649 100644 --- a/client/src/assets/i18n/nl.json +++ b/client/src/assets/i18n/nl.json @@ -803,6 +803,13 @@ "line.askReallyWantToDeleteLine": "Weet je het zeker? Dit is een uiterst destructieve actie en kan niet worden teruggedraaid. Ook alle evaluaties van de route etc. worden geschrapt. Doorgaan?", "line.yesDelete": "Ja, verwijder alles!", "line.noDontDelete": "Nee, maar niet.", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersVideoAny": "Alle", + "line.lineList.advancedFiltersVideoYes": "Met video", + "line.lineList.advancedFiltersVideoNo": "Zonder video", + "line.lineList.advancedFiltersClimbAny": "Alle", + "line.lineList.advancedFiltersClimbClimbed": "Door mij beklommen", + "line.lineList.advancedFiltersClimbNotClimbed": "Niet door mij beklommen", "line.infos": "Info", "line.ascents": "Beklimmingen", "line.gallery": "Galrij", From e29fa86f2bea9c13d7b911ac163ce41e389f6157 Mon Sep 17 00:00:00 2001 From: Felix Engelmann Date: Mon, 18 May 2026 23:29:53 +0200 Subject: [PATCH 3/3] Add missing translations --- client/src/assets/i18n/de.json | 2 +- client/src/assets/i18n/en.json | 2 +- client/src/assets/i18n/it.json | 2 +- client/src/assets/i18n/nl.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/src/assets/i18n/de.json b/client/src/assets/i18n/de.json index ee27b143..6c6b9e70 100644 --- a/client/src/assets/i18n/de.json +++ b/client/src/assets/i18n/de.json @@ -803,7 +803,7 @@ "line.askReallyWantToDeleteLine": "Bist Du Dir sicher? Dies ist eine extrem destruktive Aktion und kann nicht rückgängig gemacht werden. Alle Begehungen der Linie etc. werden ebenfalls gelöscht. Fortfahren?", "line.yesDelete": "Ja, alles löschen!", "line.noDontDelete": "Nee, doch nicht.", - "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "Beliebige Position", "line.lineList.advancedFiltersVideoAny": "Beliebig", "line.lineList.advancedFiltersVideoYes": "Mit Video", "line.lineList.advancedFiltersVideoNo": "Ohne Video", diff --git a/client/src/assets/i18n/en.json b/client/src/assets/i18n/en.json index 49d73ded..7587b385 100644 --- a/client/src/assets/i18n/en.json +++ b/client/src/assets/i18n/en.json @@ -803,7 +803,7 @@ "line.askReallyWantToDeleteLine": "Are you certain? This is an extremely destructive action and cannot be undone. All logged line ascents etc. will also be deleted. Proceed?", "line.yesDelete": "Yes, delete everything!", "line.noDontDelete": "Maybe not.", - "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "Any position", "line.lineList.advancedFiltersVideoAny": "Any", "line.lineList.advancedFiltersVideoYes": "With video", "line.lineList.advancedFiltersVideoNo": "Without video", diff --git a/client/src/assets/i18n/it.json b/client/src/assets/i18n/it.json index 249c7960..2c310bfb 100644 --- a/client/src/assets/i18n/it.json +++ b/client/src/assets/i18n/it.json @@ -803,7 +803,7 @@ "line.askReallyWantToDeleteLine": "Confermi? Questa è un'azione estremamente distruttiva e non si può tornare indietro. Vengono eliminati anche tutte le ripetizioni del problema, ecc. Procedere?", "line.yesDelete": "Elimina tutto!", "line.noDontDelete": "No, vabbè dai...", - "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "Qualsiasi posizione", "line.lineList.advancedFiltersVideoAny": "Qualsiasi", "line.lineList.advancedFiltersVideoYes": "Con video", "line.lineList.advancedFiltersVideoNo": "Senza video", diff --git a/client/src/assets/i18n/nl.json b/client/src/assets/i18n/nl.json index 2d869649..efdfea0f 100644 --- a/client/src/assets/i18n/nl.json +++ b/client/src/assets/i18n/nl.json @@ -803,7 +803,7 @@ "line.askReallyWantToDeleteLine": "Weet je het zeker? Dit is een uiterst destructieve actie en kan niet worden teruggedraaid. Ook alle evaluaties van de route etc. worden geschrapt. Doorgaan?", "line.yesDelete": "Ja, verwijder alles!", "line.noDontDelete": "Nee, maar niet.", - "line.lineList.advancedFiltersStartingPositionsPlaceholder": "", + "line.lineList.advancedFiltersStartingPositionsPlaceholder": "Alle posities", "line.lineList.advancedFiltersVideoAny": "Alle", "line.lineList.advancedFiltersVideoYes": "Met video", "line.lineList.advancedFiltersVideoNo": "Zonder video",