Files

44 lines
1.9 KiB
JavaScript

// 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);
}
}