веб-ui: знак «jb» стал единым для шапки, иконки вкладки и превью ссылки

- логотип сведён в web/static/logo.svg (буквы геометрией, оптическая
  центровка); прежний favicon с «play» убран
- <head> шести страниц свёрнут в партиал head с og-мета; адреса абсолютные,
  база берётся из запроса, хост из недоверенного заголовка проверяется
- растровые ассеты og-cover.jpg и apple-touch-icon.png собирает `task brand`
  из исходников web/*.html
This commit is contained in:
av
2026-09-02 10:55:45 +03:00
parent 3bce73fc34
commit 2971a520c7
24 changed files with 339 additions and 51 deletions
+9 -1
View File
@@ -64,6 +64,7 @@ type bulkRow struct {
// bulkSelectView — страница выбора (`GET /delete`) и она же ответ на отказ
// разбора: отметки при этом сохраняются, иначе проверка стирает всю работу.
type bulkSelectView struct {
Meta pageMeta
Error string
Max int
Rows []bulkRow
@@ -71,12 +72,14 @@ type bulkSelectView struct {
// bulkConfirmView — страница подтверждения: выбранные названы поимённо.
type bulkConfirmView struct {
Meta pageMeta
Rows []bulkRow
}
// bulkResultView — отчёт: обе половины исхода поимённо плюс остаток, если
// проход остановлен системным отказом.
type bulkResultView struct {
Meta pageMeta
Deleted []bulkRow
Failed []bulkRow
Skipped []bulkRow
@@ -114,6 +117,7 @@ func (s *server) renderBulkSelect(w http.ResponseWriter, r *http.Request, msg st
LastCopy: d.State == store.StateOrphaned,
})
}
view.Meta = s.pageMetaFor(r, "jellybit — удаление")
s.render(w, "delete.html", view)
}
@@ -125,7 +129,10 @@ func (s *server) handleBulkDeleteConfirm(w http.ResponseWriter, r *http.Request)
s.renderBulkSelect(w, r, bulkErrMsg(err), ids)
return
}
s.render(w, "delete_confirm.html", bulkConfirmView{Rows: s.bulkRows(r.Context(), ids)})
s.render(w, "delete_confirm.html", bulkConfirmView{
Meta: s.pageMetaFor(r, "jellybit — подтверждение удаления"),
Rows: s.bulkRows(r.Context(), ids),
})
}
// handleBulkDelete — исполнение пачки. Признак подтверждения проверяется ДО
@@ -204,6 +211,7 @@ func (s *server) handleBulkDelete(w http.ResponseWriter, r *http.Request) {
"failed", len(res.Failed), "skipped", len(res.Skipped),
"stopped", res.StopReason != "")
res.Meta = s.pageMetaFor(r, "jellybit — результат удаления")
s.render(w, "delete_result.html", res)
}