dialogue for user name on the task board added
This commit is contained in:
parent
f73ac268d6
commit
77d8b3289d
5 changed files with 74 additions and 25 deletions
|
|
@ -331,15 +331,11 @@
|
||||||
[img]="'check'"
|
[img]="'check'"
|
||||||
[imgFilter]="'none'"
|
[imgFilter]="'none'"
|
||||||
[value]="
|
[value]="
|
||||||
(overlayData.toString() !== '' &&
|
['none', 'todo', 'inprogress', 'awaitfeedback', 'done'].includes(
|
||||||
overlayData.toString() !== 'none' &&
|
overlayData.toString()
|
||||||
overlayData.toString() !== 'todo' &&
|
)
|
||||||
overlayData.toString() !== 'inprogress' &&
|
? ('addTask.create' | translate)
|
||||||
overlayData.toString() !== 'awaitfeedback' &&
|
: ('addTask.update' | translate)
|
||||||
overlayData.toString() !== 'done'
|
|
||||||
? 'addTask.update'
|
|
||||||
: 'addTask.create'
|
|
||||||
) | translate
|
|
||||||
"
|
"
|
||||||
[disabled]="
|
[disabled]="
|
||||||
title.invalid ||
|
title.invalid ||
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,16 @@
|
||||||
<div class="footer-badge">
|
<div class="footer-badge">
|
||||||
<span
|
<span
|
||||||
class="footer-badged"
|
class="footer-badged"
|
||||||
|
(mousemove)="openDialog(task.creator, $event)"
|
||||||
|
(mouseleave)="closeDialog()"
|
||||||
[style.background-color]="userBadgedColor(task.creator)"
|
[style.background-color]="userBadgedColor(task.creator)"
|
||||||
>{{ userBadged(task.creator) }}</span
|
>{{ userBadged(task.creator) }}</span
|
||||||
>
|
>
|
||||||
@for (assigned of task.assigned; track assigned) {
|
@for (assigned of task.assigned; track assigned) {
|
||||||
<span
|
<span
|
||||||
class="footer-badged"
|
class="footer-badged"
|
||||||
|
(mousemove)="openDialog(assigned, $event)"
|
||||||
|
(mouseleave)="closeDialog()"
|
||||||
[style.background-color]="userBadgedColor(assigned)"
|
[style.background-color]="userBadgedColor(assigned)"
|
||||||
>{{ userBadged(assigned) }}</span
|
>{{ userBadged(assigned) }}</span
|
||||||
>
|
>
|
||||||
|
|
@ -64,5 +68,12 @@
|
||||||
[taskId]="task.id"
|
[taskId]="task.id"
|
||||||
[boardTaskStatus]="task.status"
|
[boardTaskStatus]="task.status"
|
||||||
></app-task-menu>
|
></app-task-menu>
|
||||||
|
} @if (AssignedDialogId != '') {
|
||||||
|
<div class="dialog" [style.left.px]="dialogX" [style.top.px]="dialogY">
|
||||||
|
<p>
|
||||||
|
{{ firebaseService.getUserDetails(AssignedDialogId, "firstName") }},
|
||||||
|
{{ firebaseService.getUserDetails(AssignedDialogId, "lastName") }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
} }
|
} }
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,21 @@ section {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dialog {
|
||||||
|
position: fixed;
|
||||||
|
width: min-content;
|
||||||
|
height: fit-content;
|
||||||
|
padding: 10px 15px;
|
||||||
|
border-radius: 0px 20px 20px 20px;
|
||||||
|
border: 1px solid var(--black);
|
||||||
|
z-index: 2;
|
||||||
|
background-color: var(--white);
|
||||||
|
p {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,9 @@ import { SharedService } from '../../../services/shared.service';
|
||||||
export class TaskComponent {
|
export class TaskComponent {
|
||||||
@Input() task: Task = {} as Task;
|
@Input() task: Task = {} as Task;
|
||||||
isMenuOpen: boolean = false;
|
isMenuOpen: boolean = false;
|
||||||
|
AssignedDialogId: string = '';
|
||||||
|
dialogX: number = 0;
|
||||||
|
dialogY: number = 0;
|
||||||
|
|
||||||
categoryColors = new Map<string, string>([
|
categoryColors = new Map<string, string>([
|
||||||
['User Story', '#0038ff'],
|
['User Story', '#0038ff'],
|
||||||
|
|
@ -26,7 +29,7 @@ export class TaskComponent {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public dragDropService: DragDropService,
|
public dragDropService: DragDropService,
|
||||||
private firebaseService: FirebaseService,
|
public firebaseService: FirebaseService,
|
||||||
public overlayService: OverlayService,
|
public overlayService: OverlayService,
|
||||||
public sharedService: SharedService,
|
public sharedService: SharedService,
|
||||||
private router: Router
|
private router: Router
|
||||||
|
|
@ -57,15 +60,32 @@ export class TaskComponent {
|
||||||
@HostListener('document:click', ['$event'])
|
@HostListener('document:click', ['$event'])
|
||||||
checkToggleTaskMenu(event: MouseEvent) {
|
checkToggleTaskMenu(event: MouseEvent) {
|
||||||
const targetElement = event.target as HTMLElement;
|
const targetElement = event.target as HTMLElement;
|
||||||
if (
|
const menuSelectors = ['.menu-btn', '.menu-img', 'app-task-menu'];
|
||||||
!targetElement.closest('.menu-btn') &&
|
const isMenuClicked = menuSelectors.some((selector) =>
|
||||||
!targetElement.closest('.menu-img') &&
|
targetElement.closest(selector)
|
||||||
!targetElement.closest('app-task-menu')
|
);
|
||||||
) {
|
|
||||||
|
if (!isMenuClicked) {
|
||||||
this.isMenuOpen = false;
|
this.isMenuOpen = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dialog
|
||||||
|
|
||||||
|
openDialog(userId: any, event: MouseEvent) {
|
||||||
|
this.AssignedDialogId = userId;
|
||||||
|
this.updateDialogPosition(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateDialogPosition(event: MouseEvent) {
|
||||||
|
this.dialogX = event.clientX + 25;
|
||||||
|
this.dialogY = event.clientY + 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
closeDialog() {
|
||||||
|
this.AssignedDialogId = '';
|
||||||
|
}
|
||||||
|
|
||||||
// Subtasks
|
// Subtasks
|
||||||
|
|
||||||
completedSubtasks(): number {
|
completedSubtasks(): number {
|
||||||
|
|
|
||||||
|
|
@ -128,20 +128,27 @@ export class ContactDetailComponent {
|
||||||
@HostListener('document:click', ['$event'])
|
@HostListener('document:click', ['$event'])
|
||||||
checkOpenContactEdit(event: MouseEvent) {
|
checkOpenContactEdit(event: MouseEvent) {
|
||||||
const targetElement = event.target as HTMLElement;
|
const targetElement = event.target as HTMLElement;
|
||||||
|
|
||||||
if (targetElement.closest('.btn-edit')) {
|
if (targetElement.closest('.btn-edit')) {
|
||||||
this.sharedService.isAnyDialogOpen = true;
|
this.setDialogStatus(true, true, false, false);
|
||||||
this.sharedService.isEditContactDialogOpen = true;
|
|
||||||
} else if (targetElement.closest('.btn-new')) {
|
} else if (targetElement.closest('.btn-new')) {
|
||||||
this.sharedService.isAnyDialogOpen = true;
|
this.setDialogStatus(true, false, true, false);
|
||||||
this.sharedService.isNewContactDialogOpen = true;
|
|
||||||
} else if (targetElement.closest('.btn-delete')) {
|
} else if (targetElement.closest('.btn-delete')) {
|
||||||
this.sharedService.isAnyDialogOpen = true;
|
this.setDialogStatus(true, false, false, true);
|
||||||
this.sharedService.isDeleteContactDialogOpen = true;
|
|
||||||
} else if (!targetElement.closest('.dialog')) {
|
} else if (!targetElement.closest('.dialog')) {
|
||||||
this.sharedService.isAnyDialogOpen = false;
|
this.setDialogStatus(false, false, false, false);
|
||||||
this.sharedService.isEditContactDialogOpen = false;
|
|
||||||
this.sharedService.isDeleteContactDialogOpen = false;
|
|
||||||
this.sharedService.isNewContactDialogOpen = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private setDialogStatus(
|
||||||
|
anyOpen: boolean,
|
||||||
|
editOpen: boolean,
|
||||||
|
newOpen: boolean,
|
||||||
|
deleteOpen: boolean
|
||||||
|
) {
|
||||||
|
this.sharedService.isAnyDialogOpen = anyOpen;
|
||||||
|
this.sharedService.isEditContactDialogOpen = editOpen;
|
||||||
|
this.sharedService.isNewContactDialogOpen = newOpen;
|
||||||
|
this.sharedService.isDeleteContactDialogOpen = deleteOpen;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue