From b753cc0c6836857686c830494d3539e95bcf31a6 Mon Sep 17 00:00:00 2001 From: Tomasi - Developing Date: Thu, 24 Apr 2025 09:13:32 +0200 Subject: [PATCH] v. 0.9.1 --- Application/Profiles/CustomEventProfile.cs | 1 + README.md | 9 ++++++ Ui/package-lock.json | 14 +++++++++ Ui/package.json | 1 + .../forgot-password.component.html | 4 +-- .../Authentication/login/login.component.html | 8 ++--- .../register/register.component.html | 16 +++++----- .../reset-password.component.html | 8 ++--- .../sign-up/sign-up.component.html | 28 ++++++++--------- Ui/src/app/app.module.ts | 6 +++- ...om-event-participants-model.component.html | 5 +--- ...stom-event-participants-model.component.ts | 2 +- .../invite-user-modal.component.html | 8 ++--- .../player-admonition-modal.component.html | 4 +-- .../player-edit-modal.component.html | 12 ++++---- .../player-note-modal.component.html | 4 +-- .../user-edit-modal.component.html | 12 ++++---- .../vs-duel-create-modal.component.html | 22 +++++++------- .../app/pages/account/account.component.html | 4 +-- .../pages/alliance/alliance.component.html | 12 ++++---- .../change-password.component.html | 12 ++++---- .../custom-event-detail.component.html | 3 ++ .../custom-event-events.component.ts | 6 +++- .../desert-storm/desert-storm.component.html | 12 ++++---- .../pages/feedback/feedback.component.html | 30 +++++++++---------- .../marshal-guard.component.html | 8 ++--- .../vs-duel-edit/vs-duel-edit.component.html | 24 +++++++-------- .../vs-duel-edit/vs-duel-edit.component.ts | 2 +- .../zombie-siege/zombie-siege.component.html | 8 ++--- 29 files changed, 159 insertions(+), 126 deletions(-) diff --git a/Application/Profiles/CustomEventProfile.cs b/Application/Profiles/CustomEventProfile.cs index 029e099..2b46a6c 100644 --- a/Application/Profiles/CustomEventProfile.cs +++ b/Application/Profiles/CustomEventProfile.cs @@ -12,6 +12,7 @@ public class CustomEventProfile : Profile .ForMember(des => des.CategoryName, opt => opt.MapFrom(src => src.CustomEventCategory!.Name)); CreateMap() + .ForMember(des => des.CategoryName, opt => opt.MapFrom(src => src.CustomEventCategory!.Name)) .ForMember(des => des.CustomEventParticipants, opt => opt.MapFrom(src => src.CustomEventParticipants)); CreateMap() diff --git a/README.md b/README.md index 5c44f1b..152c209 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,15 @@ This project is currently in the **Beta Phase**. --- +### **[0.9.1]** - *2025-04-24* +#### ✨ Added +- **Number Formatting Input Mask:** Numbers are now automatically formatted for better readability (e.g., `250000` → `250.000`). + +🛠️ **Fixed** +- Fixed an issue where the selected category was not saved correctly when updating a custom event. + +--- + ### **[0.9.0]** - *2025-04-23* #### ✨ Added - **Event Categories:** Custom events can now be assigned to specific categories. diff --git a/Ui/package-lock.json b/Ui/package-lock.json index b12ec95..e836d9d 100644 --- a/Ui/package-lock.json +++ b/Ui/package-lock.json @@ -26,6 +26,7 @@ "bootswatch": "^5.3.3", "jest-editor-support": "*", "moment": "^2.30.1", + "ngx-mask": "^19.0.6", "ngx-pagination": "^6.0.3", "ngx-spinner": "^17.0.0", "ngx-toastr": "^19.0.0", @@ -10840,6 +10841,19 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/ngx-mask": { + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/ngx-mask/-/ngx-mask-19.0.6.tgz", + "integrity": "sha512-lJa3+gIg0XMwjRv71pqW7uYrzFPZXl7VUbdbafJ9uo7QydfHIhUe8ByPgWt5VxvSC2mp5ndE3O7jWMOtv7Kthw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=14.0.0", + "@angular/core": ">=14.0.0", + "@angular/forms": ">=14.0.0" + } + }, "node_modules/ngx-pagination": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/ngx-pagination/-/ngx-pagination-6.0.3.tgz", diff --git a/Ui/package.json b/Ui/package.json index c805270..72a71ed 100644 --- a/Ui/package.json +++ b/Ui/package.json @@ -28,6 +28,7 @@ "bootswatch": "^5.3.3", "jest-editor-support": "*", "moment": "^2.30.1", + "ngx-mask": "^19.0.6", "ngx-pagination": "^6.0.3", "ngx-spinner": "^17.0.0", "ngx-toastr": "^19.0.0", diff --git a/Ui/src/app/Authentication/forgot-password/forgot-password.component.html b/Ui/src/app/Authentication/forgot-password/forgot-password.component.html index 10d69c8..0cdcf42 100644 --- a/Ui/src/app/Authentication/forgot-password/forgot-password.component.html +++ b/Ui/src/app/Authentication/forgot-password/forgot-password.component.html @@ -9,11 +9,11 @@
- @if (f['email'].invalid && (f['email'].dirty || f['email'].touched)) { + @if (f['email'].invalid && (f['email'].dirty || !f['email'].untouched)) {
@if (f['email'].hasError('required')) {

Email is required

diff --git a/Ui/src/app/Authentication/login/login.component.html b/Ui/src/app/Authentication/login/login.component.html index 6409e0a..c1d1974 100644 --- a/Ui/src/app/Authentication/login/login.component.html +++ b/Ui/src/app/Authentication/login/login.component.html @@ -12,10 +12,10 @@ - - @if (email?.errors && (email?.dirty || email?.touched)) { + @if (email?.errors && (email?.dirty || !email?.untouched)) {
@if (email?.hasError('required')) {

Email address is required

@@ -36,7 +36,7 @@ @@ -44,7 +44,7 @@ [ngClass]="isPasswordType ? 'bi bi-eye-fill' : 'bi-eye-slash-fill'" class="input-group-text eye-icon bi"> - @if (password?.errors && (password?.dirty || password?.touched)) { + @if (password?.errors && (password?.dirty || !password?.untouched)) {
@if (password?.hasError('required')) {

Password is required

diff --git a/Ui/src/app/Authentication/register/register.component.html b/Ui/src/app/Authentication/register/register.component.html index e2bf256..748e8cb 100644 --- a/Ui/src/app/Authentication/register/register.component.html +++ b/Ui/src/app/Authentication/register/register.component.html @@ -42,11 +42,11 @@
- @if (f['playerName'].invalid && (f['playerName'].dirty || f['playerName'].touched)) { + @if (f['playerName'].invalid && (f['playerName'].dirty || !f['playerName'].untouched)) {
@if (f['playerName'].hasError('required')) {

Player name is required

@@ -57,11 +57,11 @@
- @if (f['email'].invalid && (f['email'].dirty || f['email'].touched)) { + @if (f['email'].invalid && (f['email'].dirty || !f['email'].untouched)) {
@if (f['email'].hasError('required')) {

Email is required

@@ -77,7 +77,7 @@
@@ -91,7 +91,7 @@ class="input-group-text eye-icon bi"> -

Password is required

@@ -126,7 +126,7 @@
- @@ -134,7 +134,7 @@
-

Confirmation is required

- -
+

Password is required

@@ -84,12 +84,12 @@
- -
+

Repeat password is required

Passwords do not match

diff --git a/Ui/src/app/Authentication/sign-up/sign-up.component.html b/Ui/src/app/Authentication/sign-up/sign-up.component.html index 9f22875..6e88ae8 100644 --- a/Ui/src/app/Authentication/sign-up/sign-up.component.html +++ b/Ui/src/app/Authentication/sign-up/sign-up.component.html @@ -4,11 +4,11 @@
- @if (f['playerName'].invalid && (f['playerName'].dirty || f['playerName'].touched)) { + @if (f['playerName'].invalid && (f['playerName'].dirty || !f['playerName'].untouched)) {
@if (f['playerName'].hasError('required')) {

Player name is required

@@ -19,11 +19,11 @@
- @if (f['email'].invalid && (f['email'].dirty || f['email'].touched)) { + @if (f['email'].invalid && (f['email'].dirty || !f['email'].untouched)) {
@if (f['email'].hasError('required')) {

Email is required

@@ -37,11 +37,11 @@
- @if (f['allianceServer'].invalid && (f['allianceServer'].dirty || f['allianceServer'].touched)) { + @if (f['allianceServer'].invalid && (f['allianceServer'].dirty || !f['allianceServer'].untouched)) {
@if (f['allianceServer'].hasError('required')) {

Server is required

@@ -52,11 +52,11 @@
- @if (f['allianceName'].invalid && (f['allianceName'].dirty || f['allianceName'].touched)) { + @if (f['allianceName'].invalid && (f['allianceName'].dirty || !f['allianceName'].untouched)) {
@if (f['allianceName'].hasError('required')) {

Alliance name is required

@@ -67,11 +67,11 @@
- @if (f['allianceAbbreviation'].invalid && (f['allianceAbbreviation'].dirty || f['allianceAbbreviation'].touched)) { + @if (f['allianceAbbreviation'].invalid && (f['allianceAbbreviation'].dirty || !f['allianceAbbreviation'].untouched)) {
@if (f['allianceAbbreviation'].hasError('required')) {

Alliance abbreviation is required

@@ -84,7 +84,7 @@
@@ -98,7 +98,7 @@ class="input-group-text eye-icon bi"> -

Required

@@ -133,7 +133,7 @@
- @@ -141,7 +141,7 @@
-

Confirmation password is required

localStorage.getItem(''), } }), - AgCharts + AgCharts, + NgxMaskDirective, + NgxMaskPipe ], providers: [ + provideNgxMask(), provideHttpClient(withInterceptors([spinnerInterceptor, jwtInterceptor])) ], bootstrap: [AppComponent] diff --git a/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.html b/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.html index 77df1d4..3f0dbfe 100644 --- a/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.html +++ b/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.html @@ -24,15 +24,12 @@ + }" type="text" mask="separator.2" thousandSeparator="." separatorLimit="9999999999999999" class="form-control form-control-sm" id="point{{i}}" formControlName="achievedPoints"> @if (participant.get('achievedPoints')?.invalid && (participant.get('achievedPoints')?.touched || participant.get('achievedPoints')?.dirty)) {

@if (participant.get('achievedPoints')?.hasError('required')){

points is required

} - @if (participant.get('achievedPoints')?.hasError('pattern')){ -

points must not be less than 0

- }
}
diff --git a/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.ts b/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.ts index f23d42e..aaf2f49 100644 --- a/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.ts +++ b/Ui/src/app/modals/custom-event-participants-model/custom-event-participants-model.component.ts @@ -63,7 +63,7 @@ export class CustomEventParticipantsModelComponent implements OnInit { playerId: new FormControl(player.playerId), playerName: new FormControl(player.playerName), participated: new FormControl(player.participated), - achievedPoints: new FormControl(player.achievedPoints, [Validators.required, Validators.pattern('(0|[1-9]\\d*)')]) + achievedPoints: new FormControl(player.achievedPoints, [Validators.required]) })) }); } diff --git a/Ui/src/app/modals/invite-user-modal/invite-user-modal.component.html b/Ui/src/app/modals/invite-user-modal/invite-user-modal.component.html index 5cdafd4..130f643 100644 --- a/Ui/src/app/modals/invite-user-modal/invite-user-modal.component.html +++ b/Ui/src/app/modals/invite-user-modal/invite-user-modal.component.html @@ -8,11 +8,11 @@
- @if (f['email'].invalid && (f['email'].dirty || f['email'].touched)) { + @if (f['email'].invalid && (f['email'].dirty || !f['email'].untouched)) {
@if (f['email'].hasError('required')) {

Email is required

@@ -25,14 +25,14 @@
- @if (f['role'].invalid && (f['role'].dirty || f['role'].touched)) { + @if (f['role'].invalid && (f['role'].dirty || !f['role'].untouched)) {
@if (f['role'].hasError('required')) {

Role is required

diff --git a/Ui/src/app/modals/player-admonition-modal/player-admonition-modal.component.html b/Ui/src/app/modals/player-admonition-modal/player-admonition-modal.component.html index 0bc73b1..5d1bc14 100644 --- a/Ui/src/app/modals/player-admonition-modal/player-admonition-modal.component.html +++ b/Ui/src/app/modals/player-admonition-modal/player-admonition-modal.component.html @@ -53,10 +53,10 @@
- @if (admonitionForm.controls['reason'].invalid && (admonitionForm.controls['reason'].touched || admonitionForm.controls['reason'].dirty)) { + @if (admonitionForm.controls['reason'].invalid && (!admonitionForm.controls['reason'].untouched || admonitionForm.controls['reason'].dirty)) {
@if (admonitionForm.controls['reason'].hasError('required')) {

Reason is required

diff --git a/Ui/src/app/modals/player-edit-modal/player-edit-modal.component.html b/Ui/src/app/modals/player-edit-modal/player-edit-modal.component.html index 233ba50..1233a2c 100644 --- a/Ui/src/app/modals/player-edit-modal/player-edit-modal.component.html +++ b/Ui/src/app/modals/player-edit-modal/player-edit-modal.component.html @@ -8,11 +8,11 @@
- @if (f['playerName'].invalid && (f['playerName'].dirty || f['playerName'].touched)) { + @if (f['playerName'].invalid && (f['playerName'].dirty || !f['playerName'].untouched)) {
@if (f['playerName'].hasError('required')) {

Player name is required

@@ -25,11 +25,11 @@
- @if (f['level'].invalid && (f['level'].dirty || f['level'].touched)) { + @if (f['level'].invalid && (f['level'].dirty || !f['level'].untouched)) {
@if (f['level'].hasError('required')) {

Level is required

@@ -39,14 +39,14 @@
- @if (f['rankId'].invalid && (f['rankId'].dirty || f['rankId'].touched)) { + @if (f['rankId'].invalid && (f['rankId'].dirty || !f['rankId'].untouched)) {
@if (f['rankId'].hasError('required')) {

Rank is required

diff --git a/Ui/src/app/modals/player-note-modal/player-note-modal.component.html b/Ui/src/app/modals/player-note-modal/player-note-modal.component.html index 04353b9..246badd 100644 --- a/Ui/src/app/modals/player-note-modal/player-note-modal.component.html +++ b/Ui/src/app/modals/player-note-modal/player-note-modal.component.html @@ -53,10 +53,10 @@
- @if (noteForm.controls['playerNote'].invalid && (noteForm.controls['playerNote'].touched || noteForm.controls['playerNote'].dirty)) { + @if (noteForm.controls['playerNote'].invalid && (!noteForm.controls['playerNote'].untouched || noteForm.controls['playerNote'].dirty)) {
@if (noteForm.controls['playerNote'].hasError('required')) {

Note is required

diff --git a/Ui/src/app/modals/user-edit-modal/user-edit-modal.component.html b/Ui/src/app/modals/user-edit-modal/user-edit-modal.component.html index 400ee7f..9e72495 100644 --- a/Ui/src/app/modals/user-edit-modal/user-edit-modal.component.html +++ b/Ui/src/app/modals/user-edit-modal/user-edit-modal.component.html @@ -8,11 +8,11 @@
- @if (f['playerName'].invalid && (f['playerName'].dirty || f['playerName'].touched)) { + @if (f['playerName'].invalid && (f['playerName'].dirty || !f['playerName'].untouched)) {
@if (f['playerName'].hasError('required')) {

Player name is required

@@ -25,11 +25,11 @@
- @if (f['email'].invalid && (f['email'].dirty || f['email'].touched)) { + @if (f['email'].invalid && (f['email'].dirty || !f['email'].untouched)) {
@if (f['email'].hasError('required')) {

Email is required

@@ -42,14 +42,14 @@
- @if (f['role'].invalid && (f['role'].dirty || f['role'].touched)) { + @if (f['role'].invalid && (f['role'].dirty || !f['role'].untouched)) {
@if (f['role'].hasError('required')) {

Role is required

diff --git a/Ui/src/app/modals/vs-duel-create-modal/vs-duel-create-modal.component.html b/Ui/src/app/modals/vs-duel-create-modal/vs-duel-create-modal.component.html index 2e06908..46d70b9 100644 --- a/Ui/src/app/modals/vs-duel-create-modal/vs-duel-create-modal.component.html +++ b/Ui/src/app/modals/vs-duel-create-modal/vs-duel-create-modal.component.html @@ -12,11 +12,11 @@
- @if (f['opponentName'].invalid && (f['opponentName'].dirty || f['opponentName'].touched)) { + @if (f['opponentName'].invalid && (f['opponentName'].dirty || !f['opponentName'].untouched)) {
@if (f['opponentName'].hasError('required')) {

Opponent name is required

@@ -26,11 +26,11 @@
- @if (f['opponentServer'].invalid && (f['opponentServer'].dirty || f['opponentServer'].touched)) { + @if (f['opponentServer'].invalid && (f['opponentServer'].dirty || !f['opponentServer'].untouched)) {
@if (f['opponentServer'].hasError('required')) {

opponentServer is required

@@ -40,11 +40,11 @@
+ type="text" mask="separator.2" thousandSeparator="." separatorLimit="9999999999999999" class="form-control" id="opponentPower" placeholder="opponentPower" formControlName="opponentPower"> - @if (f['opponentPower'].invalid && (f['opponentPower'].dirty || f['opponentPower'].touched)) { + @if (f['opponentPower'].invalid && (f['opponentPower'].dirty || !f['opponentPower'].untouched)) {
@if (f['opponentPower'].hasError('required')) {

opponentPower is required

@@ -54,11 +54,11 @@
- @if (f['opponentSize'].invalid && (f['opponentSize'].dirty || f['opponentSize'].touched)) { + @if (f['opponentSize'].invalid && (f['opponentSize'].dirty || !f['opponentSize'].untouched)) {
@if (f['opponentSize'].hasError('required')) {

opponentSize is required

@@ -68,14 +68,14 @@
- @if (f['vsDuelLeagueId'].invalid && (f['vsDuelLeagueId'].dirty || f['vsDuelLeagueId'].touched)) { + @if (f['vsDuelLeagueId'].invalid && (f['vsDuelLeagueId'].dirty || !f['vsDuelLeagueId'].untouched)) {
@if (f['vsDuelLeagueId'].hasError('required')) {

Vs Duel League is required

diff --git a/Ui/src/app/pages/account/account.component.html b/Ui/src/app/pages/account/account.component.html index da09604..a293892 100644 --- a/Ui/src/app/pages/account/account.component.html +++ b/Ui/src/app/pages/account/account.component.html @@ -5,11 +5,11 @@
- @if (f['playerName'].invalid && (f['playerName'].dirty || f['playerName'].touched)) { + @if (f['playerName'].invalid && (f['playerName'].dirty || !f['playerName'].untouched)) {
@if (f['playerName'].hasError('required')) {

Player name is required

diff --git a/Ui/src/app/pages/alliance/alliance.component.html b/Ui/src/app/pages/alliance/alliance.component.html index 5408f48..ac3e07a 100644 --- a/Ui/src/app/pages/alliance/alliance.component.html +++ b/Ui/src/app/pages/alliance/alliance.component.html @@ -20,10 +20,10 @@
- @if (f['server'].invalid && (f['server'].touched || f['server'].dirty)) { + @if (f['server'].invalid && (!f['server'].untouched || f['server'].dirty)) {
@if (f['server'].hasError('required')) {

Server is required

@@ -35,10 +35,10 @@
- @if (f['name'].invalid && (f['name'].touched || f['name'].dirty)) { + @if (f['name'].invalid && (!f['name'].untouched || f['name'].dirty)) {
@if (f['name'].hasError('required')) {

Name is required

@@ -53,11 +53,11 @@
- @if (f['abbreviation'].invalid && (f['abbreviation'].touched || f['abbreviation'].dirty)) { + @if (f['abbreviation'].invalid && (!f['abbreviation'].untouched || f['abbreviation'].dirty)) {
@if (f['abbreviation'].hasError('required')) {

Abbreviation is required

diff --git a/Ui/src/app/pages/change-password/change-password.component.html b/Ui/src/app/pages/change-password/change-password.component.html index 0217750..43b2800 100644 --- a/Ui/src/app/pages/change-password/change-password.component.html +++ b/Ui/src/app/pages/change-password/change-password.component.html @@ -8,7 +8,7 @@
@@ -21,7 +21,7 @@ class="input-group-text eye-icon bi"> - @if (f['currentPassword'].invalid && (f['currentPassword'].dirty || f['currentPassword'].touched )) { + @if (f['currentPassword'].invalid && (f['currentPassword'].dirty || !f['currentPassword'].untouched )) {
@if (f['currentPassword'].hasError('required')) {

Password is required

@@ -34,7 +34,7 @@
- @if (f['newPassword'].invalid && (f['newPassword'].dirty || f['newPassword'].touched )) { + @if (f['newPassword'].invalid && (f['newPassword'].dirty || !f['newPassword'].untouched )) {
@if (f['newPassword'].hasError('required')) {

Password is required

@@ -92,7 +92,7 @@
- @if (f['confirmPassword'].invalid && (f['confirmPassword'].dirty || f['confirmPassword'].touched )) { + @if (f['confirmPassword'].invalid && (f['confirmPassword'].dirty || !f['confirmPassword'].untouched )) {
@if (f['confirmPassword'].hasError('required')) {

Repeat password is required

diff --git a/Ui/src/app/pages/custom-event/custom-event-detail/custom-event-detail.component.html b/Ui/src/app/pages/custom-event/custom-event-detail/custom-event-detail.component.html index d763431..b1d5ad1 100644 --- a/Ui/src/app/pages/custom-event/custom-event-detail/custom-event-detail.component.html +++ b/Ui/src/app/pages/custom-event/custom-event-detail/custom-event-detail.component.html @@ -12,6 +12,9 @@
Name: {{customEventDetail.name}}

Description: {{customEventDetail.description}}

+ @if (customEventDetail.customEventCategoryId) { +

Category: {{customEventDetail.categoryName}}

+ }

Point event:

diff --git a/Ui/src/app/pages/custom-event/custom-event-events/custom-event-events.component.ts b/Ui/src/app/pages/custom-event/custom-event-events/custom-event-events.component.ts index dfe3fd6..359484b 100644 --- a/Ui/src/app/pages/custom-event/custom-event-events/custom-event-events.component.ts +++ b/Ui/src/app/pages/custom-event/custom-event-events/custom-event-events.component.ts @@ -101,7 +101,7 @@ export class CustomEventEventsComponent implements OnInit { this.customEventForm = new FormGroup({ id: new FormControl(isUpdate ? customEventDetail!.id : ''), allianceId: new FormControl(this.allianceId), - customEventCategoryId: new FormControl(null), + customEventCategoryId: new FormControl(isUpdate ? customEventDetail?.customEventCategoryId ? customEventDetail.customEventCategoryId : null : null), name: new FormControl(isUpdate ? customEventDetail!.name : '', [Validators.required, Validators.maxLength(150)]), description: new FormControl(isUpdate ? customEventDetail!.description : '', [Validators.required, Validators.maxLength(500)]), isPointsEvent: new FormControl(isUpdate ? customEventDetail!.isPointsEvent : false), @@ -112,6 +112,10 @@ export class CustomEventEventsComponent implements OnInit { this.isCreateCustomEvent = true; if (isUpdate) { this.customEventForm.controls['customEventCategoryId'].disable(); + if (customEventDetail?.customEventCategoryId) { + this.customEventForm.controls['isPointsEvent'].disable(); + this.customEventForm.controls['isParticipationEvent'].disable(); + } } } diff --git a/Ui/src/app/pages/desert-storm/desert-storm.component.html b/Ui/src/app/pages/desert-storm/desert-storm.component.html index 55806c8..e6552fa 100644 --- a/Ui/src/app/pages/desert-storm/desert-storm.component.html +++ b/Ui/src/app/pages/desert-storm/desert-storm.component.html @@ -30,11 +30,11 @@
- @if (f['opponentName'].invalid && (f['opponentName'].dirty || f['opponentName'].touched)) { + @if (f['opponentName'].invalid && (f['opponentName'].dirty || !f['opponentName'].untouched)) {
@if (f['opponentName'].hasError('required')) {

Opponent name is required

@@ -45,11 +45,11 @@
- @if (f['opponentServer'].invalid && (f['opponentServer'].dirty || f['opponentServer'].touched)) { + @if (f['opponentServer'].invalid && (f['opponentServer'].dirty || !f['opponentServer'].untouched)) {
@if (f['opponentServer'].hasError('required')) {

opponentServer is required

@@ -60,11 +60,11 @@
- @if (f['OpposingParticipants'].invalid && (f['OpposingParticipants'].dirty || f['OpposingParticipants'].touched)) { + @if (f['OpposingParticipants'].invalid && (f['OpposingParticipants'].dirty || !f['OpposingParticipants'].untouched)) {
@if (f['opponentPower'].hasError('required')) {

OpposingParticipants is required

diff --git a/Ui/src/app/pages/feedback/feedback.component.html b/Ui/src/app/pages/feedback/feedback.component.html index 798df48..e5646fe 100644 --- a/Ui/src/app/pages/feedback/feedback.component.html +++ b/Ui/src/app/pages/feedback/feedback.component.html @@ -7,7 +7,7 @@
- @if (f['title'].invalid && (f['title'].touched || f['title'].dirty)) { + @if (f['title'].invalid && (!f['title'].untouched || f['title'].dirty)) {
@if (f['title'].hasError('required')) {

Title is required

@@ -33,10 +33,10 @@
- @if (f['description'].invalid && (f['description'].touched || f['description'].dirty)) { + @if (f['description'].invalid && (!f['description'].untouched || f['description'].dirty)) {
@if (f['description'].hasError('required')) {

Description is required

@@ -54,10 +54,10 @@
- @if (f['expectedBehavior'].invalid && (f['expectedBehavior'].touched || f['expectedBehavior'].dirty)) { + @if (f['expectedBehavior'].invalid && (!f['expectedBehavior'].untouched || f['expectedBehavior'].dirty)) {
@if (f['expectedBehavior'].hasError('required')) {

ExpectedBehavior is required

@@ -69,10 +69,10 @@
- @if (f['actualBehavior'].invalid && (f['actualBehavior'].touched || f['actualBehavior'].dirty)) { + @if (f['actualBehavior'].invalid && (!f['actualBehavior'].untouched || f['actualBehavior'].dirty)) {
@if (f['actualBehavior'].hasError('required')) {

ActualBehavior is required

@@ -84,10 +84,10 @@
- @if (f['reproduction'].invalid && (f['reproduction'].touched || f['reproduction'].dirty)) { + @if (f['reproduction'].invalid && (!f['reproduction'].untouched || f['reproduction'].dirty)) {
@if (f['reproduction'].hasError('required')) {

Reproduction is required

@@ -99,7 +99,7 @@
@@ -120,7 +120,7 @@ - @if (f['os'].invalid && (f['os'].touched || f['os'].dirty)) { + @if (f['os'].invalid && (!f['os'].untouched || f['os'].dirty)) {
@if (f['os'].hasError('required')) {

Operating System is required

@@ -132,7 +132,7 @@
diff --git a/Ui/src/app/pages/marshal-guard/marshal-guard.component.html b/Ui/src/app/pages/marshal-guard/marshal-guard.component.html index 316cd3d..bdc198d 100644 --- a/Ui/src/app/pages/marshal-guard/marshal-guard.component.html +++ b/Ui/src/app/pages/marshal-guard/marshal-guard.component.html @@ -11,11 +11,11 @@
- @if (f['eventDate'].invalid && (f['eventDate'].dirty || f['eventDate'].touched)) { + @if (f['eventDate'].invalid && (f['eventDate'].dirty || !f['eventDate'].untouched)) {
@if (f['eventDate'].hasError('required')) {

eventDate is required

@@ -25,11 +25,11 @@
- @if (f['level'].invalid && (f['level'].dirty || f['level'].touched)) { + @if (f['level'].invalid && (f['level'].dirty || !f['level'].untouched)) {
@if (f['level'].hasError('required')) {

Level is required

diff --git a/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.html b/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.html index 01060ff..d41e1ca 100644 --- a/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.html +++ b/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.html @@ -17,11 +17,11 @@
- @if (df['opponentName'].invalid && (df['opponentName'].dirty || df['opponentName'].touched)) { + @if (df['opponentName'].invalid && (df['opponentName'].dirty || !df['opponentName'].untouched)) {
@if (df['opponentName'].hasError('required')) {

Opponent Name is required

@@ -34,11 +34,11 @@
- @if (df['opponentServer'].invalid && (df['opponentServer'].dirty || df['opponentServer'].touched)) { + @if (df['opponentServer'].invalid && (df['opponentServer'].dirty || !df['opponentServer'].untouched)) {
@if (df['opponentServer'].hasError('required')) {

Opponent server is required

@@ -48,11 +48,11 @@
+ type="text" mask="separator.2" thousandSeparator="." separatorLimit="9999999999999999" class="form-control" id="opponentPower" placeholder="opponentPower" formControlName="opponentPower"> - @if (df['opponentPower'].invalid && (df['opponentPower'].dirty || df['opponentPower'].touched)) { + @if (df['opponentPower'].invalid && (df['opponentPower'].dirty || !df['opponentPower'].untouched)) {
@if (df['opponentPower'].hasError('required')) {

Opponent power is required

@@ -62,11 +62,11 @@
- @if (df['opponentSize'].invalid && (df['opponentSize'].dirty || df['opponentSize'].touched)) { + @if (df['opponentSize'].invalid && (df['opponentSize'].dirty || !df['opponentSize'].untouched)) {
@if (df['opponentSize'].hasError('required')) {

Opponent size is required

@@ -76,14 +76,14 @@
- @if (df['opponentSize'].invalid && (df['opponentSize'].dirty || df['opponentSize'].touched)) { + @if (df['opponentSize'].invalid && (df['opponentSize'].dirty || !df['opponentSize'].untouched)) {
@if (df['opponentSize'].hasError('required')) {

Opponent size is required

@@ -129,7 +129,7 @@ + }" mask="separator.2" thousandSeparator="." separatorLimit="9999999999999999" type="text" min="0" class="form-control form-control-sm" id="player{{i}}" formControlName="weeklyPoints"> @if (participant.get('weeklyPoints')?.invalid && (participant.get('weeklyPoints')?.touched || participant.get('weeklyPoints')?.dirty)) {
@if (participant.get('weeklyPoints')?.hasError('required')){ diff --git a/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.ts b/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.ts index 8a4b520..27d0cbd 100644 --- a/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.ts +++ b/Ui/src/app/pages/vs-duel/vs-duel-edit/vs-duel-edit.component.ts @@ -93,7 +93,7 @@ export class VsDuelEditComponent implements OnInit { id: new FormControl(vsDuelParticipant.id), playerId: new FormControl(vsDuelParticipant.playerId), vsDuelId: new FormControl(vsDuelParticipant.vsDuelId), - weeklyPoints: new FormControl(vsDuelParticipant.weeklyPoints, [Validators.required, Validators.pattern('(0|[1-9]\\d*)')]), + weeklyPoints: new FormControl(vsDuelParticipant.weeklyPoints, [Validators.required]), playerName: new FormControl(vsDuelParticipant.playerName), })); }) diff --git a/Ui/src/app/pages/zombie-siege/zombie-siege.component.html b/Ui/src/app/pages/zombie-siege/zombie-siege.component.html index 3856356..e2fc5f0 100644 --- a/Ui/src/app/pages/zombie-siege/zombie-siege.component.html +++ b/Ui/src/app/pages/zombie-siege/zombie-siege.component.html @@ -11,11 +11,11 @@
- @if (f['eventDate'].invalid && (f['eventDate'].dirty || f['eventDate'].touched)) { + @if (f['eventDate'].invalid && (f['eventDate'].dirty || !f['eventDate'].untouched)) {
@if (f['eventDate'].hasError('required')) {

eventDate is required

@@ -25,11 +25,11 @@
- @if (f['level'].invalid && (f['level'].dirty || f['level'].touched)) { + @if (f['level'].invalid && (f['level'].dirty || !f['level'].untouched)) {
@if (f['level'].hasError('required')) {

Level is required