Карточка: удерживать скролл боковых блоков при автообновлении; DEPO: «Снять с очереди»

Скролл: автообновление карточки (bjReloadKeepScroll) раньше сохраняло только прокрутку окна,
а боковой «Путь заявки» (.claim-tl — position:fixed, свой overflow) и другие прокручиваемые
блоки (.settings-nav, .doc-toc) отбрасывало наверх. Теперь сохраняется и восстанавливается и
их scrollTop (JSON в sessionStorage, восстановление на rAF/timeout/load).

DEPO: на «Обмен с DEPO» рядом с «Вернуть в очередь» добавлена «Снять с очереди» — помечает
застрявшие записи STATE=SKIPPED (QHl04-06, depoDismissFailures), обработчик их больше не берёт
и они уходят из списка ошибок. Для устаревших/ненужных записей (напр. старые тестовые).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
fontvielle
2026-10-13 13:15:34 +03:00
parent 23dd4b43bc
commit 2d2fbb6732
6 changed files with 104 additions and 9 deletions
+27
View File
@@ -302,6 +302,33 @@ func (h *setupHandlers) fancyQueueRequeue(w http.ResponseWriter, r *http.Request
http.Redirect(w, r, "/admin/fancy-queue?flash="+url.QueryEscape(msg), http.StatusSeeOther)
}
// fancyQueueDismiss — POST /admin/fancy-queue/dismiss: снять записи с ошибкой с очереди
// (STATE='SKIPPED'). Для устаревших/ненужных записей, которые не нужно переобрабатывать:
// обработчик их больше не берёт и из списка ошибок они пропадают.
func (h *setupHandlers) fancyQueueDismiss(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "method", http.StatusMethodNotAllowed)
return
}
msg := ""
db, err := depoEventsDB(h.rc)
if err == nil {
ctx, cancel := context.WithTimeout(r.Context(), 30*time.Second)
var o, e int64
o, e, err = depoDismissFailures(ctx, db, 7)
cancel()
db.Close()
if err == nil {
msg = fmt.Sprintf("Снято с очереди: поручений %d, событий %d. Обработчик их больше не возьмёт, из списка ошибок они убраны.", o, e)
log.Printf("depo-events: записи с ошибкой сняты с очереди: поручений %d, событий %d", o, e)
}
}
if err != nil {
msg = "Не удалось снять записи с очереди: " + quikErrorDetail(err)
}
http.Redirect(w, r, "/admin/fancy-queue?flash="+url.QueryEscape(msg), http.StatusSeeOther)
}
func depoJobModeRu(m string) string {
switch m {
case "bj":