diff --git a/site/app.py b/site/app.py
index 78b2245..a3164da 100644
--- a/site/app.py
+++ b/site/app.py
@@ -19,7 +19,7 @@ from routes.api_scenario_run import bp_run as api_scenario_run_bp
from routes.api_scenario_defs import bp_defs as api_scenario_defs_bp
# Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI.
-VERSION = "1.1.56"
+VERSION = "1.1.57"
app = Flask(__name__, template_folder="templates", static_folder="static")
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc")
diff --git a/site/static/js/instances.js b/site/static/js/instances.js
index 2464e7b..7752272 100644
--- a/site/static/js/instances.js
+++ b/site/static/js/instances.js
@@ -35,8 +35,10 @@ function renderInstances(){
const sc=status==='running'?'badge-success':'';
html+=`
${_esc(i.displayName)}
- ${_esc(i.svc||'')}
+ ${_esc(i.svc||'')}
${_esc(status)}
+ ${relativeTime(i.instanceConfigDtCreated)}
+ ${relativeTime(i.instanceConfigDtModified)}
`;
html+=``;
});
diff --git a/site/static/js/scenario-form.js b/site/static/js/scenario-form.js
index a03f139..704555d 100644
--- a/site/static/js/scenario-form.js
+++ b/site/static/js/scenario-form.js
@@ -15,6 +15,7 @@ function showScenarioEditor(def) {
}
function renderEditor() {
+ const body = document.getElementById('scenario-body');
const st = scenarioEditorState;
let html = '';
html += '
';
diff --git a/site/static/js/utils.js b/site/static/js/utils.js
index b28f442..2461acb 100644
--- a/site/static/js/utils.js
+++ b/site/static/js/utils.js
@@ -43,3 +43,18 @@ function toggleLog(){
if(el.style.display==='none'){ el.style.display='block'; startLogPoll(); }
else el.style.display='none';
}
+
+function relativeTime(iso) {
+ if (!iso) return '-';
+ const d = new Date(iso);
+ if (isNaN(d.getTime())) return '-';
+ const sec = Math.floor((Date.now() - d.getTime()) / 1000);
+ if (sec < 0) return 'только что';
+ if (sec < 60) return sec + 'с';
+ const min = Math.floor(sec / 60);
+ if (min < 60) return min + 'м';
+ const hr = Math.floor(min / 60);
+ if (hr < 24) return hr + 'ч ' + (min % 60) + 'м';
+ const days = Math.floor(hr / 24);
+ return days + 'д ' + (hr % 24) + 'ч';
+}
diff --git a/site/templates/index.html b/site/templates/index.html
index bb48b77..7e8a645 100644
--- a/site/templates/index.html
+++ b/site/templates/index.html
@@ -86,7 +86,7 @@
{% for i in items %}
- | {{ i.displayName }} | {{ i.explainedStatus or '?' }} |
+ {{ i.displayName }} {{ i.instanceUid }} | {{ i.explainedStatus or '?' }} |
{% endfor %}