| /** |
| * Copyright (c) HashiCorp, Inc. |
| * SPDX-License-Identifier: MPL-2.0 |
| */ |
| |
| import Mixin from '@ember/object/mixin'; |
| |
| // this mixin relies on `unload-model-route` also being used |
| export default Mixin.create({ |
| actions: { |
| willTransition(transition) { |
| const model = this.controller.get('model'); |
| if (!model) { |
| return true; |
| } |
| if (model.hasDirtyAttributes) { |
| if ( |
| window.confirm( |
| 'You have unsaved changes. Navigating away will discard these changes. Are you sure you want to discard your changes?' |
| ) |
| ) { |
| this.unloadModel(); |
| return true; |
| } else { |
| transition.abort(); |
| return false; |
| } |
| } |
| return true; |
| }, |
| }, |
| }); |