v1.1.8: instance type column — 3 columns: name | service | status

This commit is contained in:
2026-07-28 13:33:19 +04:00
parent 9b003b4723
commit a3ecbcd6c4
2 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ from routes.api import bp as api_bp
from routes.api_test import bp as api_test_bp from routes.api_test import bp as api_test_bp
# Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI. # Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI.
VERSION = "1.1.7" VERSION = "1.1.8"
app = Flask(__name__, template_folder="templates", static_folder="static") 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") app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc")
+6 -2
View File
@@ -27,6 +27,7 @@
*/ */
let svcInstances=[], selectedInst=null, selectedOp=null, pollTimer=null; let svcInstances=[], selectedInst=null, selectedOp=null, pollTimer=null;
let currentSvcId=1; // динамический — обновляется при selectService() let currentSvcId=1; // динамический — обновляется при selectService()
let currentSvcName=''; // имя текущего сервиса (колонка «тип инстанса»)
const AUTOTEST_PREFIX='autotest-'; const AUTOTEST_PREFIX='autotest-';
// Первый сервис из списка (рендерится Jinja2) // Первый сервис из списка (рендерится Jinja2)
@@ -45,13 +46,15 @@ async function selectService(svcId){
const r=await fetch('/api/operations/'+svcId); const r=await fetch('/api/operations/'+svcId);
const d=await r.json(); const d=await r.json();
svcInstances=d.instances||[]; svcInstances=d.instances||[];
currentSvcName=d.svc||'';
let html=''; let html='';
svcInstances.forEach(i=>{ svcInstances.forEach(i=>{
const status=i.status||i.explainedStatus||'?'; const status=i.status||i.explainedStatus||'?';
const sc=status==='running'?'badge-success':''; const sc=status==='running'?'badge-success':'';
html+=`<div class="inst-item" onclick="toggleInstance('${i.instanceUid}')" data-iuid="${i.instanceUid}"> html+=`<div class="inst-item" onclick="toggleInstance('${i.instanceUid}')" data-iuid="${i.instanceUid}">
<span style="flex:1;">${i.displayName}</span> <span style="display:inline-block;width:220px;">${i.displayName}</span>
<span style="display:inline-block;width:160px;color:var(--muted);font-size:11px;">${currentSvcName}</span>
<span class="badge ${sc}" style="font-size:9px;">${status}</span> <span class="badge ${sc}" style="font-size:9px;">${status}</span>
</div>`; </div>`;
html+=`<div class="inst-ops" id="ops-${i.instanceUid}"></div>`; html+=`<div class="inst-ops" id="ops-${i.instanceUid}"></div>`;
@@ -316,7 +319,8 @@ async function refreshInstances(){
const status=i.status||i.explainedStatus||'?'; const status=i.status||i.explainedStatus||'?';
const sc=status==='running'?'badge-success':''; const sc=status==='running'?'badge-success':'';
html+=`<div class="inst-item" onclick="toggleInstance('${i.instanceUid}')" data-iuid="${i.instanceUid}"> html+=`<div class="inst-item" onclick="toggleInstance('${i.instanceUid}')" data-iuid="${i.instanceUid}">
<span style="flex:1;">${i.displayName}</span> <span style="display:inline-block;width:220px;">${i.displayName}</span>
<span style="display:inline-block;width:160px;color:var(--muted);font-size:11px;">${currentSvcName}</span>
<span class="badge ${sc}" style="font-size:9px;">${status}</span> <span class="badge ${sc}" style="font-size:9px;">${status}</span>
</div>`; </div>`;
html+=`<div class="inst-ops" id="ops-${i.instanceUid}"></div>`; html+=`<div class="inst-ops" id="ops-${i.instanceUid}"></div>`;