«Обновления» — одна карточка состояния и одна кнопка; проверка при открытии раздела; «Службы» — в «Диагностике»

- Сверху: «Установлены последние версии» (когда проверено) или «Доступно обновление X — Установить обновление» (всё сразу), или «Проверить не удалось»; кнопка «Проверить сейчас».
- При открытии раздела bj проверяет обновления сам, если последней проверке больше 10 минут (и не чаще раза в 10 минут из браузера — без зацикливания, если источник не настроен); check отвечает JSON для экрана.
- «Компоненты и версии» (обновить один компонент) и «Расширенные настройки» (обновление из файла, источник и канал, ключ, автопроверка) — под раскрытием.
- «Службы» с перезапуском перенесены в «Диагностику»; подсказка в письме о службе — туда же.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-07 08:19:34 +03:00
parent 56068af897
commit 6b490986e4
4 changed files with 87 additions and 30 deletions
@@ -378,6 +378,25 @@ label { font-size:13px; font-weight:500; }
.quik-term b{color:var(--text);font-weight:600}
.quik-term input{margin-top:3px;flex:none}
.org-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr);gap:10px;max-width:none}
/* карточка состояния (обновления и др.): значок, что происходит, действие справа */
.stc{display:flex;gap:14px;align-items:center;padding:14px 18px;border-radius:12px;border:1px solid var(--border);background:var(--card-2)}
.stc-ic{flex:none;position:relative;width:28px;height:28px;border-radius:50%;background:var(--border-strong)}
.stc-b{flex:1;min-width:0}
.stc-b b{display:block;font-size:15px;font-weight:650}
.stc-b small{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:2px;overflow-wrap:anywhere}
.stc form, .stc .btn{flex:none}
.stc-ok{background:color-mix(in srgb,var(--ok) 9%,var(--card));border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}
.stc-ok .stc-ic{background:var(--ok)}
.stc-ok .stc-ic::after{content:"";position:absolute;left:50%;top:45%;width:6px;height:12px;border:solid #fff;border-width:0 2.2px 2.2px 0;transform:translate(-50%,-50%) rotate(45deg)}
.stc-warn{background:color-mix(in srgb,var(--accent) 8%,var(--card));border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.stc-warn .stc-ic{background:var(--accent)}
.stc-warn .stc-ic::after{content:"↑";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px}
.stc-err{background:var(--warn-weak);border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}
.stc-err .stc-ic{background:var(--warn)}
.stc-err .stc-ic::after{content:"!";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px}
.stc-run .stc-ic{background:none;border:2.5px solid var(--accent-weak);border-top-color:var(--accent);box-sizing:border-box;animation:dq-spin .8s linear infinite}
.stc-run .btn, .stc-run form{visibility:hidden}
@media (max-width:600px){.stc{flex-wrap:wrap}}
@media (max-width:700px){.org-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px) {
.settings { grid-template-columns:1fr; }