diff options
Diffstat (limited to 'public/editor/editor.js')
-rw-r--r-- | public/editor/editor.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/public/editor/editor.js b/public/editor/editor.js index 2c4972f..2d99674 100644 --- a/public/editor/editor.js +++ b/public/editor/editor.js @@ -1,5 +1,5 @@ var editor = new MediumEditor('.editable', { - buttons: ['bold', 'italic', 'header1', 'header2', 'quote', 'unorderedlist', 'pre'], + buttons: ['bold', 'italic', 'anchor', 'header1', 'header2', 'quote', 'unorderedlist', 'pre'], paste: { // This example includes the default options for paste, if nothing is passed this is what it used forcePlainText: false, @@ -30,3 +30,47 @@ $(function () { $('.placeholder').removeClass('placeholder'); }); }); + +/* ************************************************ */ +/* autosave loop */ +var autosaveTimeout = false; +function contentChanged() { + clearTimeout(autosaveTimeout); + $("#draft-status").text("Draft"); + autosaveTimeout = setTimeout(doAutoSave, 1000); +} +function doAutoSave() { + autosaveTimeout = false; + var savedData = { + title: $("#post-name").val(), + body: editor.serialize().content.value + } + localforage.setItem('currentdraft', savedData).then(function(){ + $("#draft-status").text("Saved"); + }); +} +$(function(){ + // Restore draft if present + localforage.getItem('currentdraft', function(err,val){ + if(val && val.body) { + $("#post-name").val(val.title); + $("#content").html(val.body); + $("#draft-status").text("Restored"); + } + }); +}); +/* ************************************************ */ + + +// Not sure why this isn't working +// editor.subscribe('editableInput', function(ev, editable) { +// console.log("stuff changed"); +// }); + +// This one works okay tho, but misses changes from the image uploader +editor.on(document.getElementById('content'), 'input', function(){ + contentChanged(); +}); +$(function(){ + $('#post-name').on('keyup', contentChanged); +}); |