Skip to content

Commit 37ed51d

Browse files
authored
Merge pull request #146 from mostafaznv/dev
fix: display alert both before reloading and when pressing the browser back button #144
2 parents a7542e0 + 6852465 commit 37ed51d

File tree

4 files changed

+9
-19
lines changed

4 files changed

+9
-19
lines changed

dist/js/field.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/advanced-usage/ckeditor-field-options/alert-before-unsaved-changes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Article extends Resource
2828
```
2929

3030
{% hint style="info" %}
31-
This feature has been available since <mark style="color:red;">v7.6.0</mark>
31+
This feature has been available since <mark style="color:red;">v7.7.0</mark>
3232
{% endhint %}
3333

3434

docs/advanced-usage/configuration/toolbars/toolbar-1/alert-before-unsaved-changes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if you’d rather disable this behavior, simply set <mark style="color:red;">`to
1313

1414

1515
{% hint style="info" %}
16-
This feature has been available since <mark style="color:red;">v7.6.0</mark>
16+
This feature has been available since <mark style="color:red;">v7.7.0</mark>
1717
{% endhint %}
1818

1919

resources/js/fields/editor-field.vue

+6-16
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ import CkEditor from '../ckeditor/ckeditor'
3030
import SnippetBrowser from "../components/snippet-browser/SnippetBrowser.vue"
3131
import MediaBrowser from '../components/media-browser/MediaBrowser.vue'
3232
import HasUUID from "../components/mixins/hasUUID"
33-
import {DependentFormField, HandlesValidationErrors} from 'laravel-nova'
33+
import {DependentFormField, HandlesValidationErrors, PreventsFormAbandonment} from 'laravel-nova'
3434
import debounce from 'lodash/debounce'
3535
import RegexParser from 'regex-parser'
3636
3737
export default {
38-
mixins: [DependentFormField, HandlesValidationErrors, HasUUID],
38+
mixins: [DependentFormField, HandlesValidationErrors, PreventsFormAbandonment, HasUUID],
3939
props: ['resourceName', 'resourceId', 'field', 'toolbar', 'formUniqueId'],
4040
components: {SnippetBrowser, MediaBrowser},
4141
data() {
@@ -117,6 +117,10 @@ export default {
117117
118118
model.document.on('change:data', () => {
119119
this.fieldHasChanged = true
120+
121+
if (this.currentField.alertBeforeUnsavedChanges) {
122+
this.preventLeavingForm()
123+
}
120124
})
121125
122126
editor.editing.view.change((writer) => {
@@ -289,8 +293,6 @@ export default {
289293
290294
fill(formData) {
291295
if (this.currentlyIsVisible) {
292-
this.fieldHasChanged = false
293-
294296
formData.append(this.currentField.attribute, this.value || '')
295297
}
296298
},
@@ -331,16 +333,6 @@ export default {
331333
resizeObserver.observe(innerEditor[0])
332334
}
333335
},
334-
335-
alertOnUnchangedSaves() {
336-
if (this.currentField.alertBeforeUnsavedChanges) {
337-
window.addEventListener('beforeunload', (event) => {
338-
if (this.fieldHasChanged) {
339-
event.preventDefault()
340-
}
341-
})
342-
}
343-
}
344336
},
345337
created() {
346338
this.$options[this.editorUUID] = this.uuid()
@@ -353,8 +345,6 @@ export default {
353345
}
354346
355347
this.mounted = true
356-
357-
this.alertOnUnchangedSaves()
358348
},
359349
beforeUnmount() {
360350
this.destroyCkEditor()

0 commit comments

Comments
 (0)