diff --git a/src/app/modules/admin/apps/contacts/details/details.component.ts b/src/app/modules/admin/apps/contacts/details/details.component.ts index cb35e01f..9a75de85 100644 --- a/src/app/modules/admin/apps/contacts/details/details.component.ts +++ b/src/app/modules/admin/apps/contacts/details/details.component.ts @@ -6,6 +6,7 @@ import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { MatDrawerToggleResult } from '@angular/material/sidenav'; import { Subject } from 'rxjs'; import { debounceTime, takeUntil } from 'rxjs/operators'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; import { Contact, Country, Tag } from 'app/modules/admin/apps/contacts/contacts.types'; import { ContactsListComponent } from 'app/modules/admin/apps/contacts/list/list.component'; import { ContactsService } from 'app/modules/admin/apps/contacts/contacts.service'; @@ -42,6 +43,7 @@ export class ContactsDetailsComponent implements OnInit, OnDestroy private _contactsListComponent: ContactsListComponent, private _contactsService: ContactsService, private _formBuilder: FormBuilder, + private _fuseConfirmationService: FuseConfirmationService, private _renderer2: Renderer2, private _router: Router, private _overlay: Overlay, @@ -276,41 +278,61 @@ export class ContactsDetailsComponent implements OnInit, OnDestroy */ deleteContact(): void { - // Get the current contact's id - const id = this.contact.id; - - // Get the next/previous contact's id - const currentContactIndex = this.contacts.findIndex(item => item.id === id); - const nextContactIndex = currentContactIndex + ((currentContactIndex === (this.contacts.length - 1)) ? -1 : 1); - const nextContactId = (this.contacts.length === 1 && this.contacts[0].id === id) ? null : this.contacts[nextContactIndex].id; - - // Delete the contact - this._contactsService.deleteContact(id) - .subscribe((isDeleted) => { - - // Return if the contact wasn't deleted... - if ( !isDeleted ) - { - return; + // Open the confirmation dialog + const confirmation = this._fuseConfirmationService.open({ + title : 'Delete contact', + message: 'Are you sure you want to delete this contact? This action cannot be undone!', + actions: { + confirm: { + label: 'Delete' } + } + }); - // Navigate to the next contact if available - if ( nextContactId ) - { - this._router.navigate(['../', nextContactId], {relativeTo: this._activatedRoute}); - } - // Otherwise, navigate to the parent - else - { - this._router.navigate(['../'], {relativeTo: this._activatedRoute}); - } + // Subscribe to the confirmation dialog closed action + confirmation.afterClosed().subscribe((result) => { - // Toggle the edit mode off - this.toggleEditMode(false); - }); + // If the confirm button pressed... + if ( result === 'confirmed' ) + { + // Get the current contact's id + const id = this.contact.id; + + // Get the next/previous contact's id + const currentContactIndex = this.contacts.findIndex(item => item.id === id); + const nextContactIndex = currentContactIndex + ((currentContactIndex === (this.contacts.length - 1)) ? -1 : 1); + const nextContactId = (this.contacts.length === 1 && this.contacts[0].id === id) ? null : this.contacts[nextContactIndex].id; + + // Delete the contact + this._contactsService.deleteContact(id) + .subscribe((isDeleted) => { + + // Return if the contact wasn't deleted... + if ( !isDeleted ) + { + return; + } + + // Navigate to the next contact if available + if ( nextContactId ) + { + this._router.navigate(['../', nextContactId], {relativeTo: this._activatedRoute}); + } + // Otherwise, navigate to the parent + else + { + this._router.navigate(['../'], {relativeTo: this._activatedRoute}); + } + + // Toggle the edit mode off + this.toggleEditMode(false); + }); + + // Mark for check + this._changeDetectorRef.markForCheck(); + } + }); - // Mark for check - this._changeDetectorRef.markForCheck(); } /** diff --git a/src/app/modules/admin/apps/ecommerce/inventory/list/inventory.component.ts b/src/app/modules/admin/apps/ecommerce/inventory/list/inventory.component.ts index 5c50c301..afde147c 100644 --- a/src/app/modules/admin/apps/ecommerce/inventory/list/inventory.component.ts +++ b/src/app/modules/admin/apps/ecommerce/inventory/list/inventory.component.ts @@ -6,6 +6,7 @@ import { MatSort } from '@angular/material/sort'; import { merge, Observable, Subject } from 'rxjs'; import { debounceTime, map, switchMap, takeUntil } from 'rxjs/operators'; import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; import { InventoryBrand, InventoryCategory, InventoryPagination, InventoryProduct, InventoryTag, InventoryVendor } from 'app/modules/admin/apps/ecommerce/inventory/inventory.types'; import { InventoryService } from 'app/modules/admin/apps/ecommerce/inventory/inventory.service'; @@ -62,6 +63,7 @@ export class InventoryListComponent implements OnInit, AfterViewInit, OnDestroy */ constructor( private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, private _formBuilder: FormBuilder, private _inventoryService: InventoryService ) @@ -525,14 +527,34 @@ export class InventoryListComponent implements OnInit, AfterViewInit, OnDestroy */ deleteSelectedProduct(): void { - // Get the product object - const product = this.selectedProductForm.getRawValue(); + // Open the confirmation dialog + const confirmation = this._fuseConfirmationService.open({ + title : 'Delete product', + message: 'Are you sure you want to remove this product? This action cannot be undone!', + actions: { + confirm: { + label: 'Delete' + } + } + }); - // Delete the product on the server - this._inventoryService.deleteProduct(product.id).subscribe(() => { + // Subscribe to the confirmation dialog closed action + confirmation.afterClosed().subscribe((result) => { - // Close the details - this.closeDetails(); + // If the confirm button pressed... + if ( result === 'confirmed' ) + { + + // Get the product object + const product = this.selectedProductForm.getRawValue(); + + // Delete the product on the server + this._inventoryService.deleteProduct(product.id).subscribe(() => { + + // Close the details + this.closeDetails(); + }); + } }); } diff --git a/src/app/modules/admin/apps/scrumboard/board/board.component.html b/src/app/modules/admin/apps/scrumboard/board/board.component.html index 6708c41f..e90debb7 100644 --- a/src/app/modules/admin/apps/scrumboard/board/board.component.html +++ b/src/app/modules/admin/apps/scrumboard/board/board.component.html @@ -85,7 +85,7 @@ - Rename List + Rename list diff --git a/src/app/modules/admin/apps/scrumboard/board/board.component.ts b/src/app/modules/admin/apps/scrumboard/board/board.component.ts index 15d22a3b..7654596a 100644 --- a/src/app/modules/admin/apps/scrumboard/board/board.component.ts +++ b/src/app/modules/admin/apps/scrumboard/board/board.component.ts @@ -3,9 +3,10 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; +import * as moment from 'moment'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; import { ScrumboardService } from 'app/modules/admin/apps/scrumboard/scrumboard.service'; import { Board, Card, List } from 'app/modules/admin/apps/scrumboard/scrumboard.models'; -import * as moment from 'moment'; @Component({ selector : 'scrumboard-board', @@ -31,6 +32,7 @@ export class ScrumboardBoardComponent implements OnInit, OnDestroy constructor( private _changeDetectorRef: ChangeDetectorRef, private _formBuilder: FormBuilder, + private _fuseConfirmationService: FuseConfirmationService, private _scrumboardService: ScrumboardService ) { @@ -148,8 +150,28 @@ export class ScrumboardBoardComponent implements OnInit, OnDestroy */ deleteList(id): void { - // Delete the list - this._scrumboardService.deleteList(id).subscribe(); + // Open the confirmation dialog + const confirmation = this._fuseConfirmationService.open({ + title : 'Delete list', + message: 'Are you sure you want to delete this list and its cards? This action cannot be undone!', + actions: { + confirm: { + label: 'Delete' + } + } + }); + + // Subscribe to the confirmation dialog closed action + confirmation.afterClosed().subscribe((result) => { + + // If the confirm button pressed... + if ( result === 'confirmed' ) + { + + // Delete the list + this._scrumboardService.deleteList(id).subscribe(); + } + }); } /** diff --git a/src/app/modules/admin/apps/tasks/details/details.component.ts b/src/app/modules/admin/apps/tasks/details/details.component.ts index 9bfdb44f..fe103de5 100644 --- a/src/app/modules/admin/apps/tasks/details/details.component.ts +++ b/src/app/modules/admin/apps/tasks/details/details.component.ts @@ -4,6 +4,7 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { TemplatePortal } from '@angular/cdk/portal'; import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { MatDrawerToggleResult } from '@angular/material/sidenav'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; import { Subject } from 'rxjs'; import { debounceTime, filter, takeUntil, tap } from 'rxjs/operators'; import { assign } from 'lodash-es'; @@ -40,6 +41,7 @@ export class TasksDetailsComponent implements OnInit, AfterViewInit, OnDestroy private _activatedRoute: ActivatedRoute, private _changeDetectorRef: ChangeDetectorRef, private _formBuilder: FormBuilder, + private _fuseConfirmationService: FuseConfirmationService, private _renderer2: Renderer2, private _router: Router, private _tasksListComponent: TasksListComponent, @@ -472,38 +474,58 @@ export class TasksDetailsComponent implements OnInit, AfterViewInit, OnDestroy */ deleteTask(): void { - // Get the current task's id - const id = this.task.id; - - // Get the next/previous task's id - const currentTaskIndex = this.tasks.findIndex(item => item.id === id); - const nextTaskIndex = currentTaskIndex + ((currentTaskIndex === (this.tasks.length - 1)) ? -1 : 1); - const nextTaskId = (this.tasks.length === 1 && this.tasks[0].id === id) ? null : this.tasks[nextTaskIndex].id; - - // Delete the task - this._tasksService.deleteTask(id) - .subscribe((isDeleted) => { - - // Return if the task wasn't deleted... - if ( !isDeleted ) - { - return; + // Open the confirmation dialog + const confirmation = this._fuseConfirmationService.open({ + title : 'Delete task', + message: 'Are you sure you want to delete this task? This action cannot be undone!', + actions: { + confirm: { + label: 'Delete' } + } + }); - // Navigate to the next task if available - if ( nextTaskId ) - { - this._router.navigate(['../', nextTaskId], {relativeTo: this._activatedRoute}); - } - // Otherwise, navigate to the parent - else - { - this._router.navigate(['../'], {relativeTo: this._activatedRoute}); - } - }); + // Subscribe to the confirmation dialog closed action + confirmation.afterClosed().subscribe((result) => { - // Mark for check - this._changeDetectorRef.markForCheck(); + // If the confirm button pressed... + if ( result === 'confirmed' ) + { + + // Get the current task's id + const id = this.task.id; + + // Get the next/previous task's id + const currentTaskIndex = this.tasks.findIndex(item => item.id === id); + const nextTaskIndex = currentTaskIndex + ((currentTaskIndex === (this.tasks.length - 1)) ? -1 : 1); + const nextTaskId = (this.tasks.length === 1 && this.tasks[0].id === id) ? null : this.tasks[nextTaskIndex].id; + + // Delete the task + this._tasksService.deleteTask(id) + .subscribe((isDeleted) => { + + // Return if the task wasn't deleted... + if ( !isDeleted ) + { + return; + } + + // Navigate to the next task if available + if ( nextTaskId ) + { + this._router.navigate(['../', nextTaskId], {relativeTo: this._activatedRoute}); + } + // Otherwise, navigate to the parent + else + { + this._router.navigate(['../'], {relativeTo: this._activatedRoute}); + } + }); + + // Mark for check + this._changeDetectorRef.markForCheck(); + } + }); } /**