Compare commits
5 Commits
425742a7db
...
ae1a30da29
| Author | SHA1 | Date | |
|---|---|---|---|
| ae1a30da29 | |||
| e58afad433 | |||
| 3aee8fd99e | |||
| 3559adfbc9 | |||
| e2494197cd |
@@ -1,4 +1,4 @@
|
||||
FROM node:20.13.1-alpine3.19 as build
|
||||
FROM node:22.18.0-alpine3.22 as build
|
||||
WORKDIR /app/src
|
||||
COPY package*.json ./
|
||||
RUN apk update
|
||||
@@ -7,7 +7,7 @@ RUN yarn install --frozen-lockfile --no-progress
|
||||
COPY . ./
|
||||
RUN yarn build
|
||||
|
||||
FROM node:20.13.1-alpine3.19
|
||||
FROM node:22.18.0-alpine3.22
|
||||
RUN addgroup -S k8s-group && adduser -S k8s-user -G k8s-group
|
||||
USER root
|
||||
WORKDIR /usr/app
|
||||
|
||||
34
angular.json
34
angular.json
@@ -15,7 +15,7 @@
|
||||
"prefix": "app",
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:application",
|
||||
"builder": "@angular/build:application",
|
||||
"options": {
|
||||
"outputPath": "dist/swiss-client",
|
||||
"index": "src/index.html",
|
||||
@@ -85,7 +85,7 @@
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
"builder": "@angular/build:dev-server",
|
||||
"configurations": {
|
||||
"production": {
|
||||
"buildTarget": "swiss-client:build:production"
|
||||
@@ -100,10 +100,10 @@
|
||||
"defaultConfiguration": "development"
|
||||
},
|
||||
"extract-i18n": {
|
||||
"builder": "@angular-devkit/build-angular:extract-i18n"
|
||||
"builder": "@angular/build:extract-i18n"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
"builder": "@angular/build:karma",
|
||||
"options": {
|
||||
"polyfills": [
|
||||
"zone.js",
|
||||
@@ -129,5 +129,31 @@
|
||||
},
|
||||
"cli": {
|
||||
"analytics": "95cdfcca-c4c3-4279-80f4-6ccad3383c37"
|
||||
},
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"type": "component"
|
||||
},
|
||||
"@schematics/angular:directive": {
|
||||
"type": "directive"
|
||||
},
|
||||
"@schematics/angular:service": {
|
||||
"type": "service"
|
||||
},
|
||||
"@schematics/angular:guard": {
|
||||
"typeSeparator": "."
|
||||
},
|
||||
"@schematics/angular:interceptor": {
|
||||
"typeSeparator": "."
|
||||
},
|
||||
"@schematics/angular:module": {
|
||||
"typeSeparator": "."
|
||||
},
|
||||
"@schematics/angular:pipe": {
|
||||
"typeSeparator": "."
|
||||
},
|
||||
"@schematics/angular:resolver": {
|
||||
"typeSeparator": "."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9838
package-lock.json
generated
Normal file
9838
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
58
package.json
58
package.json
@@ -11,45 +11,45 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^18.2.5",
|
||||
"@angular/cdk": "^18.2.5",
|
||||
"@angular/common": "^18.2.5",
|
||||
"@angular/compiler": "^18.2.5",
|
||||
"@angular/core": "^18.2.5",
|
||||
"@angular/forms": "^18.2.5",
|
||||
"@angular/material": "^18.2.5",
|
||||
"@angular/material-moment-adapter": "^18.2.5",
|
||||
"@angular/platform-browser": "^18.2.5",
|
||||
"@angular/platform-browser-dynamic": "^18.2.5",
|
||||
"@angular/platform-server": "^18.2.5",
|
||||
"@angular/router": "^18.2.5",
|
||||
"@angular/ssr": "^18.2.5",
|
||||
"@ng-bootstrap/ng-bootstrap": "^17.0.0",
|
||||
"@angular/animations": "^20.1.6",
|
||||
"@angular/cdk": "^20.1.5",
|
||||
"@angular/common": "^20.1.6",
|
||||
"@angular/compiler": "^20.1.6",
|
||||
"@angular/core": "^20.1.6",
|
||||
"@angular/forms": "^20.1.6",
|
||||
"@angular/material": "^20.1.5",
|
||||
"@angular/material-moment-adapter": "^20.1.5",
|
||||
"@angular/platform-browser": "^20.1.6",
|
||||
"@angular/platform-browser-dynamic": "^20.1.6",
|
||||
"@angular/platform-server": "^20.1.6",
|
||||
"@angular/router": "^20.1.6",
|
||||
"@angular/ssr": "^20.1.5",
|
||||
"@ng-bootstrap/ng-bootstrap": "^19.0.1",
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"bootstrap": "^5.3.2",
|
||||
"express": "^4.18.2",
|
||||
"moment": "2.18.1",
|
||||
"ngx-cookie-service-ssr": "^18.0.0",
|
||||
"ngx-mask": "^18.0.0",
|
||||
"bootstrap": "^5.3.7",
|
||||
"express": "^5.1.0",
|
||||
"moment": "2.30.1",
|
||||
"ngx-cookie-service-ssr": "^20.1.0",
|
||||
"ngx-mask": "^20.0.3",
|
||||
"rxjs": "~7.8.0",
|
||||
"ts-enums": "^0.0.6",
|
||||
"tslib": "^2.3.0",
|
||||
"zone.js": "~0.14.10"
|
||||
"tslib": "^2.8.1",
|
||||
"zone.js": "~0.15.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^18.2.5",
|
||||
"@angular/cli": "^18.2.5",
|
||||
"@angular/compiler-cli": "^18.2.5",
|
||||
"@angular/localize": "^18.2.5",
|
||||
"@types/express": "^4.17.17",
|
||||
"@angular/build": "^20.1.5",
|
||||
"@angular/cli": "^20.1.5",
|
||||
"@angular/compiler-cli": "^20.1.6",
|
||||
"@angular/localize": "^20.1.6",
|
||||
"@types/express": "^5.0.3",
|
||||
"@types/jasmine": "~5.1.0",
|
||||
"@types/node": "^18.18.0",
|
||||
"jasmine-core": "~5.1.0",
|
||||
"@types/node": "^24.2.1",
|
||||
"jasmine-core": "~5.9.0",
|
||||
"karma": "~6.4.0",
|
||||
"karma-chrome-launcher": "~3.2.0",
|
||||
"karma-coverage": "~2.2.0",
|
||||
"karma-jasmine": "~5.1.0",
|
||||
"karma-jasmine-html-reporter": "~2.1.0",
|
||||
"typescript": "~5.4.2"
|
||||
"typescript": "~5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { APP_BASE_HREF } from '@angular/common';
|
||||
import { CommonEngine } from '@angular/ssr';
|
||||
import { CommonEngine } from '@angular/ssr/node';
|
||||
import express from 'express';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { dirname, join, resolve } from 'node:path';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {Component, OnDestroy, OnInit} from '@angular/core';
|
||||
import {ActivatedRoute, NavigationEnd, Router, RouterLink, RouterLinkActive, RouterOutlet} from '@angular/router';
|
||||
import {ActivatedRoute, Router, RouterLink, RouterOutlet} from '@angular/router';
|
||||
import {CommonModule, NgOptimizedImage} from "@angular/common";
|
||||
import {MatAnchor, MatButton, MatIconButton, MatMiniFabButton} from "@angular/material/button";
|
||||
import {MatAnchor, MatButton} from "@angular/material/button";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatToolbar} from "@angular/material/toolbar";
|
||||
import {TitleService} from "./service/title.service";
|
||||
@@ -11,12 +11,11 @@ import {UserService} from "./authentication/user.service";
|
||||
import {TournamentService} from "./service/tournament.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [RouterOutlet, CommonModule, RouterLink, RouterLinkActive, MatAnchor, MatIcon, MatButton, MatToolbar, NgOptimizedImage, MatIconButton, MatMiniFabButton, MatMenuTrigger, MatMenu, MatMenuItem],
|
||||
providers: [TitleService],
|
||||
templateUrl: './app.component.html',
|
||||
styleUrl: './app.component.scss'
|
||||
selector: 'app-root',
|
||||
imports: [RouterOutlet, CommonModule, RouterLink, MatAnchor, MatIcon, MatButton, MatToolbar, NgOptimizedImage, MatMenuTrigger, MatMenu, MatMenuItem],
|
||||
providers: [TitleService],
|
||||
templateUrl: './app.component.html',
|
||||
styleUrl: './app.component.scss'
|
||||
})
|
||||
export class AppComponent implements OnInit, OnDestroy {
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { provideServerRendering } from '@angular/ssr';
|
||||
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
|
||||
import { provideServerRendering } from '@angular/platform-server';
|
||||
import { appConfig } from './app.config';
|
||||
|
||||
const serverConfig: ApplicationConfig = {
|
||||
|
||||
@@ -11,18 +11,17 @@ import {NgForOf} from "@angular/common";
|
||||
import {MatButton} from "@angular/material/button";
|
||||
|
||||
@Component({
|
||||
selector: 'app-court-selection',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatDialogTitle,
|
||||
MatDialogContent,
|
||||
NgForOf,
|
||||
MatButton,
|
||||
MatDialogClose,
|
||||
MatDialogActions
|
||||
],
|
||||
templateUrl: './court-selection.component.html',
|
||||
styleUrl: './court-selection.component.scss'
|
||||
selector: 'app-court-selection',
|
||||
imports: [
|
||||
MatDialogTitle,
|
||||
MatDialogContent,
|
||||
NgForOf,
|
||||
MatButton,
|
||||
MatDialogClose,
|
||||
MatDialogActions
|
||||
],
|
||||
templateUrl: './court-selection.component.html',
|
||||
styleUrl: './court-selection.component.scss'
|
||||
})
|
||||
export class CourtSelectionComponent {
|
||||
|
||||
|
||||
@@ -14,24 +14,18 @@ import {TitleService} from "../../service/title.service";
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-login',
|
||||
templateUrl: './login.component.html',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatCardTitle,
|
||||
MatCardContent,
|
||||
ReactiveFormsModule,
|
||||
MatFormField,
|
||||
MatButton,
|
||||
RouterLink,
|
||||
MatInput,
|
||||
NgIf,
|
||||
MatLabel,
|
||||
MatError,
|
||||
MatCard,
|
||||
MatCardHeader
|
||||
],
|
||||
styleUrls: ['./login.component.scss']
|
||||
selector: 'app-login',
|
||||
templateUrl: './login.component.html',
|
||||
imports: [
|
||||
MatCardContent,
|
||||
ReactiveFormsModule,
|
||||
MatFormField,
|
||||
MatButton,
|
||||
MatInput,
|
||||
MatLabel,
|
||||
MatCard,
|
||||
],
|
||||
styleUrls: ['./login.component.scss']
|
||||
})
|
||||
export class LoginComponent implements OnInit {
|
||||
public form: FormGroup;
|
||||
|
||||
@@ -21,34 +21,28 @@ import {Group} from "../../model/group";
|
||||
import {Game} from "../../model/game";
|
||||
|
||||
@Component({
|
||||
selector: 'app-match-result',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatDialogContent,
|
||||
MatDialogActions,
|
||||
MatButton,
|
||||
MatDialogClose,
|
||||
MatDialogTitle,
|
||||
DatePipe,
|
||||
MatIcon,
|
||||
NgForOf,
|
||||
TeamPipe,
|
||||
MatInput,
|
||||
ReactiveFormsModule,
|
||||
FormsModule,
|
||||
MatFormField,
|
||||
MatGridList,
|
||||
MatGridTile,
|
||||
MatGridTileText,
|
||||
MatIconButton,
|
||||
NgClass
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe
|
||||
],
|
||||
templateUrl: './match-result.component.html',
|
||||
styleUrl: './match-result.component.scss'
|
||||
selector: 'app-match-result',
|
||||
imports: [
|
||||
MatDialogContent,
|
||||
MatDialogActions,
|
||||
MatButton,
|
||||
MatDialogClose,
|
||||
MatDialogTitle,
|
||||
TeamPipe,
|
||||
MatInput,
|
||||
ReactiveFormsModule,
|
||||
FormsModule,
|
||||
MatFormField,
|
||||
MatGridList,
|
||||
MatGridTile,
|
||||
NgClass
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe
|
||||
],
|
||||
templateUrl: './match-result.component.html',
|
||||
styleUrl: './match-result.component.scss'
|
||||
})
|
||||
export class MatchResultComponent {
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {Component, OnInit} from '@angular/core';
|
||||
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {MatCard, MatCardContent} from "@angular/material/card";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {Tournament} from "../../model/tournament";
|
||||
@@ -14,11 +14,9 @@ import {ReactiveFormsModule} from "@angular/forms";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-match-sheets',
|
||||
standalone: true,
|
||||
selector: 'app-match-sheets',
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
TeamPipe,
|
||||
NgForOf,
|
||||
@@ -26,12 +24,12 @@ import {TitleService} from "../../service/title.service";
|
||||
MatInput,
|
||||
ReactiveFormsModule
|
||||
],
|
||||
providers: [
|
||||
TeamPipe,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './match-sheets.component.html',
|
||||
styleUrl: './match-sheets.component.scss'
|
||||
providers: [
|
||||
TeamPipe,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './match-sheets.component.html',
|
||||
styleUrl: './match-sheets.component.scss'
|
||||
})
|
||||
export class MatchSheetsComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -2,23 +2,21 @@ import {Component, OnInit} from '@angular/core';
|
||||
import {Player, Strength} from "../../model/player";
|
||||
import {PlayerService} from "../../service/player.service";
|
||||
import {ActivatedRoute, Router, RouterLink} from "@angular/router";
|
||||
import {FormGroup, FormsModule, ReactiveFormsModule} from "@angular/forms";
|
||||
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
|
||||
import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field";
|
||||
import {MatInput} from "@angular/material/input";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatRadioButton, MatRadioGroup} from "@angular/material/radio";
|
||||
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from "@angular/material/datepicker";
|
||||
import {MatCard, MatCardActions, MatCardContent} from "@angular/material/card";
|
||||
import {MatOption, MatSelect} from "@angular/material/select";
|
||||
import {KeyValuePipe, NgForOf} from "@angular/common";
|
||||
import {MatAnchor, MatButton} from "@angular/material/button";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
import {MatSnackBar} from "@angular/material/snack-bar";
|
||||
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
|
||||
import {NgxMaskDirective} from "ngx-mask";
|
||||
|
||||
@Component({
|
||||
selector: 'app-player-edit',
|
||||
standalone: true,
|
||||
selector: 'app-player-edit',
|
||||
imports: [
|
||||
FormsModule,
|
||||
RouterLink,
|
||||
@@ -30,12 +28,8 @@ import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
|
||||
MatRadioGroup,
|
||||
MatRadioButton,
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
MatCardActions,
|
||||
MatDatepickerInput,
|
||||
MatDatepickerToggle,
|
||||
MatDatepicker,
|
||||
MatSelect,
|
||||
MatOption,
|
||||
KeyValuePipe,
|
||||
@@ -43,11 +37,10 @@ import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
|
||||
MatButton,
|
||||
MatAnchor,
|
||||
ReactiveFormsModule,
|
||||
NgxMaskDirective,
|
||||
NgxMaskPipe
|
||||
NgxMaskDirective
|
||||
],
|
||||
templateUrl: './player-edit.component.html',
|
||||
styleUrl: './player-edit.component.scss'
|
||||
templateUrl: './player-edit.component.html',
|
||||
styleUrl: './player-edit.component.scss'
|
||||
})
|
||||
export class PlayerEditComponent implements OnInit {
|
||||
player: Player;
|
||||
|
||||
@@ -3,14 +3,13 @@ import {MatAnchor} from "@angular/material/button";
|
||||
import {RouterLink} from "@angular/router";
|
||||
|
||||
@Component({
|
||||
selector: 'player-link',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatAnchor,
|
||||
RouterLink
|
||||
],
|
||||
templateUrl: './player-link.component.html',
|
||||
styleUrl: './player-link.component.scss'
|
||||
selector: 'player-link',
|
||||
imports: [
|
||||
MatAnchor,
|
||||
RouterLink
|
||||
],
|
||||
templateUrl: './player-link.component.html',
|
||||
styleUrl: './player-link.component.scss'
|
||||
})
|
||||
export class PlayerLinkComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';
|
||||
import {AfterViewInit, Component, ViewChild} from '@angular/core';
|
||||
import {Player} from "../../model/player";
|
||||
import {PlayerService} from "../../service/player.service";
|
||||
import {NgFor} from "@angular/common";
|
||||
import {RouterLink} from "@angular/router";
|
||||
import {MatAnchor} from "@angular/material/button";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {MatCard, MatCardContent} from "@angular/material/card";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
import {
|
||||
@@ -14,8 +13,12 @@ import {
|
||||
MatColumnDef,
|
||||
MatHeaderCell,
|
||||
MatHeaderCellDef,
|
||||
MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef,
|
||||
MatTable, MatTableDataSource
|
||||
MatHeaderRow,
|
||||
MatHeaderRowDef,
|
||||
MatRow,
|
||||
MatRowDef,
|
||||
MatTable,
|
||||
MatTableDataSource
|
||||
} from "@angular/material/table";
|
||||
import {MatFormField, MatFormFieldModule} from "@angular/material/form-field";
|
||||
import {MatInput} from "@angular/material/input";
|
||||
@@ -23,12 +26,11 @@ import {MatPaginator} from "@angular/material/paginator";
|
||||
import {MatSort, MatSortHeader} from "@angular/material/sort";
|
||||
|
||||
@Component({
|
||||
selector: 'app-player-list',
|
||||
standalone: true,
|
||||
imports: [NgFor, RouterLink, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, FullNamePipe, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatFormField, MatInput, MatFormFieldModule, MatPaginator, MatSortHeader, MatSort],
|
||||
providers: [FullNamePipe],
|
||||
templateUrl: './player-list.component.html',
|
||||
styleUrl: './player-list.component.scss'
|
||||
selector: 'app-player-list',
|
||||
imports: [RouterLink, MatAnchor, MatIcon, MatCard, MatCardContent, FullNamePipe, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatFormField, MatInput, MatFormFieldModule, MatPaginator, MatSortHeader, MatSort],
|
||||
providers: [FullNamePipe],
|
||||
templateUrl: './player-list.component.html',
|
||||
styleUrl: './player-list.component.scss'
|
||||
})
|
||||
export class PlayerListComponent implements AfterViewInit {
|
||||
|
||||
|
||||
@@ -4,30 +4,26 @@ import {ActivatedRoute, Router, RouterLink} from "@angular/router";
|
||||
import {PlayerService} from "../../service/player.service";
|
||||
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {MatFormField, MatLabel} from "@angular/material/form-field";
|
||||
import {MatInput} from "@angular/material/input";
|
||||
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
|
||||
import {RegistrationService} from "../../service/registration.service";
|
||||
import {KeyValuePipe, NgFor, NgIf} from "@angular/common";
|
||||
import {NgFor, NgIf} from "@angular/common";
|
||||
import {MatCheckbox, MatCheckboxChange} from "@angular/material/checkbox";
|
||||
import {EventRegistration, TournamentRegistration} from "../../model/tournamentRegistration";
|
||||
import {MatOption} from "@angular/material/core";
|
||||
import {MatSelect} from "@angular/material/select";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatAnchor, MatButton, MatFabButton} from "@angular/material/button";
|
||||
import {MatAnchor, MatButton} from "@angular/material/button";
|
||||
import {MatSnackBar} from "@angular/material/snack-bar";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
import {Tournament} from "../../model/tournament";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-player-registrations',
|
||||
standalone: true,
|
||||
selector: 'app-player-registrations',
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardContent,
|
||||
MatCardHeader,
|
||||
MatFormField,
|
||||
MatInput,
|
||||
MatLabel,
|
||||
NgFor,
|
||||
ReactiveFormsModule,
|
||||
@@ -36,20 +32,18 @@ import {TitleService} from "../../service/title.service";
|
||||
NgIf,
|
||||
MatCardActions,
|
||||
RouterLink,
|
||||
KeyValuePipe,
|
||||
MatOption,
|
||||
MatSelect,
|
||||
MatIcon,
|
||||
MatFabButton,
|
||||
MatButton,
|
||||
MatAnchor,
|
||||
FullNamePipe
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './player-registrations.component.html',
|
||||
styleUrl: './player-registrations.component.scss'
|
||||
providers: [
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './player-registrations.component.html',
|
||||
styleUrl: './player-registrations.component.scss'
|
||||
})
|
||||
export class PlayerRegistrationsComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -8,31 +8,22 @@ import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {DecimalPipe, NgForOf} from "@angular/common";
|
||||
import {TeamPipe} from "../../pipes/team-pipe";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
import {MatButton, MatIconButton} from "@angular/material/button";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatMenu, MatMenuItem} from "@angular/material/menu";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-round-overview',
|
||||
standalone: true,
|
||||
selector: 'app-round-overview',
|
||||
imports: [
|
||||
NgForOf,
|
||||
TeamPipe,
|
||||
DecimalPipe,
|
||||
MatButton,
|
||||
MatIcon,
|
||||
MatIconButton,
|
||||
MatMenu,
|
||||
MatMenuItem,
|
||||
FullNamePipe
|
||||
],
|
||||
providers: [
|
||||
TeamPipe,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './round-overview.component.html',
|
||||
styleUrl: './round-overview.component.scss'
|
||||
providers: [
|
||||
TeamPipe,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './round-overview.component.html',
|
||||
styleUrl: './round-overview.component.scss'
|
||||
})
|
||||
export class RoundOverviewComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -2,9 +2,8 @@ import {Component, OnInit} from '@angular/core';
|
||||
import {Tournament} from "../../model/tournament";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {TournamentDivision} from "../../model/tournamentDivision";
|
||||
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {KeyValuePipe, NgForOf, NgIf} from "@angular/common";
|
||||
import {NgForOf, NgIf} from "@angular/common";
|
||||
import {
|
||||
MatAccordion,
|
||||
MatExpansionPanel,
|
||||
@@ -12,13 +11,11 @@ import {
|
||||
MatExpansionPanelTitle
|
||||
} from "@angular/material/expansion";
|
||||
import {Event} from "../../model/event";
|
||||
import {Player, Strength} from "../../model/player";
|
||||
import {EventDivision} from "../../model/eventDivision";
|
||||
import {Strength} from "../../model/player";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-divide',
|
||||
standalone: true,
|
||||
selector: 'app-tournament-divide',
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
@@ -28,12 +25,11 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
MatExpansionPanelTitle,
|
||||
MatExpansionPanelHeader,
|
||||
NgForOf,
|
||||
KeyValuePipe,
|
||||
FullNamePipe,
|
||||
MatAccordion
|
||||
],
|
||||
templateUrl: './tournament-divide.component.html',
|
||||
styleUrl: './tournament-divide.component.scss'
|
||||
templateUrl: './tournament-divide.component.html',
|
||||
styleUrl: './tournament-divide.component.scss'
|
||||
})
|
||||
export class TournamentDivideComponent implements OnInit {
|
||||
tournament?: Tournament;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<mat-accordion multi="true">
|
||||
<mat-expansion-panel *ngFor="let group of this.event.groups">
|
||||
<mat-expansion-panel *ngFor="let group of event.groups">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
{{ group.name }} <span class="badge text-bg-success">{{ group.teams.length }}</span>
|
||||
|
||||
@@ -15,10 +15,8 @@ import {TeamPipe} from "../../pipes/team-pipe";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-draw',
|
||||
standalone: true,
|
||||
selector: 'app-tournament-draw',
|
||||
imports: [
|
||||
FullNamePipe,
|
||||
MatCard,
|
||||
NgIf,
|
||||
MatCardContent,
|
||||
@@ -30,12 +28,12 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
TeamPipe,
|
||||
MatAccordion
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe
|
||||
],
|
||||
templateUrl: './tournament-draw.component.html',
|
||||
styleUrl: './tournament-draw.component.scss'
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe
|
||||
],
|
||||
templateUrl: './tournament-draw.component.html',
|
||||
styleUrl: './tournament-draw.component.scss'
|
||||
})
|
||||
export class TournamentDrawComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -5,21 +5,20 @@ import {Tournament} from "../../model/tournament";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {MatAnchor, MatButton} from "@angular/material/button";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {MatCard, MatCardActions, MatCardContent} from "@angular/material/card";
|
||||
import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field";
|
||||
import {MatInput} from "@angular/material/input";
|
||||
import {MatRadioButton, MatRadioGroup} from "@angular/material/radio";
|
||||
import {CurrencyPipe, NgForOf, registerLocaleData} from "@angular/common";
|
||||
import {CurrencyPipe, registerLocaleData} from "@angular/common";
|
||||
import nl from "@angular/common/locales/nl";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
|
||||
import {NgxMaskDirective} from "ngx-mask";
|
||||
import {MatSnackBar} from "@angular/material/snack-bar";
|
||||
|
||||
registerLocaleData(nl);
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-edit',
|
||||
standalone: true,
|
||||
selector: 'app-tournament-edit',
|
||||
imports: [
|
||||
FormsModule,
|
||||
RouterLink,
|
||||
@@ -27,7 +26,6 @@ registerLocaleData(nl);
|
||||
MatButton,
|
||||
MatIcon,
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
MatFormField,
|
||||
MatInput,
|
||||
@@ -35,17 +33,14 @@ registerLocaleData(nl);
|
||||
MatCardActions,
|
||||
MatRadioButton,
|
||||
MatRadioGroup,
|
||||
NgForOf,
|
||||
CurrencyPipe,
|
||||
MatHint,
|
||||
NgxMaskDirective,
|
||||
NgxMaskPipe
|
||||
NgxMaskDirective
|
||||
],
|
||||
providers: [
|
||||
CurrencyPipe
|
||||
],
|
||||
templateUrl: './tournament-edit.component.html',
|
||||
styleUrl: './tournament-edit.component.scss'
|
||||
providers: [
|
||||
CurrencyPipe
|
||||
],
|
||||
templateUrl: './tournament-edit.component.html',
|
||||
styleUrl: './tournament-edit.component.scss'
|
||||
})
|
||||
export class TournamentEditComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -1,31 +1,21 @@
|
||||
import {AfterContentChecked, AfterContentInit, Component, EventEmitter, OnInit, Output} from '@angular/core';
|
||||
import {AfterContentChecked, Component, OnInit} from '@angular/core';
|
||||
import {NgFor, NgIf} from "@angular/common";
|
||||
import {RouterLink} from "@angular/router";
|
||||
import {Tournament} from "../../model/tournament";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {MatAnchor, MatButton, MatIconButton} from "@angular/material/button";
|
||||
import {MatAnchor, MatButton} from "@angular/material/button";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {
|
||||
MatCell,
|
||||
MatCellDef,
|
||||
MatColumnDef,
|
||||
MatHeaderCell,
|
||||
MatHeaderCellDef,
|
||||
MatHeaderRow, MatRow,
|
||||
MatTable, MatTableModule
|
||||
} from "@angular/material/table";
|
||||
import {MatMenuTrigger} from "@angular/material/menu";
|
||||
import {MatCard, MatCardContent} from "@angular/material/card";
|
||||
import {MatTableModule} from "@angular/material/table";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-list',
|
||||
standalone: true,
|
||||
selector: 'app-tournament-list',
|
||||
imports: [
|
||||
NgFor, RouterLink, NgIf, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, MatButton, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatRow, MatTableModule, MatIconButton, MatMenuTrigger
|
||||
NgFor, RouterLink, NgIf, MatAnchor, MatIcon, MatCard, MatCardContent, MatButton, MatTableModule
|
||||
],
|
||||
templateUrl: './tournament-list.component.html',
|
||||
styleUrl: './tournament-list.component.scss'
|
||||
templateUrl: './tournament-list.component.html',
|
||||
styleUrl: './tournament-list.component.scss'
|
||||
})
|
||||
export class TournamentListComponent implements OnInit, AfterContentChecked {
|
||||
|
||||
|
||||
@@ -34,45 +34,44 @@ import {Title} from '@angular/platform-browser';
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-manage',
|
||||
standalone: true,
|
||||
imports: [
|
||||
FullNamePipe,
|
||||
MatAccordion,
|
||||
MatCard,
|
||||
MatCardContent,
|
||||
MatCardHeader,
|
||||
MatExpansionPanel,
|
||||
MatExpansionPanelHeader,
|
||||
MatExpansionPanelTitle,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
TeamPipe,
|
||||
MatIcon,
|
||||
NgClass,
|
||||
MatMenu,
|
||||
MatMenuItem,
|
||||
MatMenuTrigger,
|
||||
FormsModule,
|
||||
DatePipe,
|
||||
MatTabGroup,
|
||||
MatTab,
|
||||
MatTabLabel,
|
||||
MatButton,
|
||||
MatIconButton,
|
||||
DecimalPipe,
|
||||
TournamentValidateComponent,
|
||||
MatSlideToggle,
|
||||
CurrencyPipe,
|
||||
MatMenuContent
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe,
|
||||
MatchResultPipe
|
||||
],
|
||||
templateUrl: './tournament-manage.component.html',
|
||||
styleUrl: './tournament-manage.component.scss'
|
||||
selector: 'app-tournament-manage',
|
||||
imports: [
|
||||
FullNamePipe,
|
||||
MatAccordion,
|
||||
MatCard,
|
||||
MatCardContent,
|
||||
MatCardHeader,
|
||||
MatExpansionPanel,
|
||||
MatExpansionPanelHeader,
|
||||
MatExpansionPanelTitle,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
TeamPipe,
|
||||
MatIcon,
|
||||
NgClass,
|
||||
MatMenu,
|
||||
MatMenuItem,
|
||||
MatMenuTrigger,
|
||||
FormsModule,
|
||||
DatePipe,
|
||||
MatTabGroup,
|
||||
MatTab,
|
||||
MatTabLabel,
|
||||
MatButton,
|
||||
MatIconButton,
|
||||
DecimalPipe,
|
||||
TournamentValidateComponent,
|
||||
MatSlideToggle,
|
||||
CurrencyPipe,
|
||||
MatMenuContent
|
||||
],
|
||||
providers: [
|
||||
FullNamePipe,
|
||||
TeamPipe,
|
||||
MatchResultPipe
|
||||
],
|
||||
templateUrl: './tournament-manage.component.html',
|
||||
styleUrl: './tournament-manage.component.scss'
|
||||
})
|
||||
export class TournamentManageComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -4,24 +4,22 @@ import {Tournament} from "../../model/tournament";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {NgForOf, NgIf} from "@angular/common";
|
||||
import {Player} from "../../model/player";
|
||||
import {Event} from "../../model/event";
|
||||
import {FullNamePipe} from "../../pipes/fullname-pipe";
|
||||
import {TitleService} from "../../service/title.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-registrations',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './tournament-registrations.component.html',
|
||||
styleUrl: './tournament-registrations.component.scss'
|
||||
selector: 'app-tournament-registrations',
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
FullNamePipe
|
||||
],
|
||||
templateUrl: './tournament-registrations.component.html',
|
||||
styleUrl: './tournament-registrations.component.scss'
|
||||
})
|
||||
export class TournamentRegistrationsComponent implements OnInit {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {Component, OnInit} from '@angular/core';
|
||||
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
|
||||
import {Tournament} from "../../model/tournament";
|
||||
import {AsyncPipe, NgForOf, NgIf} from "@angular/common";
|
||||
import {NgForOf, NgIf} from "@angular/common";
|
||||
import {Event} from "../../model/event";
|
||||
import {TournamentService} from "../../service/tournament.service";
|
||||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
@@ -19,25 +19,23 @@ import {PlayerService} from "../../service/player.service";
|
||||
import {PlayerLinkComponent} from "../player-link/player-link.component";
|
||||
|
||||
@Component({
|
||||
selector: 'app-tournament-validate',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
NgForOf,
|
||||
MatExpansionPanel,
|
||||
MatExpansionPanelTitle,
|
||||
MatExpansionPanelHeader,
|
||||
NgIf,
|
||||
MatAccordion,
|
||||
AsyncPipe,
|
||||
MatIcon,
|
||||
FullNamePipe,
|
||||
PlayerLinkComponent
|
||||
],
|
||||
templateUrl: './tournament-validate.component.html',
|
||||
styleUrl: './tournament-validate.component.scss'
|
||||
selector: 'app-tournament-validate',
|
||||
imports: [
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardContent,
|
||||
NgForOf,
|
||||
MatExpansionPanel,
|
||||
MatExpansionPanelTitle,
|
||||
MatExpansionPanelHeader,
|
||||
NgIf,
|
||||
MatAccordion,
|
||||
MatIcon,
|
||||
FullNamePipe,
|
||||
PlayerLinkComponent
|
||||
],
|
||||
templateUrl: './tournament-validate.component.html',
|
||||
styleUrl: './tournament-validate.component.scss'
|
||||
})
|
||||
export class TournamentValidateComponent implements OnInit {
|
||||
tournament: Tournament;
|
||||
|
||||
Reference in New Issue
Block a user