ui: bulk-edit edits cells in place instead of a stacked per-row form

"Изменить" previously replaced each camera row with a vertical .cam-edit-grid
form inside one colspan cell — effectively a different table. Now bulk edit
keeps the same columns and turns the cells into compact inline inputs:
Камера→name, IP→ip, Потоки→main/sub, Вкл/Запись toggles, Хранилище select,
and the Статус column becomes Логин/Пароль (header swaps via data-bulk-label).
Live per-row onchange is suppressed while bulk is active (changes collected
until Сохранить). Inputs are compact (22px) so row height stays dense.

VERSION 0.0.131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 20:01:50 +05:00
parent 421f873160
commit abc726b5a7
4 changed files with 50 additions and 25 deletions
+11
View File
@@ -443,6 +443,17 @@ table.cams td select.stor-sel {
border-radius: 5px; width: 100%; max-width: 150px; box-sizing: border-box;
vertical-align: middle;
}
/* массовое редактирование: инпуты прямо в ячейках, компактные (высота строки не растёт) */
table.cams td input.cell-in {
height: 22px; padding: 1px 6px; font-size: 12px; line-height: 1;
border-radius: 5px; width: 100%; box-sizing: border-box; vertical-align: middle;
background: var(--panel-2); border: 1px solid var(--border); color: var(--text);
}
table.cams td input.cell-in:focus { outline: none; border-color: #c0392b; }
table.cams td.cell-dual { white-space: nowrap; }
table.cams td.cell-dual input.cell-in { display: inline-block; width: calc(50% - 3px); }
table.cams td.cell-dual input.cell-in + input.cell-in { margin-left: 4px; }
table.cams tr.bulk-row td { background: rgba(192, 57, 43, .05); }
.badge {
display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px;
border-radius: 11px; font-size: 12px; background: var(--panel-2);