Skip to content

Commit a30829a

Browse files
authored
Merge pull request #127 from SwimResults/develop
`Patch:` Handle pre list heats correctly in live timing
2 parents 323d9ef + edaa49e commit a30829a

9 files changed

Lines changed: 38 additions & 17 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SwimResults
22

3-
© Copyright 2022-2025 - SwimResults & Konrad Weiß
3+
© Copyright 2022-2026 - SwimResults & Konrad Weiß
44

55
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.4.
66

src/app/app.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
<div class="footer">
1818
<img class="footer-logo" src="assets/logo.svg" alt="SwimResults logo">
19-
<span class="footer-text">&copy; 2025 - SwimResults</span>
19+
<span class="footer-text">&copy; 2026 - SwimResults</span>
2020
<span class="footer-text">
2121
<a href="https://swimresults.de/" target="_blank">Homepage</a>
2222
<a href="https://swimresults.de/impressum" target="_blank">Impressum</a>

src/app/content/live/components/livetiming/livetiming.component.html

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,20 @@
2424
class="livetiming-grid-element"
2525
panelTitle="{{'COMMON.EVENT.SINGULAR' | translate}} {{event.event.number}} - {{event.event.relay_distance ? event.event.relay_distance : event.event.distance}}m {{'COMMON.STYLE.' + event.event.style.name + '.NAME' | translate}} {{event.event.name_extension}} {{'COMMON.GENDER.' + event.event.gender + '.NAME' | translate}}"
2626
>
27-
@if (meeting) {
28-
<sr-livetiming-table
29-
[starts]="starts"
30-
[athletes]="following"
31-
[meeting]="meeting"
32-
[config]="config"
33-
></sr-livetiming-table>
27+
@if (heat?.is_pre_list) {
28+
<sr-no-content>
29+
<p>{{ 'LIVE.PRE_LIST_WARNING' | translate }}</p>
30+
<sr-btn [routerLink]="'/m/' + meetingId + '/event/' + event.event.number + '/'"><mat-icon>flag</mat-icon> {{ 'LIVE.OPEN_EVENT_BUTTON' | translate }}</sr-btn>
31+
</sr-no-content>
32+
} @else {
33+
@if (meeting) {
34+
<sr-livetiming-table
35+
[starts]="starts"
36+
[athletes]="following"
37+
[meeting]="meeting"
38+
[config]="config"
39+
></sr-livetiming-table>
40+
}
3441
}
3542
</sr-panel>
3643
}

src/app/content/live/components/livetiming/livetiming.component.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {Subscription} from "rxjs";
77
import {RouteService} from "../../../../core/service/route.service";
88
import {StartListTileConfig} from "../../../../core/model/start/start-list-tile-config.model";
99
import {HeatImpl} from "../../../../core/model/start/heat.model";
10-
import {ActivatedRoute} from "@angular/router";
10+
import {ActivatedRoute, RouterLink} from "@angular/router";
1111
import {FetchingModel} from "../../../../core/model/common/fetching.model";
1212
import {SpinnerComponent} from '../../../../shared/elements/spinner/spinner.component';
1313
import {LivetimingHeaderComponent} from './livetiming-header/livetiming-header.component';
@@ -18,6 +18,8 @@ import {LivetimingControlsComponent} from './livetiming-controls/livetiming-cont
1818
import {TranslateModule} from '@ngx-translate/core';
1919
import {UserDataService} from "../../../../core/service/user-data.service";
2020
import {AthleteRelation} from "../../../../core/model/user/follower.model";
21+
import {MatIcon} from "@angular/material/icon";
22+
import {BtnComponent} from "../../../../shared/elements/buttons/btn/btn.component";
2123

2224
export interface ChangeHeatEvent {
2325
name: "event" | "heat" | "all" | "nothing";
@@ -32,7 +34,7 @@ export interface LiveSettingsData {
3234
selector: 'sr-livetiming',
3335
templateUrl: './livetiming.component.html',
3436
styleUrls: ['./livetiming.component.scss'],
35-
imports: [SpinnerComponent, LivetimingHeaderComponent, PanelComponent, LivetimingTableComponent, NoContentComponent, LivetimingControlsComponent, TranslateModule]
37+
imports: [SpinnerComponent, LivetimingHeaderComponent, PanelComponent, LivetimingTableComponent, NoContentComponent, LivetimingControlsComponent, TranslateModule, RouterLink, MatIcon, BtnComponent]
3638
})
3739
export class LivetimingComponent implements OnInit, OnDestroy {
3840
private routeService = inject(RouteService);
@@ -220,6 +222,10 @@ export class LivetimingComponent implements OnInit, OnDestroy {
220222
const st: StartImpl[] = []
221223
const ls: StartImpl[] = [];
222224

225+
if (this.meeting && this.meeting.location && this.meeting.location.lanes) {
226+
this.lanes = this.meeting.location.lanes;
227+
}
228+
223229
for (const start of starts) {
224230
const s = new StartImpl(start)
225231
if (!this.heatFinished && s.hasResult()) {

src/app/content/meetings/components/meeting-list-tile/meeting-list-tile.component.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ sr-panel {
7171
font-weight: 600;
7272
border-radius: 999px;
7373
padding: 4px 10px;
74-
background-color: colors.$color-bg-contrast;
75-
color: colors.$color-text-main;
74+
background-color: colors.$color-btn-first;
75+
color: white;
7676
}
7777
}
7878

src/assets/i18n/cs.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,9 @@
207207
"NO_LIVETIMING_MESSAGE": "Pro tento závod není k dispozici časomíra",
208208
"NO_LIVETIMING_YET_MESSAGE": "Časomíra je k dispozici až po zveřejnění startovní listiny",
209209
"NO_STARTS_MESSAGE": "Momentálně nejsou k dispozici žádné starty pro časomíru",
210-
"STREAM_BUTTON_TEXT": "Livestream na {{platform}}"
210+
"STREAM_BUTTON_TEXT": "Livestream na {{platform}}",
211+
"PRE_LIST_WARNING": "Pro tento závod je momentálně k dispozici pouze startovní listina. Správné rozdělení do rozplaveb bude zveřejněno bezprostředně po jejím zveřejnění.",
212+
"OPEN_EVENT_BUTTON": "Zobrazit závod"
211213
},
212214
"MEETINGS": {
213215
"LIST": {

src/assets/i18n/de.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,9 @@
283283
"NO_LIVETIMING_MESSAGE": "Für diese Veranstaltung gibt es leider kein Livetiming.",
284284
"NO_LIVETIMING_YET_MESSAGE": "Das Livetiming ist erst nach Veröffentlichung des Meldeergebnisses verfügbar.",
285285
"NO_CONTENT_MESSAGE": "Inhalt konnte nicht geladen werden.",
286-
"STREAM_BUTTON_TEXT": "Livestream auf {{platform}}"
286+
"STREAM_BUTTON_TEXT": "Livestream auf {{platform}}",
287+
"PRE_LIST_WARNING": "Für diesen Lauf gibt es aktuell nur eine Startliste. Die korrekte Laufeinteilung wird unmittelbar nach dem Setzen veröffentlicht.",
288+
"OPEN_EVENT_BUTTON": "Wettkampf anzeigen"
287289
},
288290
"AUTH": {
289291
"LOGOUT": {

src/assets/i18n/en.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,9 @@
279279
"NO_LIVETIMING_MESSAGE": "This meeting does not support the livetiming feature.",
280280
"NO_LIVETIMING_YET_MESSAGE": "The livetiming will be available after the start list has been published.",
281281
"NO_CONTENT_MESSAGE": "Unable to load content.",
282-
"STREAM_BUTTON_TEXT": "Livestream on {{platform}}"
282+
"STREAM_BUTTON_TEXT": "Livestream on {{platform}}",
283+
"PRE_LIST_WARNING": "For this heat there is currently only a start list available. The correct heat assignment will be published shortly after the set has been made.",
284+
"OPEN_EVENT_BUTTON": "Show Event"
283285
},
284286
"AUTH": {
285287
"LOGOUT": {

src/assets/i18n/ua.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,9 @@
210210
"NO_STARTS_MESSAGE": "Наразі немає доступних стартів для прямої трансляції.",
211211
"NO_LIVETIMING_MESSAGE": "Ці змаганя не підтримують функцію прямої трансляції.",
212212
"NO_LIVETIMING_YET_MESSAGE": "Пряма трансляція буде доступна після публікації протоколу змагань.",
213-
"NO_CONTENT_MESSAGE": "Не вдалося завантажити вміст."
213+
"NO_CONTENT_MESSAGE": "Не вдалося завантажити вміст.",
214+
"PRE_LIST_WARNING": "Для цього запливу наразі доступен лише стартовый протокол. Правильное распределение по заплывам будет опубликовано сразу после его публикации.",
215+
"OPEN_EVENT_BUTTON": "Показать событие"
214216
},
215217
"AUTH": {
216218
"LOGOUT": {

0 commit comments

Comments
 (0)