BUILD119 — ручной счёт + SQL + составы

This commit is contained in:
2026-08-26 13:54:47 +03:00
parent c5b25c23e2
commit fb422d5bf8
10 changed files with 544 additions and 16 deletions

View File

@@ -817,6 +817,17 @@
<small class="hockey-team-state-inventory-note">vMix: ${escapeHtml(state.timerRulesVmixInventory?.device_name || "Agent не выбран / inventory не загружен")}. Для обновления списка Inputs закройте и снова откройте этот раздел после выбора Agent.</small>
</section>
<section class="hockey-rules-card">
<header><span>06</span><div><strong>Внешний счёт SQL / Mapping</strong><small>Источник начального счёта и кнопки ↻ синхронизации.</small></div></header>
<div class="hockey-rules-example">
<strong>Как использовать:</strong> укажите ключи данных из Mapping для счёта HOME и AWAY, например <code>score_sql.home</code> и <code>score_sql.away</code>. Пока ручной режим не включён, LIVE следует этим значениям. После первого +/ счёт фиксируется вручную; ↻ снова принимает актуальный SQL. Если поля оставить пустыми, используется счёт из карточки матча/API.
</div>
<div class="hockey-rules-fields two">
<label><span>HOME · ключ SQL/Mapping</span><input name="score_external_home_key" maxlength="160" value="${escapeHtml(value.score_external_home_key || "")}" placeholder="Например: score_sql.home"><small>Скопируйте Data key из раздела Mapping.</small></label>
<label><span>AWAY · ключ SQL/Mapping</span><input name="score_external_away_key" maxlength="160" value="${escapeHtml(value.score_external_away_key || "")}" placeholder="Например: score_sql.away"><small>Скопируйте Data key из раздела Mapping.</small></label>
</div>
</section>
<footer class="hockey-rules-actions">
<div><small>Изменения применяются сразу и сохраняются в общих настройках сервера.</small><strong data-rules-save-status></strong></div>
<button type="submit">Сохранить настройки</button>
@@ -857,6 +868,8 @@
strength_state_labels: collectStrengthStateLabels(values),
period_status_labels: collectPeriodStatusLabels(values),
scoreboard_team_states: collectScoreboardTeamStates(values, form),
score_external_home_key: String(values.get("score_external_home_key") || "").trim(),
score_external_away_key: String(values.get("score_external_away_key") || "").trim(),
};
state.timerRules = await request("/api/hockey/settings", { method: "PUT", body: JSON.stringify(payload) });
inlineStatus.textContent = "Настройки сохранены";