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") != "" {