v1.0.89: detailed code comments — all Python files + index.html architecture overview
This commit is contained in:
@@ -41,6 +41,19 @@
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
=== ПЕРЕМЕННЫЕ ШАБЛОНА JINJA2 ===
|
||||
config.VERSION — версия приложения (топбар)
|
||||
token_info.email — email пользователя (топбар)
|
||||
token_info.company — профиль/компания (топбар)
|
||||
stand — стенд: dev/test (топбар)
|
||||
env_token_masked — маскированный env-токен (placeholder)
|
||||
has_user_token — True если пользователь ввёл свой токен
|
||||
organization — организация (serviceId=19)
|
||||
instance_groups — {svc_name: [instances]} для левой колонки
|
||||
error — сообщение об ошибке
|
||||
-->
|
||||
|
||||
<div class="topbar">
|
||||
<img src="{{ url_for('static', filename='logo.svg') }}" alt="Nubes" style="height:22px;" />
|
||||
<span style="font-size:11px;color:var(--muted);">v{{ config.VERSION }}</span>
|
||||
@@ -111,6 +124,30 @@
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/*
|
||||
* === АРХИТЕКТУРА ФРОНТЕНДА ===
|
||||
*
|
||||
* Один HTML-файл, ванильный JS (без фреймворков).
|
||||
* Три колонки: инфраструктура | сервисы | инстансы+операции+параметры.
|
||||
*
|
||||
* Глобальное состояние:
|
||||
* svcInstances — кеш списка инстансов из /api/operations/{svcId}
|
||||
* selectedInst — UID выбранного инстанса (null если не выбран)
|
||||
* selectedOp — {opId, opName, svcId} выбранная операция
|
||||
* pollTimer — setInterval таймер поллинга статуса операции
|
||||
* SVC_ID = 1 — фиксированный сервис (Болванка)
|
||||
* AUTOTEST_PREFIX — префикс имён autotest-инстансов
|
||||
*
|
||||
* Потоки:
|
||||
* CREATE: startCreate() → showParams(18,'create') → executeOp(pp) → poll → refresh
|
||||
* MODIFY: toggleInstance() → runOp('modify',id) → showParams(id,'modify') → validate → executeOp
|
||||
* БЕЗ ПАРАМЕТРОВ (delete/suspend/resume/redeploy): runOp() → confirm → executeOp({})
|
||||
*
|
||||
* Хелперы:
|
||||
* _esc(s) — HTML-экранирование (" → " & → & < → <)
|
||||
* validateJson() — проверка JSON.parse для map-полей (onblur + перед отправкой)
|
||||
* showStages() — отрисовка этапов выполнения операции (⏳/✅/❌)
|
||||
*/
|
||||
let svcInstances=[], selectedInst=null, selectedOp=null, pollTimer=null;
|
||||
const SVC_ID=1;
|
||||
const AUTOTEST_PREFIX='autotest-';
|
||||
|
||||
Reference in New Issue
Block a user