diff --git a/site/app.py b/site/app.py index ffcc9f0..0dfa5ae 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.43" +VERSION = "1.2.44" # Flask-приложение с Jinja2-шаблонами из папки templates/ app = Flask(__name__, template_folder="templates", static_folder="static") diff --git a/site/static/js/history.js b/site/static/js/history.js index a0c1d80..1710ff4 100644 --- a/site/static/js/history.js +++ b/site/static/js/history.js @@ -40,21 +40,19 @@ async function loadHistory(){ // Таблица с фиксированной шириной колонок let html=''; - html+=''; + html+=''; rows.forEach((r, i)=>{ const time=r.created_at?r.created_at.replace('T',' ').substring(0,19):'?'; const cls=r.status==='OK'?'badge-success':r.status==='FAIL'?'badge':''; - // Цвет фона строки: RUNNING → жёлтый, FAIL → красный const stCls=r.status==='RUNNING'?'background:#fef3c7;':r.status==='FAIL'?'background:#fef2f2;':''; - // Строка таблицы — кликабельна (раскрывает этапы) html+=` - - - - - + + + + + `; // Скрытая строка с этапами (раскрывается по клику)
ВремяОперацияИнстансСтатусДлит.
ВремяОперацияИнстансСтатусДлит.
${time}${_esc(r.op_name||'?')}${_esc(r.display_name||r.instance_uid||'?')}${_esc(r.status||'?')}${r.duration_sec!=null?r.duration_sec.toFixed(1)+'s':'-'}${time}${_esc(r.op_name||'?')}${_esc(r.display_name||r.instance_uid||'?')}${_esc(r.status||'?')}${r.duration_sec!=null?r.duration_sec.toFixed(1)+'s':'-'}