From 3efbc19310f3a98d1d2e4b96b9b082eac51f2daf Mon Sep 17 00:00:00 2001 From: ValerieSchneider Date: Thu, 3 Jun 2021 14:59:47 +0200 Subject: [PATCH 01/52] =?UTF-8?q?de.json=20und=20en.json=20Fehlermeldung?= =?UTF-8?q?=20Veranstaltung=20eingef=C3=BCgt=20SQL=20Skripte=20V25=20und?= =?UTF-8?q?=20V26=20verbessert=20Zeile=20160-163=20auskommentiert=20in=20V?= =?UTF-8?q?eranstaltungComponentImpl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../veranstaltung-detail.component.ts | 27 ++++++++++++++----- bogenliga/src/assets/i18n/de.json | 4 +++ bogenliga/src/assets/i18n/en.json | 4 +++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts index b559b6264..95f3cfd63 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts @@ -42,6 +42,7 @@ const NOTIFICATION_DELETE_VERANSTALTUNG = 'veranstaltung_detail_delete'; const NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS = 'veranstaltung_detail_delete_success'; const NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE = 'veranstaltung_detail_delete_failure'; const NOTIFICATION_SAVE_VERANSTALTUNG = 'veranstaltung_detail_save'; +const NOTIFICATION_SAVE_VERANSTALTUNG_FAILURE = 'veranstaltung_detail_save_failure'; const NOTIFICATION_UPDATE_VERANSTALTUNG = 'veranstaltung_detail_update'; const NOTIFICATION_SAVE_SORTIERUNG = 'veranstaltung_detail_save_sortierung'; const NOTIFICATION_INIT_LIGATABELLE_SUC = 'init_Ligatabelle_suc'; @@ -201,14 +202,28 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.notificationService.showNotification(notification); } - }, (response: BogenligaResponse) => { - console.log('Failed'); - this.saveLoading = false; - + } + ) + .catch((response)=> { + console.log('Veranstaltung existiert bereits in diesem Sportjahr'); + const notification: Notification = { + id: NOTIFICATION_SAVE_VERANSTALTUNG_FAILURE, + title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.SAVE_FAILURE.TITLE', + description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.SAVE_FAILURE.DESCRIPTION', + severity: NotificationSeverity.ERROR, + origin: NotificationOrigin.USER, + type: NotificationType.OK, + userAction: NotificationUserAction.PENDING + }; + this.notificationService.observeNotification(NOTIFICATION_SAVE_VERANSTALTUNG_FAILURE) + .subscribe((myNotification) => { + if (myNotification.userAction === NotificationUserAction.ACCEPTED) { + this.saveLoading = false; + } + }); + this.notificationService.showNotification(notification); }); - - // show response message } diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index b98ba9ca4..bc70e6a03 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1213,6 +1213,10 @@ "TITLE": "Veranstaltung angelegt", "DESCRIPTION": "Veranstaltung wurde erfolgreich angelegt" }, + "SAVE_FAILURE": { + "TITLE": "Fehlermeldung: Duplikation", + "DESCRIPTION": "Es existiert in diesem Sportjahr bereits eine Veranstaltung für die von Ihnen angegebenen Liga. Bitte überprüfen Sie Ihre Eingabe." + }, "COPYMANNSCHAFT_FAILURE": { "TITLE": "Kopieren fehlgeschlagen", "DESCRIPTION": "Keine Veranstaltung im Vorjahr vorhanden" diff --git a/bogenliga/src/assets/i18n/en.json b/bogenliga/src/assets/i18n/en.json index ce5cd40e6..67700da61 100644 --- a/bogenliga/src/assets/i18n/en.json +++ b/bogenliga/src/assets/i18n/en.json @@ -1201,6 +1201,10 @@ "TITLE": "Event created", "DESCRIPTION": "Successfully created event." }, + "SAVE_FAILURE": { + "TITLE": "Error message: Duplication.", + "DESCRIPTION": "An event already exists in this sport year for the league you entered. Please check your entry." + }, "SAVEMANNSCHAFT": { "TITLE": "Success", "DESCRIPTION": "Successfully copied teams from last season." From 518eccb1e8078360f97ea773bc6aec2778983e39 Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Wed, 9 Jun 2021 16:54:31 +0200 Subject: [PATCH 02/52] =?UTF-8?q?fixed=20problem=20with=20invalid=20R?= =?UTF-8?q?=C3=BCckennummer=20inputs=20which=20showed=20another=20popup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schusszettel/schusszettel.component.ts | 63 +++++++++---------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts b/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts index f92a5106d..45346e5c9 100644 --- a/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts +++ b/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts @@ -211,45 +211,42 @@ export class SchusszettelComponent implements OnInit { this.dirtyFlag = true; // Daten geändert } - onSchuetzeChange(value: string, matchNr: number, rueckennummer: number){ - var mannschaftId = matchNr == 1 ? this.match1.mannschaftId : this.match2.mannschaftId; + async onSchuetzeChange(value: string, matchNr: number, rueckennummer: number){ + const mannschaftId = matchNr == 1 ? this.match1.mannschaftId : this.match2.mannschaftId; - this.mannschaftsMitgliedDataProvider.findByTeamIdAndRueckennummer(mannschaftId, value).then(result => { - if(result.result == RequestResult.SUCCESS){ - console.log(result.payload.dsbMitgliedId); + let valid = true; - let dsbNummer = result.payload.dsbMitgliedId; - let allowed = []; + let mitglied = null; - if(matchNr == 1){ - allowed = this.allowedMitglieder1; - } - else{ - allowed = this.allowedMitglieder2; - } + try { + mitglied = await this.mannschaftsMitgliedDataProvider.findByTeamIdAndRueckennummer(mannschaftId, value); + }catch (e){ + valid = false; + } - if(!allowed.includes(dsbNummer)){ - this.match1.schuetzen.forEach(val => { - console.log('Checking ',val); - if(allowed.includes(val[0].dsbMitgliedId)){ - console.log(val[0].rueckennummer + " is valid"); - } - }); + if(mitglied != null && mitglied.result == RequestResult.SUCCESS) { + let dsbNummer = mitglied.payload.dsbMitgliedId; + console.log('DsbNummer for Mannschaftsmitglied in Mannschaft ' + + mannschaftId + " and Rueckennummer " + value + " is " + dsbNummer); - this.notificationService.showNotification({ - id: 'NOTIFICATION_SCHUSSZETTEL_SCHUETZENNUMMER', - title: 'SPORTJAHRESPLAN.SCHUSSZETTEL.NOTIFICATION.SCHUETZENNUMMER.TITLE', - description: 'SPORTJAHRESPLAN.SCHUSSZETTEL.NOTIFICATION.SCHUETZENNUMMER.DESCRIPTION', - severity: NotificationSeverity.ERROR, - origin: NotificationOrigin.SYSTEM, - type: NotificationType.OK, - userAction: NotificationUserAction.ACCEPTED - }); - } - }else{ - console.log('Error'); + let allowed = matchNr == 1 ? this.allowedMitglieder1 : this.allowedMitglieder2; + + if (!allowed.includes(dsbNummer)) { + valid = false; } - }); + } + + if(!valid){ + this.notificationService.showNotification({ + id: 'NOTIFICATION_SCHUSSZETTEL_SCHUETZENNUMMER', + title: 'SPORTJAHRESPLAN.SCHUSSZETTEL.NOTIFICATION.SCHUETZENNUMMER.TITLE', + description: 'SPORTJAHRESPLAN.SCHUSSZETTEL.NOTIFICATION.SCHUETZENNUMMER.DESCRIPTION', + severity: NotificationSeverity.ERROR, + origin: NotificationOrigin.SYSTEM, + type: NotificationType.OK, + userAction: NotificationUserAction.ACCEPTED + }); + } } onFehlerpunkteChange(value: string, matchNr: number, satzNr: number) { From 5334adc13881ff01a5ae67d2a60b7b1c272a3e64 Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Thu, 10 Jun 2021 11:20:11 +0200 Subject: [PATCH 03/52] fixed conflicts --- .../components/schusszettel/schusszettel.component.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts b/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts index 45346e5c9..ba82702b6 100644 --- a/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts +++ b/bogenliga/src/app/modules/sportjahresplan/components/schusszettel/schusszettel.component.ts @@ -215,7 +215,7 @@ export class SchusszettelComponent implements OnInit { const mannschaftId = matchNr == 1 ? this.match1.mannschaftId : this.match2.mannschaftId; let valid = true; - + let allowed = []; let mitglied = null; try { @@ -229,7 +229,7 @@ export class SchusszettelComponent implements OnInit { console.log('DsbNummer for Mannschaftsmitglied in Mannschaft ' + mannschaftId + " and Rueckennummer " + value + " is " + dsbNummer); - let allowed = matchNr == 1 ? this.allowedMitglieder1 : this.allowedMitglieder2; + allowed = matchNr == 1 ? this.allowedMitglieder1 : this.allowedMitglieder2; if (!allowed.includes(dsbNummer)) { valid = false; @@ -398,6 +398,7 @@ export class SchusszettelComponent implements OnInit { this.getBereitsgeschossenToCheckSchuetze(); // Kontrolle, ob die die Regeln eingehalten wurden + /* for (let i = 0; i < this.matchAllPasse.length; i++) { // Hat der Schütze 2x in einer Liga geschossen -> darf er nicht mehr in einer Liga darunter schießen @@ -418,7 +419,7 @@ export class SchusszettelComponent implements OnInit { console.log('Popup: ', this.passeSelberTag, 'hat bereits diesen Wettkampftag in der', this.selberTagVeranstaltung, 'geschossen'); this.savepopSelberTag(); } - } + }*/ } savepopSelberTag() { From 2de4a7e592ba473fa3352a9a22ac3c3d8a812bab Mon Sep 17 00:00:00 2001 From: kayaok Date: Mon, 21 Jun 2021 12:13:25 +0200 Subject: [PATCH 04/52] onDeleteMannschaften implemented to delete Mannschaften in Veranstaltung-Detail --- .../veranstaltung-detail.component.html | 3 +- .../veranstaltung-detail.component.ts | 44 ++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.html index 95dd9df97..cbd22d6b5 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.html @@ -283,7 +283,8 @@

{{'MANAGEMENT.VERANSTALTUNG_DETAIL.TABLE.TITLE' | translate}}

+ (onEditEntry)="onEdit($event)" + (onDeleteEntry)="onDeleteMannschaft($event)"> diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts index 87dcea1f7..3f7b916e7 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts @@ -1,6 +1,12 @@ import {Component, OnInit} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; -import {AlertType, ButtonType, CommonComponentDirective, toTableRows} from '@shared/components'; +import { + AlertType, + ButtonType, + CommonComponentDirective, hideLoadingIndicator, + showDeleteLoadingIndicatorIcon, + toTableRows +} from '@shared/components'; import {BogenligaResponse} from '@shared/data-provider'; import {isNullOrUndefined, isUndefined} from '@shared/functions'; import { @@ -48,6 +54,7 @@ const NOTIFICATION_SAVE_SORTIERUNG = 'veranstaltung_detail_save_sortierung'; const NOTIFICATION_INIT_LIGATABELLE_SUC = 'init_Ligatabelle_suc'; const NOTIFICATION_INIT_LIGATABELLE_FAIL = 'init_Ligatabelle_fail'; const NOTIFICATION_COPY_MANNSCHAFTEN_FAILURE = 'veranstaltung_detail_copy_failure'; +const NOTIFICATION_DELETE_MANNSCHAFT = 'mannschaft_detail_delete'; @Component({ @@ -501,6 +508,41 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loadLigaTabelleExists(); } + public onDeleteMannschaft(versionedDataObject: VersionedDataObject): void { + + this.notificationService.discardNotification(); + + const id = versionedDataObject.id; + this.rows = showDeleteLoadingIndicatorIcon(this.rows, id); + + const notification: Notification = { + id: NOTIFICATION_DELETE_MANNSCHAFT + id, + title: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE.TITLE', + description: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE.DESCRIPTION', + descriptionParam: '' + id, + severity: NotificationSeverity.QUESTION, + origin: NotificationOrigin.USER, + type: NotificationType.YES_NO, + userAction: NotificationUserAction.PENDING + }; + + let notificationEvent = this.notificationService.observeNotification(NOTIFICATION_DELETE_MANNSCHAFT + id) + .subscribe((myNotification) => { + + if (myNotification.userAction === NotificationUserAction.ACCEPTED) { + this.mannschaftDataProvider.deleteById(id) + .then((response) => this.loadMannschaftsTable()) + .catch((response) => this.rows = hideLoadingIndicator(this.rows, id)); + } else if (myNotification.userAction === NotificationUserAction.DECLINED) { + this.rows = hideLoadingIndicator(this.rows, id); + notificationEvent.unsubscribe(); + } + + }); + + this.notificationService.showNotification(notification); + } + public onEdit(versionedDataObject: VersionedDataObject) { this.selectedMannschaft = versionedDataObject as DsbMannschaftDO; From d9e13a5ade8ff1f6089955c6eee68499c837de3e Mon Sep 17 00:00:00 2001 From: lisa-tochtermann Date: Mon, 21 Jun 2021 19:32:35 +0200 Subject: [PATCH 05/52] =?UTF-8?q?Change=20L=C3=B6sch-Dialog=20from=20id=20?= =?UTF-8?q?to=20name.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mannschaft-detail.component.ts | 14 +++++++++++--- bogenliga/src/assets/i18n/de.json | 2 +- bogenliga/src/assets/i18n/en.json | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts index 37d198826..7e2ff6bf9 100644 --- a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts @@ -79,6 +79,8 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen private deleteNotification: Notification; private duplicateSubscription; private deleteSubscription; + private dsbmitglied: DsbMitgliedDO = new DsbMitgliedDO(); + @ViewChild('downloadLink') private aElementRef: ElementRef; @@ -414,19 +416,24 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen // @param memberId: MannschaftsId of Mannschaft of Member to delete // @param dsbMitgliedId: dsbMitgliedId of Member of Mannschaft - private deleteMitglied(memberId: number, dsbMitgliedId: number) { + private async deleteMitglied(memberId: number, dsbMitgliedId: number) { + + const response = await this.dsbMitgliedProvider.findById(dsbMitgliedId); + this.dsbmitglied = response.payload; + + this.rows = showDeleteLoadingIndicatorIcon(this.rows, dsbMitgliedId); const notification: Notification = { id: NOTIFICATION_DELETE_MITGLIED + memberId, title: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE_MITGLIED.TITLE', description: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE_MITGLIED.DESCRIPTION', - descriptionParam: '' + dsbMitgliedId, + descriptionParam: '' + this.dsbmitglied.vorname + ' ' + this.dsbmitglied.nachname, severity: NotificationSeverity.QUESTION, origin: NotificationOrigin.USER, type: NotificationType.YES_NO, userAction: NotificationUserAction.PENDING }; - this.notificationService.observeNotification(NOTIFICATION_DELETE_MITGLIED + memberId) + let noti = this.notificationService.observeNotification(NOTIFICATION_DELETE_MITGLIED + memberId) .subscribe((myNotification) => { if (myNotification.userAction === NotificationUserAction.ACCEPTED) { @@ -461,6 +468,7 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen } else if (myNotification.userAction === NotificationUserAction.DECLINED) { this.rows = hideLoadingIndicator(this.rows, dsbMitgliedId); + noti.unsubscribe(); } }); this.notificationService.showNotification(notification); diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index 1db066b27..d28edf803 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -897,7 +897,7 @@ }, "DELETE_MITGLIED": { "TITLE": "Schütze aus Mannschaft löschen", - "DESCRIPTION": "Wollen Sie den Schützen mit der ID=%s wirklich aus der Mannschaft entfernen?" + "DESCRIPTION": "Wollen Sie den Schützen %s wirklich aus der Mannschaft entfernen?" }, "DELETE_MITGLIED_SUCCESS": { "TITLE": "Erfolg", diff --git a/bogenliga/src/assets/i18n/en.json b/bogenliga/src/assets/i18n/en.json index 8491ab75a..042340bc6 100644 --- a/bogenliga/src/assets/i18n/en.json +++ b/bogenliga/src/assets/i18n/en.json @@ -886,7 +886,7 @@ }, "DELETE_MITGLIED": { "TITLE": "Delete marksman from team", - "DESCRIPTION": "Are you sure, you want to delete the marksman with ID=%s from the team?" + "DESCRIPTION": "Are you sure, you want to delete the marksman %s from the team?" }, "DELETE_MITGLIED_SUCCESS": { "TITLE": "Success", From 3aa9d44401443011e7fdff5914cd595898473a28 Mon Sep 17 00:00:00 2001 From: Shohan-creator Date: Tue, 22 Jun 2021 16:49:03 +0200 Subject: [PATCH 06/52] Bug fix BSAPP-939 und 940 --- .../wettkampftage/wettkampftage.component.ts | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 21727a5aa..8158640d0 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -217,12 +217,11 @@ export class WettkampftageComponent extends CommonComponentDirective implements } //Method adds new Wettkampftag ->called by "hinzufügen"-Button - public onAddWettkampfTag(ignore: any): void { + public async onAddWettkampfTag(ignore: any): Promise { this.currentWettkampftagArray.push(new WettkampfDO()); - this.createInitWettkampfTag((this.anzahl) +1); this.loadDistinctWettkampf(); - this.loadWettkampf(); - + await this.createInitWettkampfTag((this.anzahl) + 1); + this.loadDistinctWettkampf(); } public updateKampfrichter(wettkampfTagNumber: number, wettkampfID: number): void{ @@ -632,21 +631,22 @@ export class WettkampftageComponent extends CommonComponentDirective implements } //when loading was succesfull, filter Wettkampftage depending on Veranstaltung - private handleLoadDistinctWettkampfSuccess(response: BogenligaResponse): void { + private async handleLoadDistinctWettkampfSuccess(response: BogenligaResponse): Promise { this.selectedDTOs = []; this.selectedDTOs = response.payload.filter(element => element.wettkampfVeranstaltungsId === this.currentVeranstaltung.id); this.anzahl = this.selectedDTOs.length; //when there are no Wettkampftage for this Veranstaltung yet - if(this.selectedDTOs.length===0){ - this.createInitWettkampfTag(1); + if (this.selectedDTOs.length === 0) { this.selectedDTOs.push(new WettkampfDO()); - this.loadWettkampf(); + await this.createInitWettkampfTag(1); this.loadDistinctWettkampf(); } this.loadingWettkampf = false; } + + //when loading failed private handleLoadDistinctWettkampfFailure(response: BogenligaResponse): void { this.selectedDTOs = []; @@ -658,17 +658,18 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.selectedWettkampfTag = $event[0].wettkampfTag; console.log('onSelect Dialog: ' + this.selectedWettkampfTag); this.loadWettkampf(); + this.loadDistinctWettkampf(); } //create an empty Wettkampftag - public createInitWettkampfTag(num: number): void { + public async createInitWettkampfTag(num: number): Promise { console.log(Number(this.maxWettkampftageEinstellungenDO.value)); if (this.anzahl < Number(this.maxWettkampftageEinstellungenDO.value)) { this.anzahl++; const temp: WettkampfDO = new WettkampfDO( num, this.currentVeranstaltung.id, - "0000-00-00", + "2021-00-00", "", "", "", @@ -681,7 +682,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements 1 ); this.currentWettkampftagArray[num] = temp; - this.saveWettkampftag(this.currentWettkampftagArray[num]); + await this.saveWettkampftag(this.currentWettkampftagArray[num]); } else { const notification: Notification = { id: NOTIFICATION_WETTKAMPFTAG_TOO_MANY, @@ -696,6 +697,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.wettkampftagService(); this.notificationService.showNotification(notification); } + return true; } } From 24a203c744cd8d48d036a51102d91a68081c662e Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Thu, 24 Jun 2021 15:18:40 +0200 Subject: [PATCH 07/52] =?UTF-8?q?derzeitige=20Liga=20aus=20Auswahl=20der?= =?UTF-8?q?=20=C3=BCbergeordneten=20Liga=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/liga/liga-detail/liga-detail.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts index 44f4b9f57..5fbf19133 100644 --- a/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts @@ -325,7 +325,11 @@ export class LigaDetailComponent extends CommonComponentDirective implements OnI private handlUebergeordnetResponseArraySuccess(response: BogenligaResponse): void { this.allUebergeordnete = []; - this.allUebergeordnete = response.payload; + this.allUebergeordnete = response.payload.filter(ubergeordneteLiga=>{ + if(ubergeordneteLiga.name != this.currentLiga.name){ + return ubergeordneteLiga.name; + } + }); if (this.id === 'add') { this.currentUbergeordneteLiga = this.allUebergeordnete[0]; } else { From e552ff4c7969fd8e4a74fb6b53427c24bf55ce1e Mon Sep 17 00:00:00 2001 From: Sherna99 Date: Fri, 25 Jun 2021 08:12:32 +0200 Subject: [PATCH 08/52] BSAPP-932 --- .../modules/user/components/user-pwd/user-pwd.component.html | 2 +- .../components/user/user-detail/user-detail.component.html | 2 +- bogenliga/src/assets/i18n/de.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html b/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html index 8d2e70c21..d6922e249 100644 --- a/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html +++ b/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html @@ -59,7 +59,7 @@ class="form-control" required minlength="8" - pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]+$" + pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d#$+=!*()@%&?]{8,}$" id="userPwdFormNewPwd" name="userPwdFormNewPwd" #userPwdFormNewPwd="ngModel" diff --git a/bogenliga/src/app/modules/verwaltung/components/user/user-detail/user-detail.component.html b/bogenliga/src/app/modules/verwaltung/components/user/user-detail/user-detail.component.html index f885d5186..c14d0ed9b 100644 --- a/bogenliga/src/app/modules/verwaltung/components/user/user-detail/user-detail.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/user/user-detail/user-detail.component.html @@ -108,7 +108,7 @@ name="userPwdFormNewPwd" required minlength="8" - pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]+$" + pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d#$+=!*()@%&?]{8,}$" #userPwdFormNewPwd="ngModel" [(ngModel)]="resetCredentials.password" [class.is-invalid]="(userPwdFormNewPwd.invalid && !userPwdFormNewPwd.untouched)" diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index 1db066b27..d0feaa108 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -346,7 +346,7 @@ "NEWPASSWORD": { "LABEL": "Neues Passwort", "PLACEHOLDER": "Bitte Passwort eingeben", - "ERROR": "Mindestlänge 8 Zeichen, Groß- und Kleinbuchstaben und min. eine Zahl" + "ERROR": "Mindestlänge 8 Zeichen, Groß- und Kleinbuchstaben und min. eine Zahl. Erlaubte Sonderzeichen: #$+=!*()@%&?" }, "VERIFYPASSWORD": { "LABEL": "Verifikation neues Passwort", @@ -1318,7 +1318,7 @@ "PASSWORD_NEW": { "LABEL": "Neues Passwort", "PLACEHOLDER": "Bitte neues Passwort eingeben", - "ERROR": "Mindestlänge 8 Zeichen, mindestens 1 Zahl und jeweils 1 Groß- und ein Kleinbuchstabe. Erlaubte Sonderzeichen: #$^+=!*()@%&?" + "ERROR": "Mindestlänge 8 Zeichen, Groß- und Kleinbuchstaben und min. eine Zahl. Erlaubte Sonderzeichen: #$+=!*()@%&?" }, "ROLE_UPDATE": "Rolle ändern", "PW_UPDATE": "Passwort ändern" From fafbd46ad0c3dc6d43bc7639ddf8b146752379e0 Mon Sep 17 00:00:00 2001 From: Sherna99 Date: Fri, 25 Jun 2021 21:52:44 +0200 Subject: [PATCH 09/52] bugfix correction --- .../user/components/user-pwd/user-pwd.component.html | 3 +-- .../user/user-detail/user-detail.component.html | 3 +-- bogenliga/src/assets/i18n/de.json | 8 ++++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html b/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html index d6922e249..193fb7626 100644 --- a/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html +++ b/bogenliga/src/app/modules/user/components/user-pwd/user-pwd.component.html @@ -58,8 +58,7 @@ Date: Sat, 26 Jun 2021 10:16:04 +0200 Subject: [PATCH 10/52] Cleaned Veranstaltung-detail.component.ts --- .../veranstaltung-detail.component.ts | 66 ++++++++++++------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts index 87dcea1f7..4f0df4622 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/veranstaltung-detail.component.ts @@ -38,6 +38,7 @@ import {MatchDataProviderService} from '@verwaltung/services/match-data-provider import {WettkampfKlasseDO} from '@verwaltung/types/wettkampfklasse-do.class'; import {TableActionType} from '@shared/components/tables/types/table-action-type.enum'; + const ID_PATH_PARAM = 'id'; const NOTIFICATION_DELETE_VERANSTALTUNG = 'veranstaltung_detail_delete'; const NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS = 'veranstaltung_detail_delete_success'; @@ -55,7 +56,11 @@ const NOTIFICATION_COPY_MANNSCHAFTEN_FAILURE = 'veranstaltung_detail_copy_failur templateUrl: './veranstaltung-detail.component.html', styleUrls: ['./veranstaltung-detail.component.scss'] }) + + + export class VeranstaltungDetailComponent extends CommonComponentDirective implements OnInit { + public config = VERANSTALTUNG_DETAIL_CONFIG; public tableConfig = VERANSTALTUNG_DETAIL_TABLE_Config; public ButtonType = ButtonType; @@ -64,7 +69,6 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple public allVeranstaltung: Array = [new VeranstaltungDO()]; public lastVeranstaltung: VeranstaltungDO = new VeranstaltungDO(); - public currentLiga: LigaDO = new LigaDO(); public allLiga: Array = [new LigaDO()]; @@ -75,11 +79,9 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple public allDsbMannschaft: Array = [new DsbMannschaftDO()]; public testMannschaft: DsbMannschaftDO = new DsbMannschaftDO(); - - public currentUser: UserProfileDO = new UserProfileDO(); public allUsers: Array = [new UserProfileDO()]; - + public allLigaleiter: Array = [new UserProfileDO()]; public deleteLoading = false; public saveLoading = false; @@ -97,6 +99,7 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple public currentLigatabelle: Array; + constructor( private veranstaltungDataProvider: VeranstaltungDataProviderService, private wettkampftypDataProvider: WettkampftypDataProviderService, @@ -113,8 +116,8 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple super(); } - ngOnInit() { + ngOnInit() { this.loading = true; this.notificationService.discardNotification(); this.route.params.subscribe((params) => { @@ -144,18 +147,20 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple }); } + public onWettkampftag(ignore: any): void { this.navigateToWettkampftage(this.currentVeranstaltung); } + private navigateToWettkampftage(ignore: any) { this.router.navigateByUrl('/verwaltung/veranstaltung/' + this.currentVeranstaltung.id + '/' + this.currentVeranstaltung.id); } + public onSave(ignore: any): void { this.saveLoading = true; - if (typeof this.currentLiga === 'undefined') { this.currentVeranstaltung.ligaId = null; } else { @@ -173,7 +178,6 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple } else { this.currentVeranstaltung.wettkampfTypId = this.currentWettkampftyp.id; this.currentVeranstaltung.wettkampftypName = this.currentWettkampftyp.name; - } // persist @@ -207,15 +211,12 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple }, (response: BogenligaResponse) => { console.log('Failed'); this.saveLoading = false; - - }); - - // show response message } - //Gets executed when button "Mannschaft kopieren" is pressed + + // Gets executed when button "Mannschaft kopieren" is pressed public onCopyMannschaft(ignore: any): void { this.saveLoading = true; this.veranstaltungDataProvider.findLastVeranstaltungById(this.currentVeranstaltung.id) @@ -253,7 +254,6 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple } - public onUpdate(ignore: any): void { this.saveLoading = true; this.currentVeranstaltung.ligaId = this.currentLiga.id; @@ -296,11 +296,10 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple }); } + /** * Deletes all Wettkampftag entries of the provided VeranstaltungID */ - - public onDelete(ignore: any): void { this.deleteLoading = true; this.notificationService.discardNotification(); @@ -329,14 +328,15 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.deleteLoading = false; } }); - this.notificationService.showNotification(notification); } + public entityExists(): boolean { return this.currentVeranstaltung.id >= 0; } + public mannschaftExists(): boolean { return this.allDsbMannschaft.filter((veranstaltung) => veranstaltung.id === this.currentVeranstaltung.id).length > 0; } @@ -348,27 +348,28 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple .catch((response: BogenligaResponse) => this.handleFailure(response)); } + private loadUsers() { this.userProvider.findAll() .then((response: BogenligaResponse) => this.handleUserResponseArraySuccess(response)) .catch((response: BogenligaResponse) => this.handleUserResponseArrayFailure(response)); - } + private loadLiga() { this.ligaProvider.findAll() .then((response: BogenligaResponse) => this.handlLigaResponseArraySuccess(response)) .catch((response: BogenligaResponse) => this.handleLigaResponseArrayFailure(response)); - } + private loadWettkampftyp() { this.wettkampftypDataProvider.findAll() .then((response: BogenligaResponse) => this.handleWettkampftypResponseArraySuccess(response)) .catch((response: BogenligaResponse) => this.handleWettkampftypResponseArrayFailure(response)); - } + private handleSuccess(response: BogenligaResponse) { this.currentVeranstaltung = response.payload; this.loading = false; @@ -377,16 +378,18 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loadLiga(); } + private handleFailure(response: BogenligaResponse) { this.loading = false; } + private handleCopyFromVeranstaltungSuccess(response: BogenligaResponse) { this.loadMannschaftsTable(); } - private handleDeleteSuccess(response: BogenligaResponse): void { + private handleDeleteSuccess(response: BogenligaResponse): void { const notification: Notification = { id: NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_SUCCESS.TITLE', @@ -408,8 +411,8 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.notificationService.showNotification(notification); } - private handleDeleteFailure(response: BogenligaResponse): void { + private handleDeleteFailure(response: BogenligaResponse): void { const notification: Notification = { id: NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_FAILURE.TITLE', @@ -430,6 +433,7 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.notificationService.showNotification(notification); } + private handlLigaResponseArraySuccess(response: BogenligaResponse): void { this.allLiga = []; this.allLiga = response.payload; @@ -441,11 +445,13 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loading = false; } + private handleLigaResponseArrayFailure(response: BogenligaResponse): void { this.allLiga = []; this.loading = false; } + private handleWettkampftypResponseArraySuccess(response: BogenligaResponse): void { this.allWettkampftyp = []; this.allWettkampftyp = response.payload; @@ -457,11 +463,13 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loading = false; } + private handleWettkampftypResponseArrayFailure(response: BogenligaResponse): void { this.allWettkampftyp = []; this.loading = false; } + private handleUserResponseArraySuccess(response: BogenligaResponse): void { this.allUsers = []; this.allUsers = response.payload; @@ -473,11 +481,13 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loading = false; } + private handleUserResponseArrayFailure(response: BogenligaResponse): void { this.allUsers = []; this.loading = false; } + /** * Checks if current Table is empty * If not button which uses copyMannschaftFromVeranstaltung will be greyed out @@ -490,17 +500,20 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple return empty; } + private loadMannschaftsTable() { this.mannschaftDataProvider.findAllByVeranstaltungsId(this.id) .then((response: BogenligaResponse) => this.handleLoadMannschaftsTableSuccess(response.payload)) .catch((response: BogenligaResponse) => this.rows = []); } + private handleLoadMannschaftsTableSuccess(payload: DsbMannschaftDO[]) { this.rows = toTableRows(payload); this.loadLigaTabelleExists(); } + public onEdit(versionedDataObject: VersionedDataObject) { this.selectedMannschaft = versionedDataObject as DsbMannschaftDO; @@ -508,11 +521,13 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.showPopup = true; } + public onTableEditCancel( event: any) { this.selectedMannschaft.sortierung = this.oldSortierung; this.showPopup = false; } + public onTableEditSave(event: any) { const maSortierung = new MannschaftSortierungDO( this.selectedMannschaft.id, this.selectedMannschaft.sortierung); @@ -523,8 +538,8 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loading = false; } - private handleTableSaveSuccess() { + private handleTableSaveSuccess() { const notification: Notification = { id: NOTIFICATION_SAVE_SORTIERUNG, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.TABLE.NOTIFICATION.SAVE.TITLE', @@ -552,22 +567,26 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loadMannschaftsTable(); } + public checkForExistingLigatabelle(): boolean { return this.currentLigatabelle !== undefined; } + private loadLigaTabelleExists() { this.ligatabellenService.getLigatabelleVeranstaltung(this.id) .then((response: BogenligaResponse) => response.payload.length >= 4 ? this.handleLigatabelleExistsSuccess(response) : this.handleLigatabelleExistsFailure()) .catch(() => this.handleLigatabelleExistsFailure()) } + private handleLigatabelleExistsFailure() { console.log("Initiale Ligatabelle does not yet exist"); this.currentLigatabelle = undefined; this.saveLoading = false; } + private handleLigatabelleExistsSuccess(response: BogenligaResponse) { try { this.currentLigatabelle = response.payload; @@ -582,12 +601,14 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple } } + public createMatchesWT0(event: any) { this.matchDataProvider.createInitialMatchesWT0(this.currentVeranstaltung) .then(() => this.handleCreateMatchesWT0Success()) .catch(() => this.handleCreateMatchesWT0Failure()); } + private handleCreateMatchesWT0Success() { const notification: Notification = { id: NOTIFICATION_INIT_LIGATABELLE_SUC, @@ -610,6 +631,7 @@ export class VeranstaltungDetailComponent extends CommonComponentDirective imple this.loadLigaTabelleExists(); } + private handleCreateMatchesWT0Failure() { const notification: Notification = { id: NOTIFICATION_INIT_LIGATABELLE_FAIL, From 6f5551e31418f52746cfb00815ecdd86bce75d81 Mon Sep 17 00:00:00 2001 From: lisa-tochtermann Date: Mon, 21 Jun 2021 19:32:35 +0200 Subject: [PATCH 11/52] =?UTF-8?q?Change=20L=C3=B6sch-Dialog=20from=20id=20?= =?UTF-8?q?to=20name.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mannschaft-detail.component.ts | 14 +++++++++++--- bogenliga/src/assets/i18n/de.json | 2 +- bogenliga/src/assets/i18n/en.json | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts index 37d198826..7e2ff6bf9 100644 --- a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/mannschaft-detail.component.ts @@ -79,6 +79,8 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen private deleteNotification: Notification; private duplicateSubscription; private deleteSubscription; + private dsbmitglied: DsbMitgliedDO = new DsbMitgliedDO(); + @ViewChild('downloadLink') private aElementRef: ElementRef; @@ -414,19 +416,24 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen // @param memberId: MannschaftsId of Mannschaft of Member to delete // @param dsbMitgliedId: dsbMitgliedId of Member of Mannschaft - private deleteMitglied(memberId: number, dsbMitgliedId: number) { + private async deleteMitglied(memberId: number, dsbMitgliedId: number) { + + const response = await this.dsbMitgliedProvider.findById(dsbMitgliedId); + this.dsbmitglied = response.payload; + + this.rows = showDeleteLoadingIndicatorIcon(this.rows, dsbMitgliedId); const notification: Notification = { id: NOTIFICATION_DELETE_MITGLIED + memberId, title: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE_MITGLIED.TITLE', description: 'MANAGEMENT.MANNSCHAFT_DETAIL.NOTIFICATION.DELETE_MITGLIED.DESCRIPTION', - descriptionParam: '' + dsbMitgliedId, + descriptionParam: '' + this.dsbmitglied.vorname + ' ' + this.dsbmitglied.nachname, severity: NotificationSeverity.QUESTION, origin: NotificationOrigin.USER, type: NotificationType.YES_NO, userAction: NotificationUserAction.PENDING }; - this.notificationService.observeNotification(NOTIFICATION_DELETE_MITGLIED + memberId) + let noti = this.notificationService.observeNotification(NOTIFICATION_DELETE_MITGLIED + memberId) .subscribe((myNotification) => { if (myNotification.userAction === NotificationUserAction.ACCEPTED) { @@ -461,6 +468,7 @@ export class MannschaftDetailComponent extends CommonComponentDirective implemen } else if (myNotification.userAction === NotificationUserAction.DECLINED) { this.rows = hideLoadingIndicator(this.rows, dsbMitgliedId); + noti.unsubscribe(); } }); this.notificationService.showNotification(notification); diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index b93ac33f5..cc310e2b9 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -897,7 +897,7 @@ }, "DELETE_MITGLIED": { "TITLE": "Schütze aus Mannschaft löschen", - "DESCRIPTION": "Wollen Sie den Schützen mit der ID=%s wirklich aus der Mannschaft entfernen?" + "DESCRIPTION": "Wollen Sie den Schützen %s wirklich aus der Mannschaft entfernen?" }, "DELETE_MITGLIED_SUCCESS": { "TITLE": "Erfolg", diff --git a/bogenliga/src/assets/i18n/en.json b/bogenliga/src/assets/i18n/en.json index 483cb7a80..e27e5b61d 100644 --- a/bogenliga/src/assets/i18n/en.json +++ b/bogenliga/src/assets/i18n/en.json @@ -886,7 +886,7 @@ }, "DELETE_MITGLIED": { "TITLE": "Delete marksman from team", - "DESCRIPTION": "Are you sure, you want to delete the marksman with ID=%s from the team?" + "DESCRIPTION": "Are you sure, you want to delete the marksman %s from the team?" }, "DELETE_MITGLIED_SUCCESS": { "TITLE": "Success", From 7b3a1a4a9b2936ecfe70ebb6bc9aeb2083a20db7 Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Thu, 24 Jun 2021 15:18:40 +0200 Subject: [PATCH 12/52] =?UTF-8?q?derzeitige=20Liga=20aus=20Auswahl=20der?= =?UTF-8?q?=20=C3=BCbergeordneten=20Liga=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/liga/liga-detail/liga-detail.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts index 44f4b9f57..5fbf19133 100644 --- a/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/liga/liga-detail/liga-detail.component.ts @@ -325,7 +325,11 @@ export class LigaDetailComponent extends CommonComponentDirective implements OnI private handlUebergeordnetResponseArraySuccess(response: BogenligaResponse): void { this.allUebergeordnete = []; - this.allUebergeordnete = response.payload; + this.allUebergeordnete = response.payload.filter(ubergeordneteLiga=>{ + if(ubergeordneteLiga.name != this.currentLiga.name){ + return ubergeordneteLiga.name; + } + }); if (this.id === 'add') { this.currentUbergeordneteLiga = this.allUebergeordnete[0]; } else { From 2cae78d990c86b64ebaccb8ae5d0208f229e4765 Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Thu, 1 Jul 2021 13:16:34 +0200 Subject: [PATCH 13/52] fix Schuetze Import --- .../mannschafts-detail/schuetzen/schuetzen.component.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/schuetzen/schuetzen.component.spec.ts b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/schuetzen/schuetzen.component.spec.ts index 722633d8a..60c5c52f3 100644 --- a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/schuetzen/schuetzen.component.spec.ts +++ b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/mannschafts-detail/schuetzen/schuetzen.component.spec.ts @@ -1,6 +1,6 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { SchuetzenComponent } from './mannschaft-detail.component'; +import { SchuetzenComponent } from './schuetzen.component'; describe('VereinDetailComponent', () => { let component: SchuetzenComponent; From f127258b313231d1c9e24d765660a56d9607d413 Mon Sep 17 00:00:00 2001 From: iremB Date: Thu, 1 Jul 2021 14:22:17 +0200 Subject: [PATCH 14/52] =?UTF-8?q?Wettkampftag=20l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wettkampftage.component.html | 14 ++++++ .../wettkampftage/wettkampftage.component.ts | 46 +++++++++++++++++-- bogenliga/src/assets/i18n/de.json | 2 +- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index a3f35249c..91185be6c 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -250,6 +250,20 @@ +
+
+
+ + + + {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE.TITLE' | translate }} + +
+
+
diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 8158640d0..34fc91c1e 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -47,6 +47,9 @@ import {EinstellungenDO} from '@verwaltung/types/einstellungen-do.class'; const ID_PATH_PARAM = 'id'; +const NOTIFICATION_DELETE_WETTKAMPFTAG = 'wettkampftag_detail_delete'; +const NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS = 'wettkampftag_detail_delete_success'; +const NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE = 'wettkampftag_detail_delete_failure'; const NOTIFICATION_DELETE_VERANSTALTUNG = 'veranstaltung_detail_delete'; const NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS = 'veranstaltung_detail_delete_success'; const NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE = 'veranstaltung_detail_delete_failure'; @@ -383,6 +386,39 @@ export class WettkampftageComponent extends CommonComponentDirective implements } } + public onDelete(wettkampfTagNumber: number, ignore: any): void { + this.deleteLoading = true; + this.notificationService.discardNotification(); + + const id = this.currentWettkampftagArray[wettkampfTagNumber].id; + + const notification: Notification = { + id: NOTIFICATION_DELETE_WETTKAMPFTAG+ id, + title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE.TITLE', + description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE.DESCRIPTION', + descriptionParam: '' + id, + severity: NotificationSeverity.QUESTION, + origin: NotificationOrigin.USER, + type: NotificationType.YES_NO, + userAction: NotificationUserAction.ACCEPTED + }; + + this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG+ id) + .subscribe((myNotification) => { + + if (myNotification.userAction === NotificationUserAction.ACCEPTED) { + this.wettkampfDataProvider.deleteById(id) + .then((response) => this.handleDeleteSuccess(response)) + .catch((response) => this.handleDeleteFailure(response)); + } else if (myNotification.userAction === NotificationUserAction.DECLINED) { + this.deleteLoading = false; + } + }); + + this.notificationService.showNotification(notification); + } + + /* public onDelete(ignore: any): void { this.deleteLoading = true; this.notificationService.discardNotification(); @@ -410,7 +446,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements }); this.notificationService.showNotification(notification); - } + }*/ public entityExists(): boolean { return this.currentVeranstaltung.id >= 0; @@ -488,8 +524,8 @@ export class WettkampftageComponent extends CommonComponentDirective implements const notification: Notification = { id: NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS, - title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_SUCCESS.TITLE', - description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_SUCCESS.DESCRIPTION', + title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_SUCCESS.TITLE', + description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_SUCCESS.DESCRIPTION', severity: NotificationSeverity.INFO, origin: NotificationOrigin.USER, type: NotificationType.OK, @@ -511,8 +547,8 @@ export class WettkampftageComponent extends CommonComponentDirective implements const notification: Notification = { id: NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE, - title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_FAILURE.TITLE', - description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE_FAILURE.DESCRIPTION', + title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_FAILURE.TITLE', + description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_FAILURE.DESCRIPTION', severity: NotificationSeverity.ERROR, origin: NotificationOrigin.USER, type: NotificationType.OK, diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index b93ac33f5..c56cfc409 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1182,7 +1182,7 @@ "DESCRIPTION": "Daten vom Wettkampftag aktualisiert" }, "DELETE": { - "TITLE": "Wettkampftag löschen", + "TITLE": "Löschen", "DESCRIPTION": "Wollen Sie den Wettkampftag mit der ID=%s wirklich löschen? ACHTUNG! Wenn Sie diesen Wettkampftag löschen werden alle Datensätze, die darauf referenzieren ebenfalls gelöscht!\"" }, "ADD": { From c16e0f42eac1b6617d1e3193a77026284ab3cd45 Mon Sep 17 00:00:00 2001 From: Till-G Date: Thu, 1 Jul 2021 14:38:35 +0200 Subject: [PATCH 15/52] Added copy button --- .../wettkampftage/wettkampftage.component.html | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index a3f35249c..b2dbd04ed 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -37,10 +37,20 @@ [optionFieldSelector]="'wettkampfTag'"> - +
+ + + + {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.COPY.TITLE' | translate }} + + +
- +

{{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.FORM.REMINDSAVE' | translate }}

From cc99a4668f50edda5015c4ae6cb1f1493de8c391 Mon Sep 17 00:00:00 2001 From: Till-G Date: Thu, 1 Jul 2021 14:39:52 +0200 Subject: [PATCH 16/52] Added 'Kopieren' for Wettkampftage to .json --- bogenliga/src/assets/i18n/de.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index cc310e2b9..e2879d5ff 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1189,6 +1189,10 @@ "TITLE": "Neu", "DESCRIPTION": "Wollen Sie einen weiteren Wettkampftag hinzufügen?" }, + "COPY": { + "TITLE": "Kopieren", + "DESCRIPTION": "Wollen Sie den ausgewählten Wettkampftag kopieren?" + }, "DELETE_SUCCESS": { "TITLE": "Erfolgreich", "DESCRIPTION": "Der Wettkampftag wurde erfolgreich gelöscht." From 584d52db557342d548b4e6c35504836874bce453 Mon Sep 17 00:00:00 2001 From: Shohan-creator Date: Thu, 1 Jul 2021 14:59:15 +0200 Subject: [PATCH 17/52] Function updateNumbersDelete --- .../wettkampftage/wettkampftage.component.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 34fc91c1e..4f9d0f7cd 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -735,5 +735,20 @@ export class WettkampftageComponent extends CommonComponentDirective implements } return true; } + + //Wettkampftag der gelöscht werden soll, muss hier übergeben werden + public updateNumbersDelete(wettkampftagToDelete:WettkampfDO){ + if(wettkampftagToDelete.wettkampfTag==this.currentWettkampftagArray.length){ + this.currentWettkampftagArray.pop(); + } + else { + for (let i = (wettkampftagToDelete.wettkampfTag + 1); i < this.currentWettkampftagArray.length; i++) { + this.currentWettkampftagArray[i].wettkampfTag--; + this.currentWettkampftagArray[i].id--; + this.currentWettkampftagArray[i - 1] = this.currentWettkampftagArray[i]; + this.wettkampfDataProvider.update(this.currentWettkampftagArray[i]); + } + } + } } From 2aa535f41ba61f3ebd1414d3c8e048cc45f913fb Mon Sep 17 00:00:00 2001 From: iremB Date: Thu, 1 Jul 2021 14:59:54 +0200 Subject: [PATCH 18/52] =?UTF-8?q?Wettkampftage=20l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wettkampftage/wettkampftage.component.ts | 7 +++---- bogenliga/src/assets/i18n/de.json | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 4f9d0f7cd..70f3486c3 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -47,9 +47,9 @@ import {EinstellungenDO} from '@verwaltung/types/einstellungen-do.class'; const ID_PATH_PARAM = 'id'; -const NOTIFICATION_DELETE_WETTKAMPFTAG = 'wettkampftag_detail_delete'; -const NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS = 'wettkampftag_detail_delete_success'; -const NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE = 'wettkampftag_detail_delete_failure'; +const NOTIFICATION_DELETE_WETTKAMPFTAG = 'wettkampftag_delete'; +const NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS = 'wettkampftag_delete_success'; +const NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE = 'wettkampftag_delete_failure'; const NOTIFICATION_DELETE_VERANSTALTUNG = 'veranstaltung_detail_delete'; const NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS = 'veranstaltung_detail_delete_success'; const NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE = 'veranstaltung_detail_delete_failure'; @@ -67,7 +67,6 @@ const wettkampfTagNotification: Notification = { userAction: NotificationUserAction.PENDING }; - // TODO: die Variable valid zur Steuerung disabled (SaveButton) ist global, ohne Funktion und unterscheidet nicht den // Status der Eingabefelder diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index c56cfc409..5d570be37 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1183,7 +1183,7 @@ }, "DELETE": { "TITLE": "Löschen", - "DESCRIPTION": "Wollen Sie den Wettkampftag mit der ID=%s wirklich löschen? ACHTUNG! Wenn Sie diesen Wettkampftag löschen werden alle Datensätze, die darauf referenzieren ebenfalls gelöscht!\"" + "DESCRIPTION": "Wollen Sie den Wettkampftag mit der ID=%s wirklich löschen? ACHTUNG! Wenn Sie diesen Wettkampftag löschen werden alle Datensätze, die darauf referenzieren ebenfalls gelöscht!" }, "ADD": { "TITLE": "Neu", From ff5a9f8aa3c421d90c5d661d78dbf51ed3a6efed Mon Sep 17 00:00:00 2001 From: Shohan-creator Date: Thu, 1 Jul 2021 15:25:01 +0200 Subject: [PATCH 19/52] changes on updateNumbersDelete --- .../wettkampftage/wettkampftage.component.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 70f3486c3..fc182523a 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -736,7 +736,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements } //Wettkampftag der gelöscht werden soll, muss hier übergeben werden - public updateNumbersDelete(wettkampftagToDelete:WettkampfDO){ + public async updateNumbersDelete(wettkampftagToDelete:WettkampfDO){ if(wettkampftagToDelete.wettkampfTag==this.currentWettkampftagArray.length){ this.currentWettkampftagArray.pop(); } @@ -745,9 +745,10 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.currentWettkampftagArray[i].wettkampfTag--; this.currentWettkampftagArray[i].id--; this.currentWettkampftagArray[i - 1] = this.currentWettkampftagArray[i]; - this.wettkampfDataProvider.update(this.currentWettkampftagArray[i]); + await this.wettkampfDataProvider.update(this.currentWettkampftagArray[i]); } } + this.loadDistinctWettkampf(); } } From 25910bd791b9661af43bb634eac791927a516a48 Mon Sep 17 00:00:00 2001 From: iremB Date: Thu, 1 Jul 2021 16:16:07 +0200 Subject: [PATCH 20/52] first try with deadline --- .../wettkampftage/wettkampftage.component.ts | 55 ++++++++++++------- bogenliga/src/assets/i18n/de.json | 4 ++ 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index fc182523a..0a66e4f0a 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -50,9 +50,6 @@ const ID_PATH_PARAM = 'id'; const NOTIFICATION_DELETE_WETTKAMPFTAG = 'wettkampftag_delete'; const NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS = 'wettkampftag_delete_success'; const NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE = 'wettkampftag_delete_failure'; -const NOTIFICATION_DELETE_VERANSTALTUNG = 'veranstaltung_detail_delete'; -const NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS = 'veranstaltung_detail_delete_success'; -const NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE = 'veranstaltung_detail_delete_failure'; const NOTIFICATION_SAVE_VERANSTALTUNG = 'veranstaltung_detail_save'; const NOTIFICATION_UPDATE_VERANSTALTUNG = 'veranstaltung_detail_update'; const NOTIFICATION_WETTKAMPFTAG_TOO_MANY = 'veranstaltung_detail_wettkampftage_failure'; @@ -401,20 +398,36 @@ export class WettkampftageComponent extends CommonComponentDirective implements type: NotificationType.YES_NO, userAction: NotificationUserAction.ACCEPTED }; - - this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG+ id) - .subscribe((myNotification) => { - - if (myNotification.userAction === NotificationUserAction.ACCEPTED) { - this.wettkampfDataProvider.deleteById(id) - .then((response) => this.handleDeleteSuccess(response)) - .catch((response) => this.handleDeleteFailure(response)); - } else if (myNotification.userAction === NotificationUserAction.DECLINED) { - this.deleteLoading = false; - } - }); - - this.notificationService.showNotification(notification); + let dateTime = new Date(); + let day = dateTime.getDate(); + let month = dateTime.getMonth()+1; + let year = dateTime.getFullYear(); + let currentDate = year +"-"+month+"-"+day; + if(this.currentVeranstaltung.meldeDeadline < currentDate){ + const notification_expired: Notification = { + id: NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS, + title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DEADLINE_EXPIRED.TITLE', + description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DEADLINE_EXPIRED.DESCRIPTION', + severity: NotificationSeverity.ERROR, + origin: NotificationOrigin.USER, + type: NotificationType.OK, + userAction: NotificationUserAction.PENDING + }; + this.notificationService.showNotification(notification_expired); + } else { + this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG + id) + .subscribe((myNotification) => { + + if (myNotification.userAction === NotificationUserAction.ACCEPTED) { + this.wettkampfDataProvider.deleteById(id) + .then((response) => this.handleDeleteSuccess(response)) + .catch((response) => this.handleDeleteFailure(response)); + } else if (myNotification.userAction === NotificationUserAction.DECLINED) { + this.deleteLoading = false; + } + }); + this.notificationService.showNotification(notification); + } } /* @@ -522,7 +535,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements private handleDeleteSuccess(response: BogenligaResponse): void { const notification: Notification = { - id: NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS, + id: NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_SUCCESS.TITLE', description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_SUCCESS.DESCRIPTION', severity: NotificationSeverity.INFO, @@ -531,7 +544,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements userAction: NotificationUserAction.PENDING }; - this.notificationService.observeNotification(NOTIFICATION_DELETE_VERANSTALTUNG_SUCCESS) + this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS) .subscribe((myNotification) => { if (myNotification.userAction === NotificationUserAction.ACCEPTED) { this.router.navigateByUrl('/verwaltung/veranstaltung'); @@ -545,7 +558,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements private handleDeleteFailure(response: BogenligaResponse): void { const notification: Notification = { - id: NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE, + id: NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_FAILURE.TITLE', description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE_FAILURE.DESCRIPTION', severity: NotificationSeverity.ERROR, @@ -554,7 +567,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements userAction: NotificationUserAction.PENDING }; - this.notificationService.observeNotification(NOTIFICATION_DELETE_VERANSTALTUNG_FAILURE) + this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG_FAILURE) .subscribe((myNotification) => { if (myNotification.userAction === NotificationUserAction.ACCEPTED) { this.deleteLoading = false; diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index 5d570be37..cd181437e 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1197,6 +1197,10 @@ "TITLE": "Fehler beim Löschen", "DESCRIPTION": "Der Wettkampftag konnte nicht gelöscht werden." }, + "DEADLINE_EXPIRED": { + "TITLE": "Meldedeadline abgelaufen", + "DESCRIPTION": "Die Meldedeadline ist abgelaufen. Sie können den Wettkampftag nicht mehr löschen." + }, "TOO_MANY": { "TITLE": "Zu viele Wettkampftage", "DESCRIPTION" : "Sie haben bereits die maximale Anzahl an Wettkampftagen hinzugefügt." From f1bd2b907ffaf74afb7e3bfafa41182ec0b6c880 Mon Sep 17 00:00:00 2001 From: iremB Date: Thu, 1 Jul 2021 17:20:48 +0200 Subject: [PATCH 21/52] =?UTF-8?q?Finished=20Wettkampftag=20l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wettkampftage/wettkampftage.component.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 0a66e4f0a..5ebc32189 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -398,12 +398,13 @@ export class WettkampftageComponent extends CommonComponentDirective implements type: NotificationType.YES_NO, userAction: NotificationUserAction.ACCEPTED }; + let dateTime = new Date(); - let day = dateTime.getDate(); - let month = dateTime.getMonth()+1; - let year = dateTime.getFullYear(); - let currentDate = year +"-"+month+"-"+day; - if(this.currentVeranstaltung.meldeDeadline < currentDate){ + let deadlineDate = new Date(this.currentVeranstaltung.meldeDeadline); + console.log(deadlineDate); + if(deadlineDate < dateTime){ + console.log(deadlineDate); + console.log(dateTime); const notification_expired: Notification = { id: NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DEADLINE_EXPIRED.TITLE', From 7fcdd8a4801d86f7bd6df259173afa0fbbb01f10 Mon Sep 17 00:00:00 2001 From: Shohan-creator Date: Thu, 1 Jul 2021 17:24:03 +0200 Subject: [PATCH 22/52] searching for error --- .../wettkampftage/wettkampftage.component.ts | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 5ebc32189..078ac3451 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -385,7 +385,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements public onDelete(wettkampfTagNumber: number, ignore: any): void { this.deleteLoading = true; this.notificationService.discardNotification(); - + const id = this.currentWettkampftagArray[wettkampfTagNumber].id; const notification: Notification = { @@ -723,7 +723,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements "", "", "", - "", + "00:00", this.anzahl, 1, 1, @@ -750,16 +750,20 @@ export class WettkampftageComponent extends CommonComponentDirective implements } //Wettkampftag der gelöscht werden soll, muss hier übergeben werden - public async updateNumbersDelete(wettkampftagToDelete:WettkampfDO){ - if(wettkampftagToDelete.wettkampfTag==this.currentWettkampftagArray.length){ - this.currentWettkampftagArray.pop(); + public async updateNumbersDelete(wettkampftagToDelete:number){ + this.loadDistinctWettkampf(); + + if(wettkampftagToDelete==this.selectedDTOs.length){ + this.selectedDTOs.pop(); } else { - for (let i = (wettkampftagToDelete.wettkampfTag + 1); i < this.currentWettkampftagArray.length; i++) { - this.currentWettkampftagArray[i].wettkampfTag--; - this.currentWettkampftagArray[i].id--; - this.currentWettkampftagArray[i - 1] = this.currentWettkampftagArray[i]; - await this.wettkampfDataProvider.update(this.currentWettkampftagArray[i]); + //Eig wettkampftagToDelete + 1 aber Array startet bei 0 + for (let i = wettkampftagToDelete; i <= this.selectedDTOs.length; i++) { + this.selectedDTOs[i].wettkampfTag = (this.selectedDTOs[i].wettkampfTag)-1; + this.selectedDTOs[i].id = (this.selectedDTOs[i].id) -1; + this.selectedDTOs[i - 1] = this.selectedDTOs[i]; + + await this.wettkampfDataProvider.update(this.selectedDTOs[i-1]); } } this.loadDistinctWettkampf(); From 65ad0942347a4c43dde255a016a0e8280f7f2339 Mon Sep 17 00:00:00 2001 From: iremB Date: Thu, 1 Jul 2021 17:47:39 +0200 Subject: [PATCH 23/52] =?UTF-8?q?L=C3=B6schen-Button=20nach=20links=20vers?= =?UTF-8?q?choben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wettkampftage.component.html | 30 ++++++------- .../wettkampftage/wettkampftage.component.ts | 42 +++---------------- 2 files changed, 21 insertions(+), 51 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index 91185be6c..611c25794 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -235,17 +235,17 @@
- +
-
-
+
+
- - - {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.SAVE' | translate }} + + + {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE.TITLE' | translate }}
@@ -254,12 +254,12 @@
- - - {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DELETE.TITLE' | translate }} + + + {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.SAVE' | translate }}
diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 078ac3451..84090fef6 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -382,11 +382,14 @@ export class WettkampftageComponent extends CommonComponentDirective implements } } + //method to delete a wettkampftag (if the deadline has expired, no wettkampftag will be deleted) public onDelete(wettkampfTagNumber: number, ignore: any): void { this.deleteLoading = true; this.notificationService.discardNotification(); const id = this.currentWettkampftagArray[wettkampfTagNumber].id; + let currentDate = new Date(); + let deadlineDate = new Date(this.currentVeranstaltung.meldeDeadline); const notification: Notification = { id: NOTIFICATION_DELETE_WETTKAMPFTAG+ id, @@ -399,12 +402,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements userAction: NotificationUserAction.ACCEPTED }; - let dateTime = new Date(); - let deadlineDate = new Date(this.currentVeranstaltung.meldeDeadline); - console.log(deadlineDate); - if(deadlineDate < dateTime){ - console.log(deadlineDate); - console.log(dateTime); + if(deadlineDate < currentDate){ const notification_expired: Notification = { id: NOTIFICATION_DELETE_WETTKAMPFTAG_SUCCESS, title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.WETTKAMPFTAG.NOTIFICATION.DEADLINE_EXPIRED.TITLE', @@ -414,7 +412,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements type: NotificationType.OK, userAction: NotificationUserAction.PENDING }; + this.notificationService.showNotification(notification_expired); + } else { this.notificationService.observeNotification(NOTIFICATION_DELETE_WETTKAMPFTAG + id) .subscribe((myNotification) => { @@ -431,36 +431,6 @@ export class WettkampftageComponent extends CommonComponentDirective implements } } - /* - public onDelete(ignore: any): void { - this.deleteLoading = true; - this.notificationService.discardNotification(); - const id = this.currentVeranstaltung.id; - - const notification: Notification = { - id: NOTIFICATION_DELETE_VERANSTALTUNG + id, - title: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE.TITLE', - description: 'MANAGEMENT.VERANSTALTUNG_DETAIL.NOTIFICATION.DELETE.DESCRIPTION', - descriptionParam: '' + id, - severity: NotificationSeverity.QUESTION, - origin: NotificationOrigin.USER, - type: NotificationType.YES_NO, - userAction: NotificationUserAction.PENDING - }; - - this.notificationService.observeNotification(NOTIFICATION_DELETE_VERANSTALTUNG + id) - .subscribe((myNotification) => { - - if (myNotification.userAction === NotificationUserAction.ACCEPTED) { - this.veranstaltungDataProvider.deleteById(id) - .then((response) => this.handleDeleteSuccess(response)) - .catch((response) => this.handleDeleteFailure(response)); - } - }); - - this.notificationService.showNotification(notification); - }*/ - public entityExists(): boolean { return this.currentVeranstaltung.id >= 0; } From d0e1a07a08950ec6a0d6af94bf33de1792ba7320 Mon Sep 17 00:00:00 2001 From: Sherna99 Date: Thu, 1 Jul 2021 22:36:58 +0200 Subject: [PATCH 24/52] ticket fix und verbesserte Form control in Wettkampftage --- .../wettkampftage/wettkampftage.component.html | 3 +++ bogenliga/src/assets/i18n/de.json | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index a3f35249c..bc93bf40e 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -101,6 +101,7 @@ Date: Fri, 2 Jul 2021 16:01:03 +0200 Subject: [PATCH 25/52] add extended Kampfrichter Files --- .../mapper/kampfrichter-extended-mapper.ts | 13 ++++++ .../kampfrichter-extended-dto.class.ts | 44 +++++++++++++++++++ .../types/kampfrichter-extended-dto.class.ts | 12 +++++ 3 files changed, 69 insertions(+) create mode 100644 bogenliga/src/app/modules/verwaltung/mapper/kampfrichter-extended-mapper.ts create mode 100644 bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts create mode 100644 bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts diff --git a/bogenliga/src/app/modules/verwaltung/mapper/kampfrichter-extended-mapper.ts b/bogenliga/src/app/modules/verwaltung/mapper/kampfrichter-extended-mapper.ts new file mode 100644 index 000000000..de2b15fd0 --- /dev/null +++ b/bogenliga/src/app/modules/verwaltung/mapper/kampfrichter-extended-mapper.ts @@ -0,0 +1,13 @@ +import {VersionedDataTransferObject} from '@shared/data-provider'; +import {kampfrichterExtendedDTO} from '../types/datatransfer/kampfrichter-extended-dto.class'; + + +export function fromPayloadExtended(payload: VersionedDataTransferObject): kampfrichterExtendedDTO { + return kampfrichterExtendedDTO.copyFrom(payload); +} + +export function fromPayloadArrayExtended(payload: VersionedDataTransferObject[]): kampfrichterExtendedDTO[] { + const list: kampfrichterExtendedDTO[] = []; + payload.forEach((single) => list.push(fromPayloadExtended(single))); + return list; +} diff --git a/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts b/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts new file mode 100644 index 000000000..d702c7777 --- /dev/null +++ b/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts @@ -0,0 +1,44 @@ +import {DataTransferObject} from '@shared/data-provider'; + +export class kampfrichterExtendedDTO implements DataTransferObject { + id: number; + vorname: string; + nachname: string; + email:string; + wettkampfID: number; + leitend: boolean; + version: number; + + // The attribute names of the optional have to be exactly the same as the getters in KampfrichterDTO.java + static copyFrom(optional: { + userID?: number; + vorname?: string; + nachname?: string; + email?: string; + wettkampfID?: number; + leitend?: boolean; + version?: number; + + } = {}): kampfrichterExtendedDTO { + const copy = new kampfrichterExtendedDTO(); + + // show '0' value + if (optional.userID >= 0) { + copy.id = optional.userID; + } else { + copy.id = null; + } + + if (optional.wettkampfID >= 0) { + copy.wettkampfID = optional.wettkampfID; + } else { + copy.wettkampfID = null; + } + + copy.email = optional.email; + copy.vorname = optional.vorname; + copy.nachname = optional.nachname; + copy.leitend = optional.leitend; + return copy; + } +} diff --git a/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts b/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts new file mode 100644 index 000000000..979f383df --- /dev/null +++ b/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts @@ -0,0 +1,12 @@ +import {VersionedDataObject} from '@shared/data-provider/models/versioned-data-object.interface'; + + +export class KampfrichterExtendedDO implements VersionedDataObject { + id: number; + wettkampfID: number; + leitend: boolean; + version: number; + vorname: string; + nachname: string; + email:string; +} From 0784f2bd64d2c0eb912bda37b8b5f9c4c7e8e019 Mon Sep 17 00:00:00 2001 From: janar96 Date: Fri, 2 Jul 2021 16:07:56 +0200 Subject: [PATCH 26/52] =?UTF-8?q?kampfrichter=20auswahl=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wettkampftage/wettkampftage.component.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index a3f35249c..c48e7821b 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -225,9 +225,9 @@ {{ 'MANAGEMENT.VERANSTALTUNG_DETAIL.FORM.KAMPFRICHTERLISTE.LABEL' | translate }} * - From 7c8aa0074c75278db626bb7df748ab8913e85b45 Mon Sep 17 00:00:00 2001 From: Energiner Date: Fri, 2 Jul 2021 16:22:05 +0200 Subject: [PATCH 27/52] changed logic for loading Kampfrichter --- .../wettkampftage/wettkampftage.component.ts | 71 ++++++++----------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 8158640d0..2be3e5d3a 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -44,6 +44,9 @@ import {SportjahrVeranstaltungDTO} from '@verwaltung/types/datatransfer/sportjah import {VeranstaltungDTO} from '@verwaltung/types/datatransfer/veranstaltung-dto.class'; import {EinstellungenProviderService} from '@verwaltung/services/einstellungen-data-provider.service'; import {EinstellungenDO} from '@verwaltung/types/einstellungen-do.class'; +import {RoleDTO} from '@verwaltung/types/datatransfer/role-dto.class'; +import {KampfrichterExtendedDO} from '@verwaltung/types/kampfrichter-extended-dto.class'; +import {kampfrichterExtendedDTO} from '@verwaltung/types/datatransfer/kampfrichter-extended-dto.class'; const ID_PATH_PARAM = 'id'; @@ -81,8 +84,6 @@ export class WettkampftageComponent extends CommonComponentDirective implements public currentVeranstaltung: VeranstaltungDO = new VeranstaltungDO(); public currentUser: UserProfileDO; public rows: TableRow[]; - private selectedVeranstaltungsId: number; - public currentWettkampftagDO: WettkampfDO; public currentWettkampftag: WettkampfDO = new WettkampfDO(); public currentWettkampftagArray: Array = []; @@ -98,10 +99,8 @@ export class WettkampftageComponent extends CommonComponentDirective implements public allDsbMitgliederWithKampfrichterLizenz: Array = []; public allUserWithKampfrichterLizenz: Array = []; - public kampfrichterTag: Array> = []; - public initiallySelectedKampfrichterTag: Array> = []; - public selectedKampfrichterTag: Array> = []; - public notSelectedKampfrichterWettkampfTag: Array> = []; + public notSelectedKampfrichter: Array> = []; + public selectedKampfrichter: Array> = []; text = '. Wettkampftag'; @@ -226,27 +225,27 @@ export class WettkampftageComponent extends CommonComponentDirective implements public updateKampfrichter(wettkampfTagNumber: number, wettkampfID: number): void{ - let currentWettkampftag: WettkampfDO; - let kampfrichterUserToSave: Array = []; - let kampfrichterUserToDelete: Array = []; + let kampfrichterExtendedToSave: Array = []; + let kampfrichterExtendedToDelete: Array = []; - currentWettkampftag = this.currentWettkampftagArray[wettkampfTagNumber]; - kampfrichterUserToSave = this.selectedKampfrichterTag[wettkampfTagNumber].filter(comparer(this.initiallySelectedKampfrichterTag[wettkampfTagNumber])); - kampfrichterUserToDelete = this.initiallySelectedKampfrichterTag[wettkampfTagNumber].filter(comparer(this.selectedKampfrichterTag[wettkampfTagNumber])); + kampfrichterExtendedToSave = this.selectedKampfrichter[wettkampfTagNumber].filter(comparer(this.notSelectedKampfrichter[wettkampfTagNumber])); + kampfrichterExtendedToDelete = this.notSelectedKampfrichter[wettkampfTagNumber].filter(comparer(this.selectedKampfrichter[wettkampfTagNumber])); + + //EXTENDED -> REGULAR DO const kampfrichterToSave: Array = []; - for (const i of Object.keys(kampfrichterUserToSave)) { + for (const i of Object.keys(kampfrichterExtendedToSave)) { kampfrichterToSave.push(new KampfrichterDO()); - kampfrichterToSave[i].id = kampfrichterUserToSave[i].id; + kampfrichterToSave[i].id = kampfrichterExtendedToSave[i].id; kampfrichterToSave[i].wettkampfID = wettkampfID; kampfrichterToSave[i].leitend = false; } const kampfrichterToDelete: Array = []; - for (const i of Object.keys(kampfrichterUserToDelete)) { + for (const i of Object.keys(kampfrichterExtendedToDelete)) { kampfrichterToDelete.push(new KampfrichterDO()); - kampfrichterToDelete[i].id = kampfrichterUserToDelete[i].id; - kampfrichterToDelete[i].wettkampfID = currentWettkampftag.id; + kampfrichterToDelete[i].id = kampfrichterExtendedToDelete[i].id; + kampfrichterToDelete[i].wettkampfID = wettkampfID; kampfrichterToDelete[i].leitend = false; } @@ -448,11 +447,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements } private loadKampfrichter() { - this.kampfrichterProvider.findAll() - .then((response: BogenligaResponse) => this.handleKampfrichterResponseArraySuccess( - response - )) - .catch((response: BogenligaResponse) => this.handleKampfrichterResponseArrayFailure(response)); + this.kampfrichterProvider.findExtendedByIdNotAssignedToId(this.currentWettkampftag.id) + .then((response: BogenligaResponse) => this.handleKampfrichterResponseArraySuccess(response)) + .catch(() => this.handleKampfrichterResponseArrayFailure()); } private loadWettkampf() { @@ -592,33 +589,22 @@ export class WettkampftageComponent extends CommonComponentDirective implements } - private handleKampfrichterResponseArraySuccess(response: BogenligaResponse): void{ - let allKampfrichter: Array = []; - allKampfrichter = response.payload; - let tempKampfrichter: Array = []; - let tempNotSelectedKampfrichterTag: Array = []; + private handleKampfrichterResponseArraySuccess(response: BogenligaResponse): void{ - for(let i = 1; i<=allKampfrichter.length; i++){ - this.kampfrichterTag[i]= []; - tempKampfrichter = this.kampfrichterTag[i]; - tempNotSelectedKampfrichterTag = this.notSelectedKampfrichterWettkampfTag[i]; + this.selectedKampfrichter[this.selectedWettkampfTag]= []; + this.notSelectedKampfrichter[this.selectedWettkampfTag] = [] - allKampfrichter.filter((kampfrichter) => kampfrichter.wettkampfID === this.currentWettkampftagArray[i].id).forEach((kampfrichter) => this.kampfrichterTag[i].push(Object.assign({}, kampfrichter))); + this.notSelectedKampfrichter[this.selectedWettkampfTag] = response.payload; //links - if (tempKampfrichter[0] !== undefined) { - for (const iter of Object.keys(this.kampfrichterTag[i])) { - this.initiallySelectedKampfrichterTag[i].push(this.allUserWithKampfrichterLizenz.filter((user) => user.id === this.kampfrichterTag[iter].id)[0]); - } - } + this.kampfrichterProvider.findExtendedByIdAssignedToId(this.currentWettkampftag.id).then(reply=>{ + this.selectedKampfrichter[this.selectedWettkampfTag] = reply.payload; //rechts + }).catch(() => this.handleKampfrichterResponseArrayFailure()); - this.initiallySelectedKampfrichterTag[i].forEach((val) => this.selectedKampfrichterTag[i].push(Object.assign({}, val))); - tempNotSelectedKampfrichterTag = this.allUserWithKampfrichterLizenz.filter((user) => this.initiallySelectedKampfrichterTag[i].indexOf(user) < 0); - this.notSelectedKampfrichterWettkampfTag[i] = tempNotSelectedKampfrichterTag; - } this.loading = false; } - private handleKampfrichterResponseArrayFailure(response: BogenligaResponse): void { + private handleKampfrichterResponseArrayFailure(): void { + console.log("KampfrichterResponseArrayFailure"); this.loading = false; } @@ -659,6 +645,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements console.log('onSelect Dialog: ' + this.selectedWettkampfTag); this.loadWettkampf(); this.loadDistinctWettkampf(); + this.loadKampfrichter(); } //create an empty Wettkampftag From 833b15c59f91891086f70d463377ca6f0ec07fd9 Mon Sep 17 00:00:00 2001 From: muelleyv Date: Fri, 2 Jul 2021 16:24:22 +0200 Subject: [PATCH 28/52] =?UTF-8?q?Backendaufruf=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kampfrichter-data-provider.service.ts | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts b/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts index 96a553656..8e7e2760c 100644 --- a/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts +++ b/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts @@ -10,8 +10,9 @@ import { } from '../../shared/data-provider'; import {CurrentUserService} from '@shared/services'; import {fromPayload, fromPayloadArray} from '../mapper/kampfrichter-mapper'; +import {fromPayloadExtended, fromPayloadArrayExtended} from '../mapper/kampfrichter-extended-mapper'; import {KampfrichterDO} from '../types/kampfrichter-do.class'; -import {KampfrichterDTO} from '@verwaltung/types/datatransfer/kampfrichter-dto.class'; +import {KampfrichterExtendedDO} from '../types/kampfrichter-extended-dto.class'; @Injectable({ providedIn: 'root' @@ -105,6 +106,47 @@ export class KampfrichterProviderService extends DataProviderService { }); } + public findExtendedByIdNotAssignedToId(id: string | number): Promise> { + // return promise + // sign in success -> resolve promise + // sign in failure -> reject promise with result + return new Promise((resolve, reject) => { + this.restClient.GET>(new UriBuilder().fromPath(this.getUrl()).path("NotAssignedKampfrichter/"+id).build()) + .then((data: VersionedDataTransferObject[]) => { + resolve({result: RequestResult.SUCCESS, payload: fromPayloadArrayExtended(data)}); + }, (error: HttpErrorResponse) => { + + if (error.status === 0) { + reject({result: RequestResult.CONNECTION_PROBLEM}); + } else { + reject({result: RequestResult.FAILURE}); + } + }); + }); + + } + + public findExtendedByIdAssignedToId(id: string | number): Promise> { + // return promise + // sign in success -> resolve promise + // sign in failure -> reject promise with result + return new Promise((resolve, reject) => { + this.restClient.GET>(new UriBuilder().fromPath(this.getUrl()).path("AssignedKampfrichter/"+id).build()) + .then((data: VersionedDataTransferObject[]) => { + resolve({result: RequestResult.SUCCESS, payload: fromPayloadArrayExtended(data)}); + }, (error: HttpErrorResponse) => { + + if (error.status === 0) { + reject({result: RequestResult.CONNECTION_PROBLEM}); + } else { + reject({result: RequestResult.FAILURE}); + } + }); + }); + + } + + // public update(payload: VersionedDataTransferObject): Promise> { // DO or DTO? Probably DO. // console.log('KampfrichterProviderService:'); // console.log(payload); @@ -148,3 +190,4 @@ export class KampfrichterProviderService extends DataProviderService { }); } } + From 0e7ed1a6f1ddf0ab38172ff6bddcbc80dbb8c669 Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Fri, 2 Jul 2021 18:42:13 +0200 Subject: [PATCH 29/52] add combined vor+nachname to KampfrichterDTO --- .../wettkampftage/wettkampftage.component.html | 2 +- .../datatransfer/kampfrichter-extended-dto.class.ts | 11 +++++++---- ...dto.class.ts => kampfrichter-extended-do.class.ts} | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) rename bogenliga/src/app/modules/verwaltung/types/{kampfrichter-extended-dto.class.ts => kampfrichter-extended-do.class.ts} (92%) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html index 9ca020fba..ef306df3f 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.html @@ -230,7 +230,7 @@ diff --git a/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts b/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts index d702c7777..c9617e7d4 100644 --- a/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts +++ b/bogenliga/src/app/modules/verwaltung/types/datatransfer/kampfrichter-extended-dto.class.ts @@ -8,16 +8,18 @@ export class kampfrichterExtendedDTO implements DataTransferObject { wettkampfID: number; leitend: boolean; version: number; + vorNachName: string; // The attribute names of the optional have to be exactly the same as the getters in KampfrichterDTO.java static copyFrom(optional: { userID?: number; - vorname?: string; - nachname?: string; + kampfrichterVorname?: string; + kampfrichterNachname?: string; email?: string; wettkampfID?: number; leitend?: boolean; version?: number; + vorNachName?: string; } = {}): kampfrichterExtendedDTO { const copy = new kampfrichterExtendedDTO(); @@ -36,9 +38,10 @@ export class kampfrichterExtendedDTO implements DataTransferObject { } copy.email = optional.email; - copy.vorname = optional.vorname; - copy.nachname = optional.nachname; + copy.vorname = optional.kampfrichterVorname; + copy.nachname = optional.kampfrichterNachname; copy.leitend = optional.leitend; + copy.vorNachName = optional.kampfrichterVorname + ' ' + optional.kampfrichterNachname; return copy; } } diff --git a/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts b/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-do.class.ts similarity index 92% rename from bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts rename to bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-do.class.ts index 979f383df..f5dfd2fa2 100644 --- a/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-dto.class.ts +++ b/bogenliga/src/app/modules/verwaltung/types/kampfrichter-extended-do.class.ts @@ -9,4 +9,5 @@ export class KampfrichterExtendedDO implements VersionedDataObject { vorname: string; nachname: string; email:string; + vorNachName : string; } From d29decda7b9bf1f8d38164350e1e81a55ed70c20 Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Fri, 2 Jul 2021 18:43:00 +0200 Subject: [PATCH 30/52] fix KampfrichterExtendedDO Import --- .../verwaltung/services/kampfrichter-data-provider.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts b/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts index 8e7e2760c..00dd21b41 100644 --- a/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts +++ b/bogenliga/src/app/modules/verwaltung/services/kampfrichter-data-provider.service.ts @@ -12,7 +12,7 @@ import {CurrentUserService} from '@shared/services'; import {fromPayload, fromPayloadArray} from '../mapper/kampfrichter-mapper'; import {fromPayloadExtended, fromPayloadArrayExtended} from '../mapper/kampfrichter-extended-mapper'; import {KampfrichterDO} from '../types/kampfrichter-do.class'; -import {KampfrichterExtendedDO} from '../types/kampfrichter-extended-dto.class'; +import {KampfrichterExtendedDO} from '../types/kampfrichter-extended-do.class'; @Injectable({ providedIn: 'root' From 2e0c0721ee55693760fce3e6ffc12e7d00c1bedb Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Fri, 2 Jul 2021 18:44:48 +0200 Subject: [PATCH 31/52] change Kampfrichterprovider from currentWettkampftag to selectedWettkampftag --- .../wettkampftage/wettkampftage.component.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 2be3e5d3a..20a041fdc 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -45,7 +45,7 @@ import {VeranstaltungDTO} from '@verwaltung/types/datatransfer/veranstaltung-dto import {EinstellungenProviderService} from '@verwaltung/services/einstellungen-data-provider.service'; import {EinstellungenDO} from '@verwaltung/types/einstellungen-do.class'; import {RoleDTO} from '@verwaltung/types/datatransfer/role-dto.class'; -import {KampfrichterExtendedDO} from '@verwaltung/types/kampfrichter-extended-dto.class'; +import {KampfrichterExtendedDO} from '@verwaltung/types/kampfrichter-extended-do.class'; import {kampfrichterExtendedDTO} from '@verwaltung/types/datatransfer/kampfrichter-extended-dto.class'; @@ -110,6 +110,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements public anzahl: number = 0; public maxWettkampftageEinstellungenDO: EinstellungenDO = new EinstellungenDO(); public maxWettkampftageID: number = 8; + public selectedWettkampf: WettkampfDO; constructor( private veranstaltungDataProvider: VeranstaltungDataProviderService, @@ -447,7 +448,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements } private loadKampfrichter() { - this.kampfrichterProvider.findExtendedByIdNotAssignedToId(this.currentWettkampftag.id) + this.kampfrichterProvider.findExtendedByIdNotAssignedToId(this.selectedWettkampf.id) .then((response: BogenligaResponse) => this.handleKampfrichterResponseArraySuccess(response)) .catch(() => this.handleKampfrichterResponseArrayFailure()); } @@ -596,7 +597,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.notSelectedKampfrichter[this.selectedWettkampfTag] = response.payload; //links - this.kampfrichterProvider.findExtendedByIdAssignedToId(this.currentWettkampftag.id).then(reply=>{ + this.kampfrichterProvider.findExtendedByIdAssignedToId(this.selectedWettkampf.id).then(reply=>{ this.selectedKampfrichter[this.selectedWettkampfTag] = reply.payload; //rechts }).catch(() => this.handleKampfrichterResponseArrayFailure()); @@ -641,7 +642,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements //onSelect for SelectionList in html-file, loads currently selected Wettkampftag public onSelect($event: WettkampfDO[]): void { + console.log("selected:",$event); this.selectedWettkampfTag = $event[0].wettkampfTag; + this.selectedWettkampf = $event[0]; console.log('onSelect Dialog: ' + this.selectedWettkampfTag); this.loadWettkampf(); this.loadDistinctWettkampf(); From c7fd5092e5f769289feb55f4e980b0d3da780158 Mon Sep 17 00:00:00 2001 From: jschaenz <2000jojos@googlemail.com> Date: Fri, 2 Jul 2021 20:25:35 +0200 Subject: [PATCH 32/52] added delete&save functionality for Kampfrichter --- .../wettkampftage/wettkampftage.component.ts | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 20a041fdc..e118fa2aa 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -102,6 +102,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements public notSelectedKampfrichter: Array> = []; public selectedKampfrichter: Array> = []; + public selectedKampfrichterBeforeSave: Array> = []; + public notSelectedKampfrichterBeforeSave: Array> = []; + text = '. Wettkampftag'; public selectedDTOs: WettkampfDO[]; @@ -229,8 +232,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements let kampfrichterExtendedToSave: Array = []; let kampfrichterExtendedToDelete: Array = []; - kampfrichterExtendedToSave = this.selectedKampfrichter[wettkampfTagNumber].filter(comparer(this.notSelectedKampfrichter[wettkampfTagNumber])); - kampfrichterExtendedToDelete = this.notSelectedKampfrichter[wettkampfTagNumber].filter(comparer(this.selectedKampfrichter[wettkampfTagNumber])); + + kampfrichterExtendedToSave = this.selectedKampfrichter[wettkampfTagNumber].filter(comparer(this.selectedKampfrichterBeforeSave[wettkampfTagNumber])); + kampfrichterExtendedToDelete = this.notSelectedKampfrichter[wettkampfTagNumber].filter(comparer(this.notSelectedKampfrichterBeforeSave[wettkampfTagNumber])); //EXTENDED -> REGULAR DO @@ -250,6 +254,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements kampfrichterToDelete[i].leitend = false; } + if (kampfrichterToSave.length > 0) { console.log(kampfrichterToSave.length); this.saveKampfrichterArray(kampfrichterToSave); @@ -444,7 +449,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements private loadUser() { this.userRolleProvider.findAll() .then((response: BogenligaResponse) => this.handleUserRolleResponseArraySuccess(response)) - .catch((response: BogenligaResponse) => this.handleUserRolleResponseArrayFailure(response)).then(() => this.loadKampfrichter()); + .catch((response: BogenligaResponse) => this.handleUserRolleResponseArrayFailure(response)).then(); } private loadKampfrichter() { @@ -590,17 +595,29 @@ export class WettkampftageComponent extends CommonComponentDirective implements } - private handleKampfrichterResponseArraySuccess(response: BogenligaResponse): void{ + private async handleKampfrichterResponseArraySuccess(response: BogenligaResponse): Promise { + + this.selectedKampfrichterBeforeSave[this.selectedWettkampfTag] = []; + this.notSelectedKampfrichterBeforeSave[this.selectedWettkampfTag] = []; this.selectedKampfrichter[this.selectedWettkampfTag]= []; this.notSelectedKampfrichter[this.selectedWettkampfTag] = [] this.notSelectedKampfrichter[this.selectedWettkampfTag] = response.payload; //links - this.kampfrichterProvider.findExtendedByIdAssignedToId(this.selectedWettkampf.id).then(reply=>{ + await this.kampfrichterProvider.findExtendedByIdAssignedToId(this.selectedWettkampf.id).then(reply=>{ this.selectedKampfrichter[this.selectedWettkampfTag] = reply.payload; //rechts }).catch(() => this.handleKampfrichterResponseArrayFailure()); + + this.selectedKampfrichter[this.selectedWettkampfTag].forEach(x=>{ + this.selectedKampfrichterBeforeSave[this.selectedWettkampfTag].push(x); + }) + + this.notSelectedKampfrichter[this.selectedWettkampfTag].forEach(x=>{ + this.notSelectedKampfrichterBeforeSave[this.selectedWettkampfTag].push(x); + }) + this.loading = false; } From 352d638fc5298e42e2c8679a3e80f73ad225d940 Mon Sep 17 00:00:00 2001 From: Sherna99 Date: Fri, 2 Jul 2021 20:58:26 +0200 Subject: [PATCH 33/52] imput pattern changed in two files --- .../dsb-mitglied-detail.component.html | 18 ++++-------------- .../wettkampftage/wettkampftage.component.html | 6 +++--- bogenliga/src/assets/i18n/de.json | 4 ++-- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html b/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html index 2f857c8de..5b17cc0c9 100644 --- a/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html @@ -16,6 +16,7 @@ *
- - -
{{ 'MANAGEMENT.DSBMITGLIEDER_DETAIL.FORM.VEREIN.ERROR' | translate }}
+
-
+ +
+
- +
- +
diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index 331055ddb..a40b9b655 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -1429,12 +1429,12 @@ "WETTKAMPF_JAHRGANG_MIN": { "LABEL": "Wettkampf Jahrgang von", "PLACEHOLDER": "Bitte ein Jahrgang eingeben", - "ERROR": "Bitte einen gültigen Jahrgang eingeben." + "ERROR": "Bitte einen gültigen Jahrgang eingeben (genau 4 Zahlen)." }, "WETTKAMPF_JAHRGANG_MAX": { "LABEL": "Wettkampf Jahrgang bis", "PLACEHOLDER": "Bitte einen Jahrgang eingeben", - "ERROR": "Bitte einen gültigen Jahrgang eingeben." + "ERROR": "Bitte einen gültigen Jahrgang eingeben (genau 4 Zahlen)." }, "WETTKAMPF_NR": { "LABEL": "Nummer der Wettkampfklasse", From 4701923d107a61cdbaa3cf0f007c9db4d1e32a11 Mon Sep 17 00:00:00 2001 From: Till-G <73269706+Till-G@users.noreply.github.com> Date: Mon, 5 Jul 2021 15:10:10 +0200 Subject: [PATCH 48/52] Update README.md removed extra 'g' from Einstieg --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f01a3f88..46aeb8340 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ SWT2 - Bogenliga Application - Angular Oberfläche Ein Beispiel ist unter [GitHub Demo Seite](https://exxcellent.github.io/swt2-bsa-frontend/) verfügbar. -## Einstiegg +## Einstieg Zum Starten der Anwendung führe folgede Befehle aus: From e8399249c2965a29709d92d4b50317682396fd53 Mon Sep 17 00:00:00 2001 From: Sherna99 Date: Mon, 5 Jul 2021 15:12:30 +0200 Subject: [PATCH 49/52] quick fix and clean up --- .../dsb-mitglied-detail/dsb-mitglied-detail.component.html | 2 +- .../verein/verein-detail/verein-detail.component.html | 2 +- .../wettkampfklasse-detail.component.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html b/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html index ce74e028c..f9ed9d8fe 100644 --- a/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html +++ b/bogenliga/src/app/modules/verwaltung/components/dsb-mitglied/dsb-mitglied-detail/dsb-mitglied-detail.component.html @@ -92,7 +92,7 @@ Date: Mon, 5 Jul 2021 15:22:34 +0200 Subject: [PATCH 50/52] Bugfix: Wettkampftage falsch abgespeichert, Bugfix: UpdateNummerierung --- .../wettkampftage/wettkampftage.component.ts | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 777564eb9..0b1bd3ac0 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -199,6 +199,9 @@ export class WettkampftageComponent extends CommonComponentDirective implements let currentWettkampfTag: WettkampfDO; let currentAusrichter: UserProfileDO; + this.loadWettkampf(); + this.currentWettkampftagArray.forEach(element => {if(element.wettkampfTag == wettkampfTagNumber){currentWettkampfTag = element;}}); + currentWettkampfTag = this.currentWettkampftagArray[wettkampfTagNumber]; currentAusrichter = this.currentAusrichter[wettkampfTagNumber]; currentWettkampfTag.wettkampfTag = wettkampfTagNumber; @@ -401,6 +404,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.notificationService.discardNotification(); const id = this.currentWettkampftagArray[wettkampfTagNumber].id; + this.updateNumbersDelete(); let currentDate = new Date(); let deadlineDate = new Date(this.currentVeranstaltung.meldeDeadline); @@ -737,24 +741,32 @@ export class WettkampftageComponent extends CommonComponentDirective implements return true; } - //Wettkampftag der gelöscht werden soll, muss hier übergeben werden - public async updateNumbersDelete(wettkampftagToDelete:number){ + //Wenn nicht alle Felder von allen Wettkampftagen befüllt sind, gibt es einen Error + public async updateNumbersDelete(): Promise{ + //TODO Alle existierende Wettkampftage müssen komplett ausgefüllt und abgespeichert sein, Wenn ein Attribut fehlt, funktioniert die Updatefunktion nicht + + this.loadWettkampf(); this.loadDistinctWettkampf(); - if(wettkampftagToDelete==this.selectedDTOs.length){ - this.selectedDTOs.pop(); - } - else { - //Eig wettkampftagToDelete + 1 aber Array startet bei 0 - for (let i = wettkampftagToDelete; i <= this.selectedDTOs.length; i++) { - this.selectedDTOs[i].wettkampfTag = (this.selectedDTOs[i].wettkampfTag)-1; - this.selectedDTOs[i].id = (this.selectedDTOs[i].id) -1; - this.selectedDTOs[i - 1] = this.selectedDTOs[i]; - - await this.wettkampfDataProvider.update(this.selectedDTOs[i-1]); + if(this.selectedWettkampfTag!=this.currentWettkampftagArray.length){ //Wenn letzter Wettkampftag gelöscht werden soll, muss Nummerierung nicht angepasst werden + for (let i = this.selectedWettkampfTag +1; i < this.currentWettkampftagArray.length; i++) { //Man beginnt im Array, ein Tag weiter als der aktuelle (Welcher gelöscht werden soll) + console.log("Wettkampftag vorher: " + this.currentWettkampftagArray[i].wettkampfTag); + console.log("i = "+ i); + this.currentWettkampftagArray[i].wettkampfTag --; //Wettkampftagnummer wird dekrementiert + + console.log("Wettkampftag danach: " + this.currentWettkampftagArray[i].wettkampfTag); + + if(this.currentWettkampftagArray[i].wettkampfTag==null) { + console.log("wettkampf doesnt exist"); + } + else{ + await this.wettkampfDataProvider.update(this.currentWettkampftagArray[i]); //Wettkampftag mit aktualisierter Wettkampftagnummer speichern + this.currentWettkampftagArray[i - 1] = this.currentWettkampftagArray[i]; //Position im Array verschieben + } } } this.loadDistinctWettkampf(); + return true; } //Creates Copy of current Wettkampftag From 3faf19c523d616d07be0e8d32c0fb583d57dd29b Mon Sep 17 00:00:00 2001 From: Shohan-creator Date: Mon, 5 Jul 2021 15:38:21 +0200 Subject: [PATCH 51/52] small bugfix --- .../wettkampftage/wettkampftage.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts index 0b1bd3ac0..c8c188e34 100644 --- a/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/veranstaltung/veranstaltung-detail/wettkampftage/wettkampftage.component.ts @@ -193,8 +193,6 @@ export class WettkampftageComponent extends CommonComponentDirective implements public async saveWettkaempfe(wettkampfTagNumber: number): Promise { this.anzahl++; - this.currentWettkampftagArray.push(new WettkampfDO()); - this.currentAusrichter.push(new UserProfileDO()); let currentWettkampfTag: WettkampfDO; let currentAusrichter: UserProfileDO; @@ -404,7 +402,7 @@ export class WettkampftageComponent extends CommonComponentDirective implements this.notificationService.discardNotification(); const id = this.currentWettkampftagArray[wettkampfTagNumber].id; - this.updateNumbersDelete(); + this.updateNumbersDelete(); let currentDate = new Date(); let deadlineDate = new Date(this.currentVeranstaltung.meldeDeadline); From 01e2d4de4967137e7010a8aac26f6e510721c911 Mon Sep 17 00:00:00 2001 From: TobiasSeidel86 Date: Wed, 7 Jul 2021 19:34:40 +0200 Subject: [PATCH 52/52] BSAPP-957 Anpassung Klasse "Verein-detail.component.ts" und JSOn Dateien --- .../verein/verein-detail/verein-detail.component.ts | 12 ++++++++++++ bogenliga/src/assets/i18n/de.json | 5 +++++ bogenliga/src/assets/i18n/en.json | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/verein-detail.component.ts b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/verein-detail.component.ts index 7cf36a601..b26387b25 100644 --- a/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/verein-detail.component.ts +++ b/bogenliga/src/app/modules/verwaltung/components/verein/verein-detail/verein-detail.component.ts @@ -192,6 +192,18 @@ export class VereinDetailComponent extends CommonComponentDirective implements O this.notificationService.showNotification(notification); } }, (response: BogenligaResponse) => { + const notification: Notification = { + id: NOTIFICATION_UPDATE_VEREIN, + title: 'MANAGEMENT.VEREIN_DETAIL.NOTIFICATION.SAVE_FAILURE.TITLE', + description: 'MANAGEMENT.VEREIN_DETAIL.NOTIFICATION.SAVE_FAILURE.DESCRIPTION', + severity: NotificationSeverity.INFO, + origin: NotificationOrigin.USER, + type: NotificationType.OK, + userAction: NotificationUserAction.PENDING + }; + this.notificationService.showNotification(notification); + + console.log('Failed'); this.saveLoading = false; }); diff --git a/bogenliga/src/assets/i18n/de.json b/bogenliga/src/assets/i18n/de.json index 7d2f25db8..d78c026cf 100644 --- a/bogenliga/src/assets/i18n/de.json +++ b/bogenliga/src/assets/i18n/de.json @@ -781,6 +781,10 @@ "DUPLICATE": { "TITLE": "Mannschaftsnummer in dem Verein bereits vergeben!", "DESCRIPTION": "Möchten sie die Mannschaft trotzdem hinzufügen?" + }, + "SAVE_FAILURE": { + "TITLE": "Fehler beim aktualisieren", + "DESCRIPTION": "Sportleiter hat keine Berechtigung über den ausgewählten Verein oder die Zielregion." } } }, @@ -796,6 +800,7 @@ "REGION_SUPERORDINATE": "Übergeordnete Region" } }, + "NOTIFICATION": { "DELETE": { "TITLE": "Region löschen", diff --git a/bogenliga/src/assets/i18n/en.json b/bogenliga/src/assets/i18n/en.json index 9b05065d3..530d78e1a 100644 --- a/bogenliga/src/assets/i18n/en.json +++ b/bogenliga/src/assets/i18n/en.json @@ -770,6 +770,10 @@ "DUPLICATE": { "TITLE": "Team-number already in use!", "DESCRIPTION": "Add team anyway?" + }, + "SAVE_FAILURE": { + "TITLE": "Error while saving", + "DESCRIPTION": "Sports director has no authority over this club or this target region." } } },