diff --git a/src/server/config.go b/src/server/config.go index 4e6cdc7..54b9fe8 100644 --- a/src/server/config.go +++ b/src/server/config.go @@ -25,6 +25,7 @@ type Config struct { ObservationInterval int `json:"observation_internal"` Languages []string `json:"languages"` Language string `json:"language"` + UploadFileButton bool `json:"upload_file_button"` } func NewConfig() *Config { @@ -69,7 +70,8 @@ func NewConfig() *Config { "SQL", "YAML", }, - Language: "text", + Language: "text", + UploadFileButton: true, } } diff --git a/src/server/server.go b/src/server/server.go index 419c553..4c21dab 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -186,13 +186,14 @@ func (h *GetProtectedNoteHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque } type PageData struct { - Title string - Version string - Expirations []int - Languages []string - Err error - URL string - Note *Note + Title string + Version string + Expirations []int + Languages []string + Err error + URL string + Note *Note + UploadFileButton bool } type HomeHandler struct { @@ -246,7 +247,7 @@ func (h *CreateNoteWithFormHandler) ServeHTTP(w http.ResponseWriter, r *http.Req } h.logger.Debug("checking file content type") - if handler.Header.Get("Content-Type") != "text/plain" { + if !strings.HasPrefix(handler.Header.Get("Content-Type"), "text/") { h.PageData.Err = fmt.Errorf("text file expected (got %s)", handler.Header.Get("Content-Type")) h.Templates.ExecuteTemplate(w, templateName, h.PageData) return @@ -377,6 +378,12 @@ func (h *GetProtectedWebNoteHandler) ServeHTTP(w http.ResponseWriter, r *http.Re return } + if note == nil { + h.PageData.Err = fmt.Errorf("Note doesn't exist or has been deleted") + h.Templates.ExecuteTemplate(w, templateName, h.PageData) + return + } + if password != "" && note.Encrypted { note.Content, err = internal.Decrypt(note.Content, password) if err != nil { @@ -426,6 +433,9 @@ func (s *Server) Start() error { if s.config.ShowVersion { p.Version = s.version } + if s.config.UploadFileButton { + p.UploadFileButton = true + } templates, err := template.New("templates").Funcs(funcs).ParseFS(templatesFS, "templates/*.html") if err != nil { diff --git a/src/server/templates/index.html b/src/server/templates/index.html index 42faef1..c7d47e4 100644 --- a/src/server/templates/index.html +++ b/src/server/templates/index.html @@ -31,9 +31,11 @@ value="delete-after-read" name="delete-after-read"> + {{if .UploadFileButton}}