pass a struct with the info

Former-commit-id: 6f9843613e6abfe0b19e6e43f9299afb98645477 [formerly 805fa39b073401c946b559e0e967fdc553f16295] [formerly f9e2de337abc0cbeb5ccdb8b6962871b0bd3ee0e [formerly 1d26b8e95e]]
Former-commit-id: 259a1ba8cdc71e7d32add58f9487e5827aa6685e [formerly 161a1a49bc1158f11f07fc9ff638506dafb6c918]
Former-commit-id: 67fe1fef4602baf4ddae40b28e65ac9a2a42ca9d
This commit is contained in:
Henrique Dias
2017-06-27 09:57:11 +01:00
parent a3941facd9
commit f2b492e0ce
12 changed files with 79 additions and 70 deletions

View File

@@ -89,22 +89,22 @@ Error:
// serveSingle serves a single file in an editor (if it is editable), shows the
// plain file, or downloads it if it can't be shown.
func serveSingle(w http.ResponseWriter, r *http.Request, c *FileManager, u *User, i *fileInfo) (int, error) {
func serveSingle(ctx *requestContext, w http.ResponseWriter, r *http.Request) (int, error) {
var err error
if err = i.RetrieveFileType(); err != nil {
if err = ctx.Info.RetrieveFileType(); err != nil {
return errorToHTTP(err, true), err
}
p := &page{
Name: i.Name,
Path: i.VirtualPath,
Name: ctx.Info.Name,
Path: ctx.Info.VirtualPath,
IsDir: false,
Data: i,
User: u,
PrefixURL: c.PrefixURL,
BaseURL: c.AbsoluteURL(),
WebDavURL: c.AbsoluteWebDavURL(),
Data: ctx.Info,
User: ctx.User,
PrefixURL: ctx.FileManager.PrefixURL,
BaseURL: ctx.FileManager.AbsoluteURL(),
WebDavURL: ctx.FileManager.AbsoluteWebDavURL(),
}
// If the request accepts JSON, we send the file information.
@@ -112,23 +112,23 @@ func serveSingle(w http.ResponseWriter, r *http.Request, c *FileManager, u *User
return p.PrintAsJSON(w)
}
if i.Type == "text" {
if err = i.Read(); err != nil {
if ctx.Info.Type == "text" {
if err = ctx.Info.Read(); err != nil {
return errorToHTTP(err, true), err
}
}
if i.CanBeEdited() && u.AllowEdit {
p.Data, err = getEditor(r, i)
if ctx.Info.CanBeEdited() && ctx.User.AllowEdit {
p.Data, err = getEditor(r, ctx.Info)
p.Editor = true
if err != nil {
return http.StatusInternalServerError, err
}
return p.PrintAsHTML(w, c.assets.templates, "frontmatter", "editor")
return p.PrintAsHTML(w, ctx.FileManager.assets.templates, "frontmatter", "editor")
}
return p.PrintAsHTML(w, c.assets.templates, "single")
return p.PrintAsHTML(w, ctx.FileManager.assets.templates, "single")
}
func editorClass(mode string) string {