front-back integrated

This commit is contained in:
2026-09-30 02:25:03 +03:00
parent 93ca76c6e1
commit 1f81632083
13 changed files with 298 additions and 27 deletions
+16 -1
View File
@@ -148,15 +148,30 @@ export function renderWorkoutDetails(w) {
// Блок завершения
const finishBlock = document.createElement('div');
finishBlock.className = 'finish-block';
if (isReadOnly) {
finishBlock.innerHTML = `
<h3>🔒 Архив</h3>
<p class="text-muted text-small">Тренировка синхронизирована и завершена. Редактирование недоступно.</p>`;
} else if (isActive) {
// Проверяем, есть ли уже данные в тренировке
const hasData = (w.exercises && w.exercises.length > 0) || (w.cardio && w.cardio.length > 0);
// Кнопка отмены показывается ТОЛЬКО если тренировка пустая
const cancelBtnHtml = !hasData ? `
<button class="btn btn-ghost mt-10" style="color: var(--danger); border-color: var(--danger);" onclick="WL.cancelEmptyWorkout('${w.id}')">
✕ Отменить пустую тренировку
</button>
` : '';
finishBlock.innerHTML = `
<h3>Завершение тренировки</h3>
<p class="text-muted text-small">После завершения данные останутся локально до синхронизации</p>
<button class="btn btn-danger" onclick="WL.finishWorkout('${w.id}')">⏹ Закончить тренировку</button>`;
<div style="display: flex; flex-direction: column; gap: 10px; margin-top: 10px;">
${cancelBtnHtml}
<button class="btn btn-danger" onclick="WL.finishWorkout('${w.id}')">⏹ Закончить тренировку</button>
</div>
`;
} else {
finishBlock.innerHTML = `
<h3>Тренировка завершена</h3>