staff portal: add confirmation prior to deleting values
authorGalen Charlton <gmc@equinoxOLI.org>
Fri, 3 Sep 2021 20:11:39 +0000 (16:11 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Fri, 3 Sep 2021 20:11:54 +0000 (16:11 -0400)
TODO: something to consider just building into admin-page.component
      as a new option.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/admin/local/staff_portal_page/staff-portal-page.component.html
Open-ILS/src/eg2/src/app/staff/admin/local/staff_portal_page/staff-portal-page.component.ts

index 7e9303f..8649e83 100644 (file)
 <eg-string #cloneSuccessString i18n-text text="Portal Page Entries Cloning Succeeded"></eg-string>
 <eg-string #cloneFailedString i18n-text text="Portal Page Entries Cloning Failed"></eg-string>
 
+<eg-confirm-dialog #delConfirm
+  i18n-dialogTitle i18n-dialogBody
+  dialogTitle="Delete?"
+  dialogBody="Delete staff portal page entry or entries?">
+</eg-confirm-dialog>
+
 <eg-clone-portal-entries-dialog #cloneDialog></eg-clone-portal-entries-dialog>
 
 <ng-container *ngIf="orgField || gridFilters">
index 574f540..13d285f 100644 (file)
@@ -14,6 +14,7 @@ import {GridCellTextGenerator} from '@eg/share/grid/grid';
 import {StringComponent} from '@eg/share/string/string.component';
 import {FmRecordEditorComponent} from '@eg/share/fm-editor/fm-editor.component';
 import {ClonePortalEntriesDialogComponent} from './clone-portal-entries-dialog.component';
+import {ConfirmDialogComponent} from '@eg/share/dialog/confirm.component';
 import {merge, Observable, empty} from 'rxjs';
 
 @Component({
@@ -28,7 +29,6 @@ export class AdminStaffPortalPageComponent extends AdminPageComponent implements
 
     refreshSelected: (idlThings: IdlObject[]) => void;
     createNew: () => void;
-    deleteSelected: (idlThings: IdlObject[]) => void;
     cellTextGenerator: GridCellTextGenerator;
 
     @ViewChild('refreshString', { static: true }) refreshString: StringComponent;
@@ -36,6 +36,7 @@ export class AdminStaffPortalPageComponent extends AdminPageComponent implements
     @ViewChild('cloneSuccessString', { static: true }) cloneSuccessString: StringComponent;
     @ViewChild('cloneFailedString', { static: true }) cloneFailedString: StringComponent;
     @ViewChild('cloneDialog', { static: true}) cloneDialog: ClonePortalEntriesDialogComponent;
+    @ViewChild('delConfirm', { static: true }) delConfirm: ConfirmDialogComponent;
 
     constructor(
         route: ActivatedRoute,
@@ -67,6 +68,13 @@ export class AdminStaffPortalPageComponent extends AdminPageComponent implements
         );
     }
 
+    deleteSelected(idlThings: IdlObject[]) {
+        this.delConfirm.open().subscribe(confirmed => {
+            if (!confirmed) { return; }
+            super.deleteSelected(idlThings);
+        });
+    }
+
     _handleClone(src: number, tgt: number, overwrite: Boolean) {
         const updates: IdlObject[] = [];