v1.2.18: fix onOpChange — сохранять выбранную операцию в step.operation, авто-показ облачных инстансов для не-create

This commit is contained in:
2026-07-31 17:40:33 +04:00
parent b8e7292667
commit e0e16b91a8
2 changed files with 19 additions and 4 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ from routes.api_scenario_defs import bp_defs as api_scenario_defs_bp
# Версия — показывается в топбаре UI. Меняется при КАЖДОМ изменении кода.
# Нужна для фильтрации истории (пользователь видит только записи своей версии).
VERSION = "1.2.17"
VERSION = "1.2.18"
# Flask-приложение с Jinja2-шаблонами из папки templates/
app = Flask(__name__, template_folder="templates", static_folder="static")
+18 -3
View File
@@ -385,11 +385,26 @@ function renderStepRow(idx, step) {
// ═══════════════════════════════════════════════════════
/**
* Изменение операции в выпадающем списке → сброс параметров + перерисовка.
* Изменение операции в выпадающем списке → сохранить выбор + сброс + перерисовка.
*
* ВАЖНО: сначала читаем новое значение из DOM-селекта и сохраняем в step.operation,
* иначе renderEditor() перерисует старый селект (предыдущее значение).
*/
function onOpChange(idx) {
scenarioEditorState.steps[idx].params = {}; // сброс сохранённых параметров
scenarioEditorState.steps[idx]._svcOpId = null; // сброс кеша svcOpId
// Считать новое значение из DOM ДО перерисовки
const opEl = document.getElementById('step-' + idx + '-op');
const newOp = (opEl?.value || '').trim();
const step = scenarioEditorState.steps[idx];
step.operation = newOp; // сохранить выбранную операцию
step.params = {}; // сброс параметров (для новой операции — другие)
step._svcOpId = null; // сброс кеша svcOperationId
// Для не-create: автоматически показать облачные инстансы
if (newOp && newOp !== 'create') {
step._showCloud = true;
}
renderEditor();
}