X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3298374113ca01401a91caeb71e2b62b6ad7c5ad..c8cfec96dc11a3adaed7f7c3545ca35faa5deab3:/resources/js/components/page-editor.js diff --git a/resources/js/components/page-editor.js b/resources/js/components/page-editor.js index 7ffceb0f9..542453504 100644 --- a/resources/js/components/page-editor.js +++ b/resources/js/components/page-editor.js @@ -25,6 +25,7 @@ export class PageEditor extends Component { this.draftDisplayIcon = this.$refs.draftDisplayIcon; this.changelogInput = this.$refs.changelogInput; this.changelogDisplay = this.$refs.changelogDisplay; + this.changelogCounter = this.$refs.changelogCounter; this.changeEditorButtons = this.$manyRefs.changeEditor || []; this.switchDialogContainer = this.$refs.switchDialog; this.deleteDraftDialogContainer = this.$refs.deleteDraftDialog; @@ -75,7 +76,11 @@ export class PageEditor extends Component { // Changelog controls const updateChangelogDebounced = debounce(this.updateChangelogDisplay.bind(this), 300, false); - this.changelogInput.addEventListener('input', updateChangelogDebounced); + this.changelogInput.addEventListener('input', () => { + const count = this.changelogInput.value.length; + this.changelogCounter.innerText = `${count} / 180`; + updateChangelogDebounced(); + }); // Draft Controls onSelect(this.saveDraftButton, this.saveDraft.bind(this)); @@ -112,7 +117,7 @@ export class PageEditor extends Component { } savePage() { - this.container.closest('form').submit(); + this.container.closest('form').requestSubmit(); } async saveDraft() { @@ -138,7 +143,7 @@ export class PageEditor extends Component { didSave = true; this.autoSave.pendingChange = false; - } catch (err) { + } catch { // Save the editor content in LocalStorage as a last resort, just in case. try { const saveKey = `draft-save-fail-${(new Date()).toISOString()}`;