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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user