// scenario-create.js — создание и клонирование сценариев // // createScenario() — открыть редактор для нового сценария // cloneScenario(id) — клонировать существующий (prompt имени → POST /api/scenario/definitions) /** * Создать новый сценарий — открывает модальный редактор. */ async function createScenario() { showScenarioEditor(null); // null = новый, без определения } /** * Клонировать существующий сценарий. * * Алгоритм: * 1. prompt — спросить имя для копии * 2. GET /api/scenario/definitions/{id} — загрузить исходные steps * 3. POST /api/scenario/definitions — создать копию с новым именем * 4. Обновить список сценариев * * @param {number} defId — ID исходного сценария * @param {string} origName — имя исходного (для prompt) */ async function cloneScenario(defId, origName) { const newName = prompt('Имя нового сценария (копия «' + origName + '»):', origName + '_copy'); if (!newName) return; try { const r = await fetch('/api/scenario/definitions/' + defId); const def = await r.json(); if (def.error) { alert(def.error); return; } const rr = await fetch('/api/scenario/definitions', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: newName, steps: def.steps }) }); const d = await rr.json(); if (d.error) { alert(d.error); return; } await loadScenarios(); // обновить список } catch (e) { alert('Ошибка клонирования: ' + e.message); } }