From af5baa999c14b2ef9a6e1adb17dd2f18103b5adb Mon Sep 17 00:00:00 2001 From: Thibault Piron Date: Tue, 9 Sep 2025 15:57:23 +0200 Subject: [PATCH 1/3] fix: display error page if note not found (#24) Fix panic when trying to access a non existing note with the "pretty" url (.html) Reviewed-on: https://git.riou.xyz/jriou/coller/pulls/24 Reviewed-by: Julien Riou Co-authored-by: Thibault Piron Co-committed-by: Thibault Piron --- src/server/server.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server/server.go b/src/server/server.go index 419c553..20e91c0 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -377,6 +377,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 { From 401397241b9c93f42854eb411c8a391da011d81f Mon Sep 17 00:00:00 2001 From: Julien Riou Date: Wed, 10 Sep 2025 07:02:48 +0200 Subject: [PATCH 2/3] fix: Upload text files other than plain text Fixes #23 Signed-off-by: Julien Riou --- src/server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/server.go b/src/server/server.go index 20e91c0..224c46e 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -246,7 +246,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 From cfdf653c47026d3c5575ba36668a1e50d4c28c50 Mon Sep 17 00:00:00 2001 From: Thibault Piron Date: Fri, 12 Sep 2025 18:20:19 +0200 Subject: [PATCH 3/3] feat: add possibility to hide upload button --- src/server/config.go | 4 +++- src/server/server.go | 18 +++++++++++------- src/server/templates/index.html | 2 ++ 3 files changed, 16 insertions(+), 8 deletions(-) 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 224c46e..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 { @@ -432,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}}
+ {{end}}