summaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts')
-rw-r--r--cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts b/cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts
new file mode 100644
index 000000000..b24784262
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/canDactivate/ComponentCanDeactivateGuard.ts
@@ -0,0 +1,19 @@
+import {Injectable} from '@angular/core';
+
+import {CanDeactivate} from '@angular/router';
+import {ComponentCanDeactivate} from './ComponentCanDeactivate';
+
+@Injectable()
+export class ComponentCanDeactivateGuard implements CanDeactivate<ComponentCanDeactivate> {
+ canDeactivate(component: ComponentCanDeactivate): boolean {
+
+ if (component.canDeactivate()) {
+ if (confirm('You have unsaved changes! If you leave, your changes will be lost.')) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+}