Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions components/match/CheckIntoMatch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<span class="absolute inset-y-0 right-3 flex items-center">
<CheckInDeadline
:cancels-at="checkInDeadline"
:help-label="deadlineHelp"
:help-label="expiryHelp"
/>
</span>
</button>
Expand Down Expand Up @@ -55,7 +55,7 @@
>
<CheckInDeadline
:cancels-at="checkInDeadline"
:help-label="deadlineHelp"
:help-label="expiryHelp"
/>
</span>
</button>
Expand All @@ -73,7 +73,8 @@
</Badge>
<CheckInDeadline
:cancels-at="checkInDeadline"
:help-label="deadlineHelp"
:prefix-label="checkedInLabel"
:help-label="expiryHelp"
variant="standalone"
checked-in
/>
Expand Down Expand Up @@ -195,6 +196,25 @@ export default {
checkInDeadline() {
return this.deadline ?? this.match?.cancels_at;
},
// A tournament match isn't canceled when check-in runs out: a team that
// checked in wins by forfeit, and with neither, an admin-mode match goes to
// the organizers while any other is coin-tossed (CancelExpiredMatches).
tournamentMatch() {
return (this.match.tournament_brackets?.length ?? 0) > 0;
},
expiryHelp() {
if (this.deadlineHelp !== undefined || !this.tournamentMatch) {
return this.deadlineHelp;
}
return this.match.options?.match_mode === "admin"
? this.$t("match.check_in.deadline_help_tournament_admin")
: this.$t("match.check_in.deadline_help_tournament");
},
checkedInLabel() {
return this.tournamentMatch && this.deadline === undefined
? this.$t("match.deadline_in")
: undefined;
},
deadlineGutterClasses() {
return this.checkInDeadline ? "pr-[4.75rem]" : "";
},
Expand Down
12 changes: 10 additions & 2 deletions components/match/MatchHeader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ const showAutoCancel = computed(
props.match.status !== e_match_status_enum.Canceled,
);

// A tournament match is never canceled when cancels_at passes: it is forfeited,
// or handed to the organizers (CancelExpiredMatches).
const deadlineLabel = computed(() =>
props.match.tournament_brackets?.length
? t("match.deadline_in")
: t("match.auto_canceling"),
);

// A pickup game's lineups are named after their captains, so the captain's
// face stands in for the missing team crest.
const isPug = computed(
Expand Down Expand Up @@ -271,7 +279,7 @@ const resultText = computed(() =>
class="inline-flex items-center gap-1.5 whitespace-nowrap text-[13px] text-destructive"
>
<AlertTriangle class="size-3.5 shrink-0" />
{{ $t("match.auto_canceling") }}
{{ deadlineLabel }}
<TimeAgo :date="match.cancels_at" countdown hide-icon />
</span>
</span>
Expand All @@ -290,7 +298,7 @@ const resultText = computed(() =>
class="inline-flex h-9 items-center gap-1.5 whitespace-nowrap text-[13px] text-destructive"
>
<AlertTriangle class="size-3.5 shrink-0" />
{{ $t("match.auto_canceling") }}
{{ deadlineLabel }}
<TimeAgo :date="match.cancels_at" countdown hide-icon />
</span>
</span>
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/ar_SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "مختارة"
},
"auto_canceling": "إلغاء تلقائي",
"deadline_in": "ينتهي الموعد النهائي بعد",
"demo_processing": "جارٍ معالجة التسجيل",
"actions": {
"call_support": "اطلب الدعم",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "أكّدت حضور {checked} من أصل {required} لاعبين مطلوبين لبدء المباراة",
"deadline": "سجّل حضورك خلال",
"deadline_checked_in": "الإلغاء التلقائي بعد",
"deadline_help": "تُلغى المباراة تلقائيًا إذا لم يسجّل كل المطلوبين حضورهم قبل انتهاء المؤقّت."
"deadline_help": "تُلغى المباراة تلقائيًا إذا لم يسجّل كل المطلوبين حضورهم قبل انتهاء المؤقّت.",
"deadline_help_tournament": "إذا انتهى المؤقّت، يفوز بالانسحاب الفريق الذي سجّل كل المطلوبين منه حضورهم. وإذا لم يوجد فريق كهذا، تُحدّد القرعة الفائز.",
"deadline_help_tournament_admin": "إذا انتهى المؤقّت، يفوز بالانسحاب الفريق الذي سجّل كل المطلوبين منه حضورهم. وإذا لم يوجد فريق كهذا، يقرّر منظّمو البطولة."
},
"coach": {
"assign": "عيّن مدرب"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/da_DK.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Picket"
},
"auto_canceling": "Aflyser automatisk",
"deadline_in": "Fristen udløber om",
"demo_processing": "Behandler demo",
"actions": {
"call_support": "Tilkald support",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Du har checket {checked} ud af {required} spillere ind, som kræves for at starte kampen",
"deadline": "Meld dig klar inden for",
"deadline_checked_in": "Aflyses automatisk om",
"deadline_help": "Kampen aflyses automatisk, hvis alle nødvendige spillere ikke har meldt sig klar, inden tiden løber ud."
"deadline_help": "Kampen aflyses automatisk, hvis alle nødvendige spillere ikke har meldt sig klar, inden tiden løber ud.",
"deadline_help_tournament": "Hvis tiden løber ud, vinder et hold, hvor alle nødvendige spillere har meldt sig klar, på walkover. Hvis intet hold har det, afgør et møntkast vinderen.",
"deadline_help_tournament_admin": "Hvis tiden løber ud, vinder et hold, hvor alle nødvendige spillere har meldt sig klar, på walkover. Hvis intet hold har det, afgør turneringsarrangørerne det."
},
"coach": {
"assign": "Tildel coach"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Gepickt"
},
"auto_canceling": "Wird automatisch abgebrochen",
"deadline_in": "Frist endet in",
"demo_processing": "Demo wird verarbeitet",
"actions": {
"call_support": "Support rufen",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Du hast {checked} von {required} Spielern eingecheckt, die zum Start des Matches nötig sind",
"deadline": "Einchecken innerhalb von",
"deadline_checked_in": "Automatischer Abbruch in",
"deadline_help": "Das Match wird automatisch abgebrochen, wenn nicht alle Erforderlichen vor Ablauf des Timers eingecheckt haben."
"deadline_help": "Das Match wird automatisch abgebrochen, wenn nicht alle Erforderlichen vor Ablauf des Timers eingecheckt haben.",
"deadline_help_tournament": "Läuft der Timer ab, gewinnt ein Team, bei dem alle Erforderlichen eingecheckt haben, kampflos. Hat das kein Team geschafft, entscheidet ein Münzwurf.",
"deadline_help_tournament_admin": "Läuft der Timer ab, gewinnt ein Team, bei dem alle Erforderlichen eingecheckt haben, kampflos. Hat das kein Team geschafft, entscheiden die Turnierorganisatoren."
},
"coach": {
"assign": "Coach zuweisen"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -10568,6 +10568,7 @@
"picked": "Picked"
},
"auto_canceling": "Auto Canceling",
"deadline_in": "Deadline in",
"demo_processing": "Processing demo",
"actions": {
"call_support": "Call for Support",
Expand Down Expand Up @@ -10864,7 +10865,9 @@
"checked_in_description": "You have checked in {checked} out of {required} players required to start the match",
"deadline": "Check in within",
"deadline_checked_in": "Auto-cancels in",
"deadline_help": "The match is automatically canceled if everyone required hasn't checked in before the timer runs out."
"deadline_help": "The match is automatically canceled if everyone required hasn't checked in before the timer runs out.",
"deadline_help_tournament": "If the timer runs out, a team with everyone required checked in wins by forfeit. If neither has, a coin toss picks the winner.",
"deadline_help_tournament_admin": "If the timer runs out, a team with everyone required checked in wins by forfeit. If neither has, the tournament organizers decide."
},
"coach": {
"assign": "Assign Coach"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Elegido"
},
"auto_canceling": "Cancelación automática",
"deadline_in": "El plazo termina en",
"demo_processing": "Procesando demo",
"actions": {
"call_support": "Pedir soporte",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Han hecho check-in {checked} de los {required} jugadores necesarios para empezar la partida",
"deadline": "Confirma tu asistencia en",
"deadline_checked_in": "Cancelación automática en",
"deadline_help": "La partida se cancela automáticamente si todos los jugadores necesarios no han confirmado antes de que se agote el temporizador."
"deadline_help": "La partida se cancela automáticamente si todos los jugadores necesarios no han confirmado antes de que se agote el temporizador.",
"deadline_help_tournament": "Si se agota el temporizador, un equipo con todos los jugadores necesarios confirmados gana por incomparecencia. Si ninguno lo está, se decide a cara o cruz.",
"deadline_help_tournament_admin": "Si se agota el temporizador, un equipo con todos los jugadores necesarios confirmados gana por incomparecencia. Si ninguno lo está, deciden los organizadores del torneo."
},
"coach": {
"assign": "Asignar coach"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/fr_FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Pick"
},
"auto_canceling": "Annulation automatique",
"deadline_in": "Échéance dans",
"demo_processing": "Traitement de la démo",
"actions": {
"call_support": "Demander de l'aide",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "{checked} joueurs sur les {required} requis ont fait leur check-in pour lancer le match",
"deadline": "Confirmez votre présence sous",
"deadline_checked_in": "Annulation automatique dans",
"deadline_help": "Le match est annulé automatiquement si toutes les personnes requises n'ont pas confirmé leur présence avant la fin du minuteur."
"deadline_help": "Le match est annulé automatiquement si toutes les personnes requises n'ont pas confirmé leur présence avant la fin du minuteur.",
"deadline_help_tournament": "Si le minuteur arrive à zéro, une équipe dont toutes les personnes requises ont confirmé leur présence gagne par forfait. Sinon, un tirage au sort désigne le vainqueur.",
"deadline_help_tournament_admin": "Si le minuteur arrive à zéro, une équipe dont toutes les personnes requises ont confirmé leur présence gagne par forfait. Sinon, les organisateurs du tournoi décident."
},
"coach": {
"assign": "Assigner un coach"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Scelta"
},
"auto_canceling": "Annullamento automatico",
"deadline_in": "Scadenza tra",
"demo_processing": "Elaborazione della demo",
"actions": {
"call_support": "Richiedi supporto",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Hai fatto il check-in di {checked} giocatori su {required} richiesti per iniziare il match",
"deadline": "Conferma la presenza entro",
"deadline_checked_in": "Annullamento automatico tra",
"deadline_help": "La partita viene annullata automaticamente se tutti i partecipanti richiesti non hanno confermato prima dello scadere del timer."
"deadline_help": "La partita viene annullata automaticamente se tutti i partecipanti richiesti non hanno confermato prima dello scadere del timer.",
"deadline_help_tournament": "Se il timer scade, una squadra in cui tutti i partecipanti richiesti hanno confermato la presenza vince a tavolino. Se nessuna ci è riuscita, il vincitore è deciso con il lancio di una moneta.",
"deadline_help_tournament_admin": "Se il timer scade, una squadra in cui tutti i partecipanti richiesti hanno confermato la presenza vince a tavolino. Se nessuna ci è riuscita, decidono gli organizzatori del torneo."
},
"coach": {
"assign": "Assegna coach"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/ja_JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Pick 済み"
},
"auto_canceling": "自動中止まで",
"deadline_in": "期限まで",
"demo_processing": "デモを処理中",
"actions": {
"call_support": "サポートを呼ぶ",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "試合開始に必要な{required}人中{checked}人がチェックインしました",
"deadline": "参加確認の残り時間",
"deadline_checked_in": "自動キャンセルまで",
"deadline_help": "必要なプレイヤー全員がタイマー終了までに参加確認しない場合、試合は自動的にキャンセルされます。"
"deadline_help": "必要なプレイヤー全員がタイマー終了までに参加確認しない場合、試合は自動的にキャンセルされます。",
"deadline_help_tournament": "タイマーが終了すると、必要なメンバー全員が参加確認を済ませたチームが不戦勝になります。該当するチームがない場合は、コイントスで勝者が決まります。",
"deadline_help_tournament_admin": "タイマーが終了すると、必要なメンバー全員が参加確認を済ませたチームが不戦勝になります。該当するチームがない場合は、大会の主催者が判断します。"
},
"coach": {
"assign": "コーチを割り当て"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/ko_KR.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "픽됨"
},
"auto_canceling": "자동 취소 중",
"deadline_in": "마감까지",
"demo_processing": "데모 처리 중",
"actions": {
"call_support": "지원 요청",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "매치 시작에 필요한 {required}명 중 {checked}명이 체크인했습니다",
"deadline": "참가 확인 남은 시간",
"deadline_checked_in": "자동 취소까지",
"deadline_help": "필요한 인원이 모두 시간 안에 참가 확인을 하지 않으면 경기가 자동으로 취소됩니다."
"deadline_help": "필요한 인원이 모두 시간 안에 참가 확인을 하지 않으면 경기가 자동으로 취소됩니다.",
"deadline_help_tournament": "시간이 끝나면 필요한 인원이 모두 참가 확인을 마친 팀이 몰수승을 거둡니다. 그런 팀이 없으면 동전 던지기로 승자를 정합니다.",
"deadline_help_tournament_admin": "시간이 끝나면 필요한 인원이 모두 참가 확인을 마친 팀이 몰수승을 거둡니다. 그런 팀이 없으면 대회 주최자가 결정합니다."
},
"coach": {
"assign": "코치 지정"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/pl_PL.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Wybrane"
},
"auto_canceling": "Automatyczne anulowanie",
"deadline_in": "Termin mija za",
"demo_processing": "Przetwarzanie dema",
"actions": {
"call_support": "Wezwij wsparcie",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Potwierdzono obecność {checked} z {required} graczy wymaganych do rozpoczęcia meczu",
"deadline": "Potwierdź obecność w ciągu",
"deadline_checked_in": "Automatyczne anulowanie za",
"deadline_help": "Mecz zostaje automatycznie anulowany, jeśli wszyscy wymagani gracze nie potwierdzą obecności przed upływem czasu."
"deadline_help": "Mecz zostaje automatycznie anulowany, jeśli wszyscy wymagani gracze nie potwierdzą obecności przed upływem czasu.",
"deadline_help_tournament": "Jeśli czas się skończy, drużyna, w której wszyscy wymagani gracze potwierdzili obecność, wygrywa walkowerem. Jeśli nie ma takiej drużyny, zwycięzcę wyłoni rzut monetą.",
"deadline_help_tournament_admin": "Jeśli czas się skończy, drużyna, w której wszyscy wymagani gracze potwierdzili obecność, wygrywa walkowerem. Jeśli nie ma takiej drużyny, decydują organizatorzy turnieju."
},
"coach": {
"assign": "Przypisz trenera"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/pt_BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Escolhido"
},
"auto_canceling": "Cancelamento Automático",
"deadline_in": "O prazo termina em",
"demo_processing": "Processando Demo",
"actions": {
"call_support": "Chamar Suporte",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Check-in {checked} de {required} jogadores necessários para iniciar a partida",
"deadline": "Confirmar dentro de",
"deadline_checked_in": "Cancela automaticamente em",
"deadline_help": "A partida é cancelada automaticamente se todos os jogadores necessários não confirmarem antes do tempo acabar."
"deadline_help": "A partida é cancelada automaticamente se todos os jogadores necessários não confirmarem antes do tempo acabar.",
"deadline_help_tournament": "Se o tempo acabar, um time com todos os jogadores necessários confirmados vence por W.O. Se nenhum estiver, o vencedor é decidido no cara ou coroa.",
"deadline_help_tournament_admin": "Se o tempo acabar, um time com todos os jogadores necessários confirmados vence por W.O. Se nenhum estiver, os organizadores do torneio decidem."
},
"coach": {
"assign": "Atribuir Treinador"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/ru_RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Выбрано"
},
"auto_canceling": "Автоотмена",
"deadline_in": "Срок истекает через",
"demo_processing": "Обработка демо",
"actions": {
"call_support": "Позвать поддержку",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Отметилось {checked} из {required} игроков, нужных для старта матча",
"deadline": "Отметьтесь в течение",
"deadline_checked_in": "Автоотмена через",
"deadline_help": "Матч автоматически отменяется, если все необходимые участники не отметятся до истечения таймера."
"deadline_help": "Матч автоматически отменяется, если все необходимые участники не отметятся до истечения таймера.",
"deadline_help_tournament": "Если таймер истечёт, команда, в которой отметились все необходимые участники, получает техническую победу. Если такой нет, победителя определит жребий.",
"deadline_help_tournament_admin": "Если таймер истечёт, команда, в которой отметились все необходимые участники, получает техническую победу. Если такой нет, решают организаторы турнира."
},
"coach": {
"assign": "Назначить тренера"
Expand Down
5 changes: 4 additions & 1 deletion i18n/locales/sv_SE.json
Original file line number Diff line number Diff line change
Expand Up @@ -10566,6 +10566,7 @@
"picked": "Vald"
},
"auto_canceling": "Avbryter automatiskt",
"deadline_in": "Tidsgränsen går ut om",
"demo_processing": "Bearbetar demo",
"actions": {
"call_support": "Kalla på support",
Expand Down Expand Up @@ -10862,7 +10863,9 @@
"checked_in_description": "Du har checkat in {checked} av {required} spelare som krävs för att starta matchen",
"deadline": "Anmäl dig inom",
"deadline_checked_in": "Avbryts automatiskt om",
"deadline_help": "Matchen avbryts automatiskt om alla som krävs inte har anmält sig innan tiden går ut."
"deadline_help": "Matchen avbryts automatiskt om alla som krävs inte har anmält sig innan tiden går ut.",
"deadline_help_tournament": "Om tiden går ut vinner ett lag där alla som krävs har anmält sig på walkover. Om inget lag har det avgör en slantsingling.",
"deadline_help_tournament_admin": "Om tiden går ut vinner ett lag där alla som krävs har anmält sig på walkover. Om inget lag har det avgör turneringsarrangörerna."
},
"coach": {
"assign": "Tilldela coach"
Expand Down
Loading
Loading