fix: нельзя сохранить сценарий — валидация + svcId для instance_ref (v1.2.47)

Баг 1: collectFormSteps не вычислял svcId для instance_ref
  (output-ссылка не резолвилась в service_id)
Баг 2: валидация требовала service_id для ВСЕХ шагов,
  включая не-create с instance_ref/instance_uid
This commit is contained in:
“Naeel”
2026-08-04 15:22:57 +04:00
parent 4937c9ea8e
commit 43bd51e715
2 changed files with 19 additions and 4 deletions
+18 -3
View File
@@ -501,7 +501,14 @@ function collectFormSteps() {
svcId = cloud.serviceId;
s.instance_uid = ref; // облачный UUID
} else {
s.instance_ref = ref; // output-ссылка
// output-ссылка — ищем service_id в предыдущих create-шагах
s.instance_ref = ref;
for (let j = 0; j < idx; j++) {
if (st.steps[j].output === ref) {
svcId = st.steps[j].service_id;
break;
}
}
}
}
}
@@ -541,8 +548,16 @@ async function saveScenario() {
if (!name) { alert('Введите название'); return; }
if (!steps.length) { alert('Добавьте хотя бы один шаг'); return; }
for (let i = 0; i < steps.length; i++) {
if (!steps[i].service_id) { alert('Шаг ' + (i+1) + ': выберите сервис или инстанс'); return; }
if (!steps[i].operation) { alert('Шаг ' + (i+1) + ': выберите операцию'); return; }
const s = steps[i];
if (!s.operation) { alert('Шаг ' + (i+1) + ': выберите операцию'); return; }
// CREATE: нужен service_id. Не-CREATE: service_id ИЛИ instance_ref/instance_uid
if (s.operation === 'create') {
if (!s.service_id) { alert('Шаг ' + (i+1) + ': выберите сервис'); return; }
} else {
if (!s.service_id && !s.instance_ref && !s.instance_uid) {
alert('Шаг ' + (i+1) + ': выберите инстанс (из create-шага или облака)'); return;
}
}
}
const st = scenarioEditorState;