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); +}); | 
