fix: additional bug fixes in OverlayComponent
This commit is contained in:
parent
0e0e2db776
commit
0be9f98cca
6 changed files with 209 additions and 230 deletions
|
|
@ -83,13 +83,13 @@ export class AddTaskComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadExistingTaskData() {
|
async loadExistingTaskData() {
|
||||||
if (this.overlayData) {
|
if (this.overlayType === 'newTaskOverlay') {
|
||||||
|
this.taskData.status = this.overlayData;
|
||||||
|
} else if (this.overlayData) {
|
||||||
const taskData = await firstValueFrom(this.getTaskData(this.overlayData));
|
const taskData = await firstValueFrom(this.getTaskData(this.overlayData));
|
||||||
if (taskData) {
|
if (taskData) {
|
||||||
this.taskData = { ...this.taskData, ...taskData };
|
this.taskData = { ...this.taskData, ...taskData };
|
||||||
}
|
}
|
||||||
} else if (this.overlayType === 'newTaskOverlay') {
|
|
||||||
this.taskData.status = this.overlayData;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
>
|
>
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn" type="submit" (click)="addNewTaskOverlay('none')">
|
<button class="btn" type="submit" (click)="addNewTaskOverlay(TODO)">
|
||||||
<div class="btn-inside">
|
<div class="btn-inside">
|
||||||
<span>{{ "board.addTask" | translate }}</span>
|
<span>{{ "board.addTask" | translate }}</span>
|
||||||
<img src="./../../../assets/img/board/add_white.svg" alt="check" />
|
<img src="./../../../assets/img/board/add_white.svg" alt="check" />
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
<section>
|
<form
|
||||||
<form
|
|
||||||
(ngSubmit)="onSubmit(contactForm)"
|
(ngSubmit)="onSubmit(contactForm)"
|
||||||
(keyup)="updateFormData()"
|
(keyup)="updateFormData()"
|
||||||
#contactForm="ngForm"
|
#contactForm="ngForm"
|
||||||
onsubmit="return false"
|
onsubmit="return false"
|
||||||
class="contact-formular"
|
class="contact-formular"
|
||||||
>
|
>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<input
|
<input
|
||||||
id="firstName"
|
id="firstName"
|
||||||
|
|
@ -92,11 +91,11 @@
|
||||||
@if(!email.valid && email.touched &&
|
@if(!email.valid && email.touched &&
|
||||||
!checkIfUserEmailIsValid(contactData.email)) {
|
!checkIfUserEmailIsValid(contactData.email)) {
|
||||||
<p>{{ "contactDialogForm.invalidMail0" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidMail0" | translate }}</p>
|
||||||
} @else { @if (email.touched &&
|
} @else { @if (email.touched && !checkIfUserEmailIsValid(contactData.email))
|
||||||
!checkIfUserEmailIsValid(contactData.email)) {
|
{
|
||||||
<p>{{ "contactDialogForm.invalidMail1" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidMail1" | translate }}</p>
|
||||||
} @else { @if (existEmailOnServer(contactData.email) &&
|
} @else { @if (existEmailOnServer(contactData.email) && !contactData.email)
|
||||||
!contactData.email) {
|
{
|
||||||
<p>{{ "contactDialogForm.invalidMail2" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidMail2" | translate }}</p>
|
||||||
} } }
|
} } }
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -152,8 +151,7 @@
|
||||||
"
|
"
|
||||||
></app-form-btn>
|
></app-form-btn>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Confirm dialog -->
|
<!-- Confirm dialog -->
|
||||||
<app-confirm-dialog
|
<app-confirm-dialog
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
@if (overlayData !== "new") {
|
@if (overlayData !== "new") {
|
||||||
<section class="overlay">
|
|
||||||
<div class="dialog">
|
<div class="overlay">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<img src="./../../../../assets/img/logo.svg" alt="" />
|
<img src="./../../../../assets/img/logo.svg" alt="" />
|
||||||
<p>{{ "contacts.editContact" | translate }}</p>
|
<p>{{ "contacts.editContact" | translate }}</p>
|
||||||
|
|
@ -33,11 +33,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="notice">{{ "contacts.notice" | translate }}</div>
|
<div class="notice">{{ "contacts.notice" | translate }}</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
} @else {
|
} @else {
|
||||||
<section class="overlay">
|
|
||||||
<div class="dialog">
|
<div class="overlay">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<img src="./../../../../assets/img/logo.svg" alt="" />
|
<img src="./../../../../assets/img/logo.svg" alt="" />
|
||||||
<p>{{ "contacts.addContact" | translate }}</p>
|
<p>{{ "contacts.addContact" | translate }}</p>
|
||||||
|
|
@ -64,6 +63,5 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="notice">{{ "contacts.notice" | translate }}</div>
|
<div class="notice">{{ "contacts.notice" | translate }}</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,4 @@
|
||||||
section {
|
.overlay {
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog {
|
|
||||||
background-color: var(--white);
|
background-color: var(--white);
|
||||||
width: 760px;
|
width: 760px;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
|
||||||
|
|
@ -59,19 +59,15 @@ export class OverlayComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('document:click', ['$event'])
|
@HostListener('document:click', ['$event'])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a click event occurred within the overlay but outside the content or dialog elements.
|
* Closes the contact edit overlay if the user clicks on the overlay background.
|
||||||
* If so, closes the overlay by emitting an event.
|
|
||||||
*
|
*
|
||||||
* @param event The MouseEvent that triggered the check.
|
* @param event The MouseEvent triggered by a click action.
|
||||||
*/
|
*/
|
||||||
checkOpenContactEdit(event: MouseEvent) {
|
checkOpenContactEdit(event: MouseEvent) {
|
||||||
const targetElement = event.target as HTMLElement;
|
const targetElement = event.target as HTMLElement;
|
||||||
if (
|
|
||||||
targetElement.closest('.overlay') &&
|
if (targetElement === document.querySelector('.overlay')) {
|
||||||
(!targetElement.closest('.content') || !targetElement.closest('.dialog'))
|
|
||||||
) {
|
|
||||||
this.onCloseOverlay(false);
|
this.onCloseOverlay(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue