diff --git a/assets/public/js/application.js b/assets/public/js/application.js index 8b166492..a3673b85 100644 --- a/assets/public/js/application.js +++ b/assets/public/js/application.js @@ -6,25 +6,58 @@ document.addEventListener('DOMContentLoaded', event => { settings `); +}); + +document.addEventListener('listing', event => { + document.getElementById('newdir').placeholder = "file[:archetype]..."; +}); + +document.addEventListener('editor', event => { document.getElementById('submit').insertAdjacentHTML('afterend', `
- -
`); + + `); if (document.getElementById('date') || document.getElementById('publishdate')) { - document.querySelector('#editor .right').insertAdjacentHTML('afterbegin', ` `); + document.querySelector('#editor .right').insertAdjacentHTML('afterbegin', ` `); + + document.getElementById('schedule').addEventListener('click', event => { + event.preventDefault(); + }); } + document.getElementById('publish').addEventListener('click', event => { + console.log("Hey") + event.preventDefault(); + if (document.getElementById('draft')) { + document.getElementById('block-draft').remove(); + } + let container = document.getElementById('editor'); + let kind = container.dataset.kind; + let button = document.querySelector('#publish span:first-child'); + let data = form2js(document.querySelector('form')); + let html = button.changeToLoading(); + let request = new XMLHttpRequest(); + request.open("PUT", window.location); + request.setRequestHeader('Kind', kind); + request.setRequestHeader('Regenerate', "true"); + request.send(JSON.stringify(data)); + request.onreadystatechange = function() { + if (request.readyState == 4) { + button.changeToDone((request.status != 200), html); + } + } + }); }); diff --git a/hugo.go b/hugo.go index 08eb24e6..0acdc6e2 100644 --- a/hugo.go +++ b/hugo.go @@ -74,8 +74,12 @@ func (h Hugo) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) { if directory.CanBeEdited(r.URL.Path) && r.Method == http.MethodPut { code, err := h.FileManager.ServeHTTP(w, r) + if err != nil { + return code, err + } + if r.Header.Get("Regenerate") == "true" { - go RunHugo(h.Config, false) + RunHugo(h.Config, false) } if r.Header.Get("Schedule") != "" {