61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
// Class definition
|
|
var KTFormsQuillAutosave = function () {
|
|
// Private functions
|
|
var exampleAutosave = function () {
|
|
var Delta = Quill.import('delta');
|
|
var quill = new Quill('#kt_docs_quill_autosave', {
|
|
modules: {
|
|
toolbar: true
|
|
},
|
|
placeholder: 'Type your text here...',
|
|
theme: 'snow'
|
|
});
|
|
|
|
// Store accumulated changes
|
|
var change = new Delta();
|
|
quill.on('text-change', function (delta) {
|
|
change = change.compose(delta);
|
|
});
|
|
|
|
// Save periodically
|
|
setInterval(function () {
|
|
if (change.length() > 0) {
|
|
console.log('Saving changes', change);
|
|
/*
|
|
Send partial changes
|
|
$.post('/your-endpoint', {
|
|
partial: JSON.stringify(change)
|
|
});
|
|
|
|
Send entire document
|
|
$.post('/your-endpoint', {
|
|
doc: JSON.stringify(quill.getContents())
|
|
});
|
|
*/
|
|
change = new Delta();
|
|
}
|
|
}, 5 * 1000);
|
|
|
|
// Check for unsaved data
|
|
window.onbeforeunload = function () {
|
|
if (change.length() > 0) {
|
|
return 'There are unsaved changes. Are you sure you want to leave?';
|
|
}
|
|
}
|
|
}
|
|
|
|
return {
|
|
// Public Functions
|
|
init: function () {
|
|
exampleAutosave();
|
|
}
|
|
};
|
|
}();
|
|
|
|
// On document ready
|
|
KTUtil.onDOMContentLoaded(function () {
|
|
KTFormsQuillAutosave.init();
|
|
});
|