diff --git a/db.ts b/db.ts index 0761048..b4c6157 100644 --- a/db.ts +++ b/db.ts @@ -37,6 +37,7 @@ export interface Settings { id: number; withServiceJudge: boolean; numberOfCourts: number; + showAlert: boolean; } const db = new Dexie('CourtPilot') as Dexie & { diff --git a/src/app/explore-container/explore-container.component.html b/src/app/explore-container/explore-container.component.html deleted file mode 100644 index a3fcb60..0000000 --- a/src/app/explore-container/explore-container.component.html +++ /dev/null @@ -1,12 +0,0 @@ -
- {{ name }} -

- Explore - UI Components -

-
diff --git a/src/app/explore-container/explore-container.component.scss b/src/app/explore-container/explore-container.component.scss deleted file mode 100644 index 8993e7c..0000000 --- a/src/app/explore-container/explore-container.component.scss +++ /dev/null @@ -1,27 +0,0 @@ -#container { - text-align: center; - - position: absolute; - left: 0; - right: 0; - top: 50%; - transform: translateY(-50%); -} - -#container strong { - font-size: 20px; - line-height: 26px; -} - -#container p { - font-size: 16px; - line-height: 22px; - - color: #8c8c8c; - - margin: 0; -} - -#container a { - text-decoration: none; -} \ No newline at end of file diff --git a/src/app/explore-container/explore-container.component.spec.ts b/src/app/explore-container/explore-container.component.spec.ts deleted file mode 100644 index aa956d9..0000000 --- a/src/app/explore-container/explore-container.component.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ExploreContainerComponent } from './explore-container.component'; - -describe('ExploreContainerComponent', () => { - let component: ExploreContainerComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - fixture = TestBed.createComponent(ExploreContainerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/explore-container/explore-container.component.ts b/src/app/explore-container/explore-container.component.ts deleted file mode 100644 index 3f4e8b2..0000000 --- a/src/app/explore-container/explore-container.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'app-explore-container', - templateUrl: './explore-container.component.html', - styleUrls: ['./explore-container.component.scss'], -}) -export class ExploreContainerComponent { - @Input() name?: string; -} diff --git a/src/app/services/settings-service.ts b/src/app/services/settings-service.ts index aedec29..f7eaeba 100644 --- a/src/app/services/settings-service.ts +++ b/src/app/services/settings-service.ts @@ -39,7 +39,8 @@ export class SettingsService { await db.settings.put({ id: 1, numberOfCourts: 5, - withServiceJudge: true + withServiceJudge: true, + showAlert: true }); } } diff --git a/src/app/tab3/tab3.page.html b/src/app/tab3/tab3.page.html index 222333d..d0971ce 100644 --- a/src/app/tab3/tab3.page.html +++ b/src/app/tab3/tab3.page.html @@ -1,17 +1,46 @@ - + - - Tab 3 - + Beállítások - - - - Tab 3 - - + + + + + @if (settings(); as currentSettings) { - + + + + Adogatásbíró + + + + + + Figyelmeztetések megjelenítése a gyors gomboknál + + + + + + + + + + } + + + diff --git a/src/app/tab3/tab3.page.ts b/src/app/tab3/tab3.page.ts index 5f6b0f1..9192720 100644 --- a/src/app/tab3/tab3.page.ts +++ b/src/app/tab3/tab3.page.ts @@ -1,13 +1,79 @@ -import { Component } from '@angular/core'; -import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone'; -import { ExploreContainerComponent } from '../explore-container/explore-container.component'; +import { Component, inject } from '@angular/core'; +import { + IonHeader, + IonToolbar, + IonTitle, + IonContent, + IonList, + IonItem, + IonToggle, + IonInput, + IonGrid, + IonCol, + IonRow +} from '@ionic/angular/standalone'; +import { SettingsService } from '../services/settings-service'; +import { CourtUmpireService } from '../services/court.umpire.service'; +import { CourtServiceJudgeService } from '../services/court.service.judge.service'; @Component({ selector: 'app-tab3', templateUrl: 'tab3.page.html', styleUrls: ['tab3.page.scss'], - imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent], + imports: [ + IonRow, + IonCol, + IonGrid, + IonInput, + IonToggle, + IonItem, + IonList, + IonHeader, + IonToolbar, + IonTitle, + IonContent + ] }) export class Tab3Page { - constructor() {} + readonly settingsService = inject(SettingsService); + readonly courtUmpireService = inject(CourtUmpireService); + readonly courtServiceJudgeService = inject(CourtServiceJudgeService); + + readonly settings = this.settingsService.settings; + + async updateNumberOfCourts(event: CustomEvent): Promise { + this.courtUmpireService + .umpires() + .filter((cu) => { + return cu.courtNo > Number(event.detail.value); + }) + .map((cu) => { + this.courtUmpireService.delete(cu.id); + }); + + this.courtServiceJudgeService + .umpires() + .filter((cu) => { + return cu.courtNo > Number(event.detail.value); + }) + .map((cu) => { + this.courtServiceJudgeService.delete(cu.id); + }); + + await this.settingsService.update({ + numberOfCourts: Number(event.detail.value) + }); + } + + async updateWithServiceJudge(event: CustomEvent): Promise { + await this.settingsService.update({ + withServiceJudge: event.detail.checked + }); + } + + async updateShowAlert(event: CustomEvent): Promise { + await this.settingsService.update({ + showAlert: event.detail.checked + }); + } } diff --git a/src/app/tabs/tabs.page.html b/src/app/tabs/tabs.page.html index e6c8c63..71fe43b 100644 --- a/src/app/tabs/tabs.page.html +++ b/src/app/tabs/tabs.page.html @@ -1,22 +1,17 @@ - + Pályák - + Játékvezetők - - - Tab 3 - - - + Beállítások diff --git a/src/app/tabs/tabs.page.ts b/src/app/tabs/tabs.page.ts index d057eac..c34fce0 100644 --- a/src/app/tabs/tabs.page.ts +++ b/src/app/tabs/tabs.page.ts @@ -1,18 +1,24 @@ import { Component, EnvironmentInjector, inject } from '@angular/core'; -import { IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel } from '@ionic/angular/standalone'; +import { + IonTabs, + IonTabBar, + IonTabButton, + IonIcon, + IonLabel +} from '@ionic/angular/standalone'; import { addIcons } from 'ionicons'; -import { triangle, ellipse, square } from 'ionicons/icons'; +import { gridOutline, peopleOutline, settingsOutline } from 'ionicons/icons'; @Component({ selector: 'app-tabs', templateUrl: 'tabs.page.html', styleUrls: ['tabs.page.scss'], - imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel], + imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel] }) export class TabsPage { public environmentInjector = inject(EnvironmentInjector); constructor() { - addIcons({ triangle, ellipse, square }); + addIcons({ gridOutline, peopleOutline, settingsOutline }); } } diff --git a/src/app/tabs/tabs.routes.ts b/src/app/tabs/tabs.routes.ts index 98ad40e..958f7eb 100644 --- a/src/app/tabs/tabs.routes.ts +++ b/src/app/tabs/tabs.routes.ts @@ -15,7 +15,7 @@ export const routes: Routes = [ loadComponent: () => import('../tab2/tab2.page').then((m) => m.Tab2Page) }, { - path: 'stats', + path: 'settings', loadComponent: () => import('../tab3/tab3.page').then((m) => m.Tab3Page) }, {