This commit is contained in:
Henrique Dias 2016-02-25 20:02:06 +00:00
parent 6140e6ca1f
commit aa31961892
4 changed files with 24 additions and 13 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -168,7 +168,7 @@ $(document).on('page:browse', function() {
}); });
$.pjax({ $.pjax({
url: window.location.pathname.replace("browse", "edit") + filename, url: data.Location,
container: '#content' container: '#content'
}) })
}).fail(function(data) { }).fail(function(data) {

View File

@ -4,10 +4,12 @@ import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt"
"io" "io"
"mime/multipart" "mime/multipart"
"net/http" "net/http"
"os" "os"
"path/filepath"
"strings" "strings"
"github.com/hacdias/caddy-hugo/config" "github.com/hacdias/caddy-hugo/config"
@ -47,10 +49,9 @@ func POST(w http.ResponseWriter, r *http.Request, c *config.Config) (int, error)
filename := info["filename"].(string) filename := info["filename"].(string)
filename = strings.TrimPrefix(filename, "/") filename = strings.TrimPrefix(filename, "/")
filename = strings.TrimSuffix(filename, "/") filename = strings.TrimSuffix(filename, "/")
url := "/admin/edit/" + r.URL.Path + filename
filename = c.Path + r.URL.Path + filename filename = c.Path + r.URL.Path + filename
url := "/admin/edit/" + filename
if strings.HasPrefix(filename, c.Path+"content/") && if strings.HasPrefix(filename, c.Path+"content/") &&
(strings.HasSuffix(filename, ".md") || strings.HasSuffix(filename, ".markdown")) { (strings.HasSuffix(filename, ".md") || strings.HasSuffix(filename, ".markdown")) {
@ -66,17 +67,27 @@ func POST(w http.ResponseWriter, r *http.Request, c *config.Config) (int, error)
return http.StatusInternalServerError, err return http.StatusInternalServerError, err
} }
} else { } else {
wf, err := os.Create(filename) var err error
if filepath.Ext(filename) == "" {
err = os.MkdirAll(filename, 0755)
url = strings.Replace(url, "edit", "browse", 1)
} else {
var wf *os.File
wf, err = os.Create(filename)
defer wf.Close()
}
if err != nil { if err != nil {
return http.StatusInternalServerError, err return http.StatusInternalServerError, err
} }
defer wf.Close()
} }
w.Header().Set("Location", url) fmt.Println(url)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
w.Write([]byte("{}")) w.Write([]byte("{\"Location\": \"" + url + "\"}"))
return http.StatusOK, nil return http.StatusOK, nil
} }