feat: документация из Nextcloud, график у сотрудника, автоочистка фото, мониторинг, итог мастера, фильтр по местам; доп. сервисы в docker-compose
- docker-compose.yml: профили docs (Nextcloud), office (ONLYOFFICE Document Server), ai (Ollama + скачивание модели) - автонастройка: адреса Nextcloud, ONLYOFFICE, портала и модели подставляются из .env или по именам сервисов во внутренней сети Docker; значения из интерфейса важнее - локальная модель в своей сети (имя сервиса, частный IP) подключается без ключа API - .env.example, docs/DEPLOY.md (раздел 7а), README
This commit is contained in:
@@ -276,3 +276,29 @@ button.fault{background:var(--fault);border-color:var(--fault);color:#fff}
|
||||
.fbmodal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
|
||||
.fbmodal .card{width:min(560px,100%);margin:0}.fbmodal textarea{width:100%}
|
||||
.fbcard.fb-new{border-left:4px solid var(--accent)}.fbcard.fb-taken{border-left:4px solid var(--warn)}.fbcard.fb-done{opacity:.8}
|
||||
|
||||
/* документация из Nextcloud */
|
||||
.dcmodal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
|
||||
.dcmodal .card{width:min(640px,100%);max-height:86vh;overflow:auto;margin:0}
|
||||
.crumbs{font-size:14px;margin:4px 0 10px;word-break:break-word}.crumbs a{text-decoration:none}
|
||||
.dclist{display:flex;flex-direction:column;gap:2px;margin:0}
|
||||
.dcrow{display:flex;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;color:var(--text);text-decoration:none;word-break:break-word}
|
||||
.dcrow:hover,.dcrow.on{background:var(--bg)}
|
||||
.dcwrap{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:12px;align-items:start}.dcwrap>.card{margin:0}
|
||||
@media (max-width:900px){.dcwrap{grid-template-columns:1fr}}
|
||||
.dcframe{width:100%;height:78vh;border:1px solid var(--line);border-radius:8px;background:#fff}
|
||||
.dcimg{max-width:100%;border-radius:8px}.dctext{white-space:pre-wrap;max-height:78vh;overflow:auto;font-size:13px;margin:0}
|
||||
.docsai{margin-top:16px;border-top:1px solid var(--line);padding-top:6px}
|
||||
.sheet.risk{border-left:4px solid var(--warn);margin-top:8px}.sheet.risk ul{margin:6px 0 0;padding-left:18px}.sheet.risk li{margin:3px 0}
|
||||
|
||||
/* мониторинг сервера */
|
||||
.gauges{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.gauges .card{margin:0}
|
||||
.gauge{text-align:center}.gauge h2{margin:0 0 6px;font-size:16px}
|
||||
.donut{width:150px;height:150px;display:block;margin:4px auto 8px}.donut circle{transition:stroke-dasharray .6s}
|
||||
.donut-v{font-size:24px;font-weight:700;fill:var(--text)}
|
||||
|
||||
/* мониторинг сервера */
|
||||
.gauges{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.gauges .card{margin:0}
|
||||
.gauge{text-align:center}.gauge h2{margin:0 0 6px;font-size:16px}
|
||||
.donut{width:150px;height:150px;display:block;margin:4px auto 8px}.donut circle{transition:stroke-dasharray .6s}
|
||||
.donut-v{font-size:24px;font-weight:700;fill:var(--text)}
|
||||
|
||||
Reference in New Issue
Block a user