From 51aba865eb244a84a9691c8736c1a79c400586c3 Mon Sep 17 00:00:00 2001 From: Grendgi Date: Tue, 16 Jun 2026 17:02:29 +0300 Subject: [PATCH] fix: add back link to public folders --- internal/handler/node.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/internal/handler/node.go b/internal/handler/node.go index f445a80..9fc61fe 100644 --- a/internal/handler/node.go +++ b/internal/handler/node.go @@ -379,7 +379,7 @@ func (h *NodeHandler) PublicMeta(w http.ResponseWriter, r *http.Request) { writeInternalError(w, r, err, "failed to list folder") return } - h.renderPublicFolder(w, r, node, children) + h.renderPublicFolder(w, r, node, children, false) return } h.renderPublicUnavailable(w, node) @@ -415,7 +415,7 @@ func (h *NodeHandler) PublicChildMeta(w http.ResponseWriter, r *http.Request) { writeInternalError(w, r, err, "failed to list folder") return } - h.renderPublicFolder(w, r, node, children) + h.renderPublicFolder(w, r, node, children, true) return } h.renderPublicUnavailable(w, node) @@ -563,8 +563,12 @@ func (h *NodeHandler) renderPublicPreview(w http.ResponseWriter, node *model.Nod `) } -func (h *NodeHandler) renderPublicFolder(w http.ResponseWriter, r *http.Request, node *model.Node, children []model.Node) { +func (h *NodeHandler) renderPublicFolder(w http.ResponseWriter, r *http.Request, node *model.Node, children []model.Node, showBack bool) { token := chi.URLParam(r, "token") + backLink := "" + if showBack && node.ParentID != nil && *node.ParentID != "" { + backLink = `← Назад к папке выше` + } items := `
В папке пока нет файлов.
` if len(children) > 0 { var b strings.Builder @@ -608,6 +612,9 @@ func (h *NodeHandler) renderPublicFolder(w http.ResponseWriter, r *http.Request, h1 { margin: 0; font-size: 22px; line-height: 1.35; font-weight: 800; } .meta { margin-top: 6px; color: #9aa7bd; font-size: 14px; } main { padding: 24px; } + .nav { max-width: 980px; margin: 0 auto 14px; } + .back-link { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1px solid #263044; border-radius: 8px; background: #151a2a; color: #c7d2fe; text-decoration: none; font-weight: 700; } + .back-link:hover { border-color: #6366f1; background: #191f34; } .list { display: grid; gap: 10px; max-width: 980px; margin: 0 auto; } .item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 58px; padding: 12px 14px; border: 1px solid #263044; border-radius: 10px; background: #151a2a; color: inherit; text-decoration: none; } .item:hover { border-color: #6366f1; background: #191f34; } @@ -624,7 +631,7 @@ func (h *NodeHandler) renderPublicFolder(w http.ResponseWriter, r *http.Request,

`+html.EscapeString(node.Title)+`

Публичный просмотр папки
-
`+items+`
+
`+items+`
`)