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:
+1
-1
@@ -32,7 +32,7 @@ from routes.api_scenario_defs import bp_defs as api_scenario_defs_bp
|
||||
|
||||
# Версия — показывается в топбаре UI. Меняется при КАЖДОМ изменении кода.
|
||||
# Нужна для фильтрации истории (пользователь видит только записи своей версии).
|
||||
VERSION = "1.2.46"
|
||||
VERSION = "1.2.47"
|
||||
|
||||
# Flask-приложение с Jinja2-шаблонами из папки templates/
|
||||
app = Flask(__name__, template_folder="templates", static_folder="static")
|
||||
|
||||
@@ -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