aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVincent Peugnet <33429034+vincent-peugnet@users.noreply.github.com>2019-11-15 18:38:20 +0100
committerGitHub <noreply@github.com>2019-11-15 18:38:20 +0100
commitdc041bbd71d1b9d6cfe189f2449a9ee0e9063708 (patch)
treecd0131b0764cb14354e0ef67948ad3102664b354 /src
parent1add9049bedd3ac381e42ea5c177c5e0b871a50a (diff)
parent19803db70f2a5a4162d1be2ca0f72eb08e25d544 (diff)
downloadwcms-dc041bbd71d1b9d6cfe189f2449a9ee0e9063708.tar.gz
wcms-dc041bbd71d1b9d6cfe189f2449a9ee0e9063708.zip
Merge pull request #23 from n-peugnet/asterix-unsaved-changes
feat: add unsaved changes' asterix indicator
Diffstat (limited to 'src')
-rw-r--r--src/edit.js29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/edit.js b/src/edit.js
index 062a0de..c1018d7 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', () => {
@@ -27,6 +34,7 @@ window.addEventListener('load', () => {
submitHandler(this);
});
+ // disable CodeMirror's default ctrl+D shortcut (delete line)
delete CodeMirror.keyMap['default']['Ctrl-D'];
editors = [
@@ -84,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;
});
@@ -127,7 +139,7 @@ function changeHandler(e) {
) {
return;
}
- unsavedChanges = true;
+ changed();
}
/**
@@ -157,8 +169,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 +187,15 @@ function confirmExit(e) {
return 'You have unsaved changes, do you really want to leave this page?';
}
}
+
+function changed() {
+ unsavedChanges = true;
+ document.title = '✏ *' + pagetitle;
+ document.getElementById('headid').innerHTML = '*' + pageid;
+}
+
+function saved() {
+ unsavedChanges = false;
+ document.title = '✏ ' + pagetitle;
+ document.getElementById('headid').innerHTML = pageid;
+}