From e0e16b91a8ca39482b1a85ce6040f784d695be77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Fri, 31 Jul 2026 17:40:33 +0400 Subject: [PATCH] =?UTF-8?q?v1.2.18:=20fix=20onOpChange=20=E2=80=94=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D1=82=D1=8C=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D1=83=D1=8E=20=D0=BE=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B2=20step.operation,?= =?UTF-8?q?=20=D0=B0=D0=B2=D1=82=D0=BE-=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BB=D0=B0=D1=87=D0=BD=D1=8B=D1=85=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D1=81=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=BD=D0=B5-create?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- site/app.py | 2 +- site/static/js/scenario-form.js | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/site/app.py b/site/app.py index 534312b..f1f8325 100644 --- a/site/app.py +++ b/site/app.py @@ -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") diff --git a/site/static/js/scenario-form.js b/site/static/js/scenario-form.js index 42fab86..8c79c0d 100644 --- a/site/static/js/scenario-form.js +++ b/site/static/js/scenario-form.js @@ -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(); }