From 24a72ebc7902f4261c9f15491eddfd2bc2cc8c2b Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Fri, 1 Nov 2019 13:21:48 +0100 Subject: feat: add unsaved changes' asterix indicator --- src/edit.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/edit.js b/src/edit.js index 062a0de..e45f5f5 100644 --- a/src/edit.js +++ b/src/edit.js @@ -27,6 +27,7 @@ window.addEventListener('load', () => { submitHandler(this); }); + // disable CodeMirror's default ctrl+D shortcut (delete line) delete CodeMirror.keyMap['default']['Ctrl-D']; editors = [ @@ -127,7 +128,7 @@ function changeHandler(e) { ) { return; } - unsavedChanges = true; + changed(); } /** @@ -157,8 +158,7 @@ function submitHandler(form) { var fd = new FormData(form); xhr.addEventListener('load', function(event) { - unsavedChanges = false; - // Add "last update" timestamp here + saved(); }); xhr.addEventListener('error', function(event) { alert('Error while trying to update.'); @@ -176,3 +176,13 @@ function confirmExit(e) { return 'You have unsaved changes, do you really want to leave this page?'; } } + +function changed() { + unsavedChanges = true; + document.title = '✏ *' + pageid; +} + +function saved() { + unsavedChanges = false; + document.title = '✏ ' + pageid; +} -- cgit v1.2.3 From 1203b869e062082bbf215880bd42e2960f0d5cd4 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Tue, 5 Nov 2019 18:55:43 +0100 Subject: fix: unsaved asterix uses title instead of id --- src/edit.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/edit.js b/src/edit.js index e45f5f5..4621639 100644 --- a/src/edit.js +++ b/src/edit.js @@ -10,9 +10,16 @@ import 'codemirror/addon/search/jump-to-line'; import 'codemirror/addon/dialog/dialog'; import 'codemirror/addon/dialog/dialog.css'; +/** @type {HTMLFormElement} */ let form; + +/** @type {CodeMirror.EditorFromTextArea[]} */ let editors = []; + +/** @type {boolean} */ let unsavedChanges = false; + +/** @type {InputEvent} */ const inputEvent = new InputEvent('input'); window.addEventListener('load', () => { @@ -179,10 +186,10 @@ function confirmExit(e) { function changed() { unsavedChanges = true; - document.title = '✏ *' + pageid; + document.title = '✏ *' + pagetitle; } function saved() { unsavedChanges = false; - document.title = '✏ ' + pageid; + document.title = '✏ ' + pagetitle; } -- cgit v1.2.3 From 711a2d7a0b7d9a6c1b644d56916c92f55b90677d Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Wed, 6 Nov 2019 13:38:39 +0100 Subject: feat: add unsaved asterix to body pageid --- src/edit.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/edit.js b/src/edit.js index 4621639..910c229 100644 --- a/src/edit.js +++ b/src/edit.js @@ -187,9 +187,11 @@ function confirmExit(e) { function changed() { unsavedChanges = true; document.title = '✏ *' + pagetitle; + document.getElementById('headid').innerHTML = '*' + pageid; } function saved() { unsavedChanges = false; document.title = '✏ ' + pagetitle; + document.getElementById('headid').innerHTML = pageid; } -- cgit v1.2.3 From 19803db70f2a5a4162d1be2ca0f72eb08e25d544 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Thu, 7 Nov 2019 00:32:15 +0100 Subject: feat: live title edit update the title of the window in sync with the input box --- src/edit.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/edit.js b/src/edit.js index 910c229..c1018d7 100644 --- a/src/edit.js +++ b/src/edit.js @@ -92,6 +92,10 @@ window.addEventListener('load', () => { fontSizeInput.addEventListener('change', fontSizeChangeHandler); fontSizeInput.dispatchEvent(new Event('change')); + document.getElementById('title').addEventListener('input', e => { + pagetitle = e.target.value; + }); + window.onkeydown = keyboardHandler; window.onbeforeunload = confirmExit; }); -- cgit v1.2.3