diff --git a/src/app/services/waiting-service-judges.service.ts b/src/app/services/waiting-service-judges.service.ts index 64a9f88..2737d9a 100644 --- a/src/app/services/waiting-service-judges.service.ts +++ b/src/app/services/waiting-service-judges.service.ts @@ -152,4 +152,10 @@ export class WaitingServiceJudgesService { } }); } + + async getCurrentUmpire(): Promise { + const item = await db.waitingServiceJudges.where('order').equals(1).first(); + + return item ? db.umpires.get(item.serviceJudgeId) : undefined; + } } diff --git a/src/app/services/waiting-umpires.service.ts b/src/app/services/waiting-umpires.service.ts index c10dcb4..d32a954 100644 --- a/src/app/services/waiting-umpires.service.ts +++ b/src/app/services/waiting-umpires.service.ts @@ -152,4 +152,10 @@ export class WaitingUmpiresService { } }); } + + async getCurrentUmpire(): Promise { + const item = await db.waitingUmpires.where('order').equals(1).first(); + + return item ? db.umpires.get(item.umpireId) : undefined; + } } diff --git a/src/app/tab1/tab1.page.html b/src/app/tab1/tab1.page.html index d2d832a..eabd2ca 100644 --- a/src/app/tab1/tab1.page.html +++ b/src/app/tab1/tab1.page.html @@ -80,15 +80,29 @@ + @if (umpireByCourt().get($index + 1) && + serviceJudgeByCourt().get($index + 1)) { + } @else if (!umpireByCourt().get($index + 1) && + !serviceJudgeByCourt().get($index + 1) && waitingUmpires().length && + waitingServiceJudges().length) { + + + + } diff --git a/src/app/tab1/tab1.page.ts b/src/app/tab1/tab1.page.ts index 60a3e1d..e6282da 100644 --- a/src/app/tab1/tab1.page.ts +++ b/src/app/tab1/tab1.page.ts @@ -31,7 +31,7 @@ import { CommonModule } from '@angular/common'; import { CourtUmpireService } from '../services/court.umpire.service'; import { CourtServiceJudgeService } from '../services/court.service.judge.service'; import { addIcons } from 'ionicons'; -import { exitOutline } from 'ionicons/icons'; +import { enterOutline, exitOutline } from 'ionicons/icons'; @Component({ selector: 'app-tab1', @@ -61,7 +61,7 @@ import { exitOutline } from 'ionicons/icons'; }) export class Tab1Page { constructor() { - addIcons({ exitOutline }); + addIcons({ exitOutline, enterOutline }); } readonly settingsService = inject(SettingsService); @@ -417,4 +417,51 @@ export class Tab1Page { await this.waitingUmpireService.add(serviceJudge.id); await this.waitingServiceJudgeService.add(umpire.id); } + + public async showAddConfirmation(courtNo: number) { + const umpire = await this.waitingUmpireService.getCurrentUmpire(); + const serviceJudge = + await this.waitingServiceJudgeService.getCurrentUmpire(); + + if (typeof umpire === 'undefined' || typeof serviceJudge === 'undefined') { + return; + } + + const alert = await this.alertController.create({ + header: `Pálya ${courtNo}`, + cssClass: 'wide', + subHeader: 'Biztos pályára küldöd őket?', + message: `${this.fullnamePipe.transform(umpire)} - ${this.fullnamePipe.transform(serviceJudge)}`, + buttons: [ + { + text: 'Nem', + role: 'cancel' + }, + { + text: 'Igen', + role: 'confirm', + handler: () => { + this.addUmpiresToCourt(courtNo, umpire, serviceJudge); + } + } + ] + }); + + await alert.present(); + } + + private async addUmpiresToCourt( + courtNo: number, + umpire: Umpire, + serviceJudge: Umpire + ) { + await this.courtUmpireService.save({ courtNo, umpireId: umpire.id }); + await this.courtServiceJudgeService.save({ + courtNo, + umpireId: serviceJudge.id + }); + + await this.waitingUmpireService.removeByUmpireId(umpire.id); + await this.waitingServiceJudgeService.removeByUmpireId(serviceJudge.id); + } }