diff --git a/frontend/src/components/members/MembersOverviewSection.vue b/frontend/src/components/members/MembersOverviewSection.vue index eec4766d..dc4b2a02 100644 --- a/frontend/src/components/members/MembersOverviewSection.vue +++ b/frontend/src/components/members/MembersOverviewSection.vue @@ -145,6 +145,20 @@ +
+ + +

{{ $t('members.lastTrainingFilterHint') }}

+
@@ -236,6 +250,7 @@ export default { selectedAgeTo: { type: [String, Number], required: true }, selectedGender: { type: String, required: true }, selectedTrainingGroup: { type: String, required: true }, + selectedLastTrainingFilter: { type: String, required: true }, trainingGroupOptions: { type: Array, required: true }, selectedSort: { type: String, required: true }, sortDirection: { type: String, required: true }, @@ -260,6 +275,7 @@ export default { 'update:selected-age-to', 'update:selected-gender', 'update:selected-training-group', + 'update:selected-last-training-filter', 'clear-filters', 'update:selected-sort', 'toggle-sort-direction', diff --git a/frontend/src/i18n/locales/de-CH.json b/frontend/src/i18n/locales/de-CH.json index 383b4dad..3c2cc3ed 100644 --- a/frontend/src/i18n/locales/de-CH.json +++ b/frontend/src/i18n/locales/de-CH.json @@ -472,6 +472,12 @@ "ttSeasonCurrentTag": "aktuell", "ttSeasonNextTag": "kommend", "ttStichtagHint": "Stichtag 1.1. (DTTB). Jungen: nur J-Klassen. Mädchen: J und M möglich.", + "lastTrainingFilter": "Letztes Training", + "lastTrainingFilterHasDate": "Mit erfasstem Datum", + "lastTrainingFilterNoDate": "Ohne letztes Training", + "lastTrainingFilterNotInTraining": "„Nicht mehr im Training“", + "lastTrainingFilterHint": "In der Tabelle: aktuelle Saison in der AK-Spalte. Alle Details (beide Saisons, letztes Training, ggf. Teilnahmen) beim Überfahren der Zeile.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "AK (TT)", "ttAdult": "Erwachsene (kein Jugend nach Stichtag)", "ttFilterGroupJ": "Mädchen & Jungen (gemischt)", diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index 7482a348..6e7b8e03 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -247,6 +247,12 @@ "ttSeasonCurrentTag": "aktuell", "ttSeasonNextTag": "kommend", "ttStichtagHint": "Stichtag 1.1. (DTTB). Jungen: nur J-Klassen. Mädchen: J und M möglich.", + "lastTrainingFilter": "Letztes Training", + "lastTrainingFilterHasDate": "Mit erfasstem Datum", + "lastTrainingFilterNoDate": "Ohne letztes Training", + "lastTrainingFilterNotInTraining": "„Nicht mehr im Training“", + "lastTrainingFilterHint": "In der Tabelle: aktuelle Saison in der AK-Spalte. Alle Details (beide Saisons, letztes Training, ggf. Teilnahmen) beim Überfahren der Zeile.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "AK (TT)", "ttAdult": "Erwachsene (kein Jugend nach Stichtag)", "ttFilterGroupJ": "Mädchen & Jungen (gemischt)", diff --git a/frontend/src/i18n/locales/en-AU.json b/frontend/src/i18n/locales/en-AU.json index 2458ee0b..8832e9b7 100644 --- a/frontend/src/i18n/locales/en-AU.json +++ b/frontend/src/i18n/locales/en-AU.json @@ -472,6 +472,12 @@ "ttSeasonCurrentTag": "current", "ttSeasonNextTag": "upcoming", "ttStichtagHint": "Cutoff 1 Jan (DTTB). Boys: J classes only. Girls: J and M.", + "lastTrainingFilter": "Last training", + "lastTrainingFilterHasDate": "With a recorded date", + "lastTrainingFilterNoDate": "No last training", + "lastTrainingFilterNotInTraining": "Flagged “no longer training”", + "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", "ttFilterGroupJ": "Boys & girls (mixed)", diff --git a/frontend/src/i18n/locales/en-GB.json b/frontend/src/i18n/locales/en-GB.json index da75969b..94635de2 100644 --- a/frontend/src/i18n/locales/en-GB.json +++ b/frontend/src/i18n/locales/en-GB.json @@ -747,6 +747,12 @@ "ttSeasonCurrentTag": "current", "ttSeasonNextTag": "upcoming", "ttStichtagHint": "Cutoff 1 Jan (DTTB). Boys: J classes only. Girls: J and M.", + "lastTrainingFilter": "Last training", + "lastTrainingFilterHasDate": "With a recorded date", + "lastTrainingFilterNoDate": "No last training", + "lastTrainingFilterNotInTraining": "Flagged “no longer training”", + "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", "ttFilterGroupJ": "Boys & girls (mixed)", diff --git a/frontend/src/i18n/locales/en-US.json b/frontend/src/i18n/locales/en-US.json index b857fde6..9765cde4 100644 --- a/frontend/src/i18n/locales/en-US.json +++ b/frontend/src/i18n/locales/en-US.json @@ -472,6 +472,12 @@ "ttSeasonCurrentTag": "current", "ttSeasonNextTag": "upcoming", "ttStichtagHint": "Cutoff 1 Jan (DTTB). Boys: J classes only. Girls: J and M.", + "lastTrainingFilter": "Last training", + "lastTrainingFilterHasDate": "With a recorded date", + "lastTrainingFilterNoDate": "No last training", + "lastTrainingFilterNotInTraining": "Flagged “no longer training”", + "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", "ttFilterGroupJ": "Boys & girls (mixed)", diff --git a/frontend/src/i18n/locales/es.json b/frontend/src/i18n/locales/es.json index 0786fcb2..138d9ed7 100644 --- a/frontend/src/i18n/locales/es.json +++ b/frontend/src/i18n/locales/es.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "actual", "ttSeasonNextTag": "próxima", "ttStichtagHint": "Corte el 1 de enero (DTTB). Niños: solo clases J. Niñas: J y M.", + "lastTrainingFilter": "Último entrenamiento", + "lastTrainingFilterHasDate": "Con fecha registrada", + "lastTrainingFilterNoDate": "Sin último entrenamiento", + "lastTrainingFilterNotInTraining": "« Ya no entrena »", + "lastTrainingFilterHint": "Tabla: temporada actual en la columna de edad. Detalle completo (ambas temporadas, último entrenamiento, participaciones) al pasar el ratón por la fila.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Cat. edad (TT)", "ttAdult": "Adultos (no juvenil según corte)", "ttFilterGroupJ": "Niños y niñas (mixto)", diff --git a/frontend/src/i18n/locales/fil.json b/frontend/src/i18n/locales/fil.json index 738514ec..3e6c3d0e 100644 --- a/frontend/src/i18n/locales/fil.json +++ b/frontend/src/i18n/locales/fil.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "kasalukuyan", "ttSeasonNextTag": "susunod", "ttStichtagHint": "Cutoff Enero 1 (DTTB). Lalaki: J lang. Babae: J at M.", + "lastTrainingFilter": "Huling training", + "lastTrainingFilterHasDate": "May petsa", + "lastTrainingFilterNoDate": "Walang huling training", + "lastTrainingFilterNotInTraining": "Flag na “hindi na nagte-training”", + "lastTrainingFilterHint": "Table: kasalukuyang season sa AK. Buong detalye (dalawang season, huling training, participations) kapag-hover sa hilera.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Edad (TT)", "ttAdult": "Adulto (hindi youth sa cutoff)", "ttFilterGroupJ": "Babae at lalaki (halo)", diff --git a/frontend/src/i18n/locales/fr.json b/frontend/src/i18n/locales/fr.json index 3cab3e1f..4c9d9ea6 100644 --- a/frontend/src/i18n/locales/fr.json +++ b/frontend/src/i18n/locales/fr.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "actuelle", "ttSeasonNextTag": "à venir", "ttStichtagHint": "Date limite le 1er janv. (DTTB). Garçons : classes J uniquement. Filles : J et M.", + "lastTrainingFilter": "Dernier entraînement", + "lastTrainingFilterHasDate": "Avec date enregistrée", + "lastTrainingFilterNoDate": "Sans dernier entraînement", + "lastTrainingFilterNotInTraining": "« Plus à l’entraînement »", + "lastTrainingFilterHint": "Tableau : saison actuelle dans la colonne AK. Détail complet (deux saisons, dernier entraînement, participations) au survol de la ligne.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Classe d'âge (TT)", "ttAdult": "Adultes (pas jeunes selon la date limite)", "ttFilterGroupJ": "Filles et garçons (mixte)", diff --git a/frontend/src/i18n/locales/it.json b/frontend/src/i18n/locales/it.json index 7cec8147..b00a8325 100644 --- a/frontend/src/i18n/locales/it.json +++ b/frontend/src/i18n/locales/it.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "attuale", "ttSeasonNextTag": "prossima", "ttStichtagHint": "Data di riferimento 1° gennaio (DTTB). Ragazzi: solo classi J. Ragazze: J e M.", + "lastTrainingFilter": "Ultimo allenamento", + "lastTrainingFilterHasDate": "Con data registrata", + "lastTrainingFilterNoDate": "Senza ultimo allenamento", + "lastTrainingFilterNotInTraining": "« Non più in allenamento »", + "lastTrainingFilterHint": "Tabella: stagione corrente nella colonna AK. Dettaglio completo (entrambe le stagioni, ultimo allenamento, partecipazioni) al passaggio del mouse sulla riga.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Classe (TT)", "ttAdult": "Adulti (non giovanili secondo la data)", "ttFilterGroupJ": "Ragazze e ragazzi (misto)", diff --git a/frontend/src/i18n/locales/ja.json b/frontend/src/i18n/locales/ja.json index e98547a9..cf74c1b9 100644 --- a/frontend/src/i18n/locales/ja.json +++ b/frontend/src/i18n/locales/ja.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "今季", "ttSeasonNextTag": "来季", "ttStichtagHint": "基準日1月1日(DTTB)。男子:Jのみ。女子:JとM。", + "lastTrainingFilter": "最終参加", + "lastTrainingFilterHasDate": "日付あり", + "lastTrainingFilterNoDate": "最終参加なし", + "lastTrainingFilterNotInTraining": "「参加なし」フラグ", + "lastTrainingFilterHint": "表:AK列は今シーズン。列にマウスを乗せると両シーズン・最終参加・参加回数(分かる場合)を表示。", + "rowTooltipSeparator": "·", "ttAgeClassCol": "年齢(TT)", "ttAdult": "一般(基準日でジュニアではない)", "ttFilterGroupJ": "男女混合", diff --git a/frontend/src/i18n/locales/pl.json b/frontend/src/i18n/locales/pl.json index be38f837..6df5fc65 100644 --- a/frontend/src/i18n/locales/pl.json +++ b/frontend/src/i18n/locales/pl.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "bieżący", "ttSeasonNextTag": "następny", "ttStichtagHint": "Termin 1.01 (DTTB). Chłopcy: tylko klasy J. Dziewczęta: J i M.", + "lastTrainingFilter": "Ostatni trening", + "lastTrainingFilterHasDate": "Z zapisaną datą", + "lastTrainingFilterNoDate": "Bez ostatniego treningu", + "lastTrainingFilterNotInTraining": "„Nie trenuje już”", + "lastTrainingFilterHint": "Tabela: bieżący sezon w kolumnie AK. Pełne szczegóły (oba sezony, ostatni trening, udziały) po najechaniu na wiersz.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Kategoria (TT)", "ttAdult": "Dorośli (brak juniora wg terminu)", "ttFilterGroupJ": "Dziewczęta i chłopcy (mieszane)", diff --git a/frontend/src/i18n/locales/th.json b/frontend/src/i18n/locales/th.json index 02d90b76..3e4daf31 100644 --- a/frontend/src/i18n/locales/th.json +++ b/frontend/src/i18n/locales/th.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "ปัจจุบัน", "ttSeasonNextTag": "ถัดไป", "ttStichtagHint": "วันตัดสิทธิ์ 1 ม.ค. (DTTB) ชาย: เฉพาะ J หญิง: J และ M", + "lastTrainingFilter": "การเข้าร่วมล่าสุด", + "lastTrainingFilterHasDate": "มีวันที่บันทึก", + "lastTrainingFilterNoDate": "ไม่มีการเข้าร่วมล่าสุด", + "lastTrainingFilterNotInTraining": "ทำเครื่องหมาย «ไม่เข้าร่วมอีกต่อไป»", + "lastTrainingFilterHint": "ตาราง: ฤดูกาลปัจจุบันในคอลัมน์ AK รายละเอียดครบ (สองฤดูกาล, การเข้าร่วมล่าสุด, จำนวนครั้ง) เมื่อชี้ที่แถว", + "rowTooltipSeparator": "·", "ttAgeClassCol": "รุ่นอายุ (TT)", "ttAdult": "ผู้ใหญ่ (ไม่ใช่เยาวชนตามวันตัด)", "ttFilterGroupJ": "ชายและหญิง (รวม)", diff --git a/frontend/src/i18n/locales/tl.json b/frontend/src/i18n/locales/tl.json index 86c43456..9aac0b67 100644 --- a/frontend/src/i18n/locales/tl.json +++ b/frontend/src/i18n/locales/tl.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "kasalukuyan", "ttSeasonNextTag": "susunod", "ttStichtagHint": "Cutoff Enero 1 (DTTB). Lalaki: J lang. Babae: J at M.", + "lastTrainingFilter": "Huling training", + "lastTrainingFilterHasDate": "May petsa", + "lastTrainingFilterNoDate": "Walang huling training", + "lastTrainingFilterNotInTraining": "Flag na “hindi na nagte-training”", + "lastTrainingFilterHint": "Table: kasalukuyang season sa AK. Buong detalye (dalawang season, huling training, participations) kapag-hover sa hilera.", + "rowTooltipSeparator": "·", "ttAgeClassCol": "Edad (TT)", "ttAdult": "Adulto (hindi youth sa cutoff)", "ttFilterGroupJ": "Babae at lalaki (halo)", diff --git a/frontend/src/i18n/locales/zh.json b/frontend/src/i18n/locales/zh.json index 4362f5ff..8c424586 100644 --- a/frontend/src/i18n/locales/zh.json +++ b/frontend/src/i18n/locales/zh.json @@ -439,6 +439,12 @@ "ttSeasonCurrentTag": "当前", "ttSeasonNextTag": "下一", "ttStichtagHint": "截止日1月1日(DTTB)。男孩:仅 J 组。女孩:J 与 M。", + "lastTrainingFilter": "最近训练", + "lastTrainingFilterHasDate": "有记录日期", + "lastTrainingFilterNoDate": "无最近训练", + "lastTrainingFilterNotInTraining": "标记「不再参加训练」", + "lastTrainingFilterHint": "表格:年龄组列显示当前赛季。悬停行可查看两赛季、最近训练及参与次数(若有)。", + "rowTooltipSeparator": "·", "ttAgeClassCol": "年龄组(TT)", "ttAdult": "成人(按截止日非青年)", "ttFilterGroupJ": "男女孩(混合)", diff --git a/frontend/src/views/MembersView.vue b/frontend/src/views/MembersView.vue index 594beda4..075c83fa 100644 --- a/frontend/src/views/MembersView.vue +++ b/frontend/src/views/MembersView.vue @@ -19,6 +19,7 @@ :selected-age-to="selectedAgeTo" :selected-gender="selectedGender" :selected-training-group="selectedTrainingGroup" + :selected-last-training-filter="selectedLastTrainingFilter" :training-group-options="trainingGroupFilterOptions" :selected-sort="selectedSort" :sort-direction="sortDirection" @@ -41,6 +42,7 @@ @update:selected-age-to="selectedAgeTo = $event" @update:selected-gender="selectedGender = $event" @update:selected-training-group="selectedTrainingGroup = $event" + @update:selected-last-training-filter="selectedLastTrainingFilter = $event" @clear-filters="clearFilters" @update:selected-sort="selectedSort = $event" @toggle-sort-direction="toggleSortDirection" @@ -345,7 +347,12 @@