Веб-интерфейс: страница /clusters, навигация и крошки для кластеров
- Выделена страница списка кластеров, панель упрощена; nav_active и крошки ведут в раздел Кластеры; theme.js синхронизирует активную пилюлю по URL. - Доработки дашборда, аддонов, журнала, стилей и API-документации. - Поддержка Podman: docker-compose.podman.yml, скрипты сокета; Makefile и env.
This commit is contained in:
+79
-15
@@ -1,4 +1,5 @@
|
||||
{# Агрегированный журнал завершённых заданий (JSON в каталогах кластеров).
|
||||
{# Журналы: задания по кластеру, развёртывание (provision_log), Helm (helm_addon_log).
|
||||
Переключатель режима — как «Простой / Расширенный» на странице редактирования кластера.
|
||||
Автор: Сергей Антропов — https://devops.org.ru #}
|
||||
{% extends "base.html" %}
|
||||
|
||||
@@ -18,7 +19,6 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{# Полноэкранный спиннер до первой загрузки журнала; скрывается в journal.js #}
|
||||
<div
|
||||
id="journal-page-loading-overlay"
|
||||
class="page-loading-overlay"
|
||||
@@ -35,36 +35,100 @@
|
||||
</div>
|
||||
|
||||
<section class="card hero-panel cluster-create-hero" aria-labelledby="journal-hero-title">
|
||||
<h1 class="page-title" id="journal-hero-title">Журнал заданий</h1>
|
||||
<p class="muted page-lead">
|
||||
Записи о завершённых операциях (<strong>create</strong>, <strong>start</strong>, <strong>stop</strong> и др.) хранятся в
|
||||
<code>clusters/<имя>/journal/jobs_history.json</code> на томе с хоста. Сводка по всем кластерам, по <strong>30</strong> записей на страницу;
|
||||
детали задания в процессе — по-прежнему в <a href="/cluster-create">создании кластера</a> и <code>GET /api/v1/jobs/{id}</code>.
|
||||
</p>
|
||||
<h1 class="page-title" id="journal-hero-title">Журналы</h1>
|
||||
</section>
|
||||
|
||||
<section class="card create-cluster-card journal-toolbar-card">
|
||||
<h2 class="create-cluster-card__title">Действия</h2>
|
||||
<div class="journal-toolbar-row">
|
||||
<h2 class="create-cluster-card__title">Вид журнала</h2>
|
||||
|
||||
<fieldset class="cluster-edit-mode-fieldset journal-view-fieldset">
|
||||
<legend class="cluster-edit-mode-legend">Режим просмотра</legend>
|
||||
<div
|
||||
class="cluster-edit-segmented"
|
||||
role="radiogroup"
|
||||
aria-label="Какой журнал показывать"
|
||||
>
|
||||
<div class="cluster-edit-segment-item">
|
||||
<input
|
||||
type="radio"
|
||||
name="journal_view"
|
||||
id="journal-seg-per-cluster"
|
||||
class="cluster-edit-segment-native"
|
||||
value="per_cluster"
|
||||
checked
|
||||
/>
|
||||
<label for="journal-seg-per-cluster" class="cluster-edit-segment-label">
|
||||
<span class="cluster-edit-segment-title">По кластеру</span>
|
||||
<span class="cluster-edit-segment-sub-wrap">
|
||||
<span class="cluster-edit-segment-sub">История заданий</span>
|
||||
<span class="cluster-edit-segment-sub">create / start / stop</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="cluster-edit-segment-item">
|
||||
<input
|
||||
type="radio"
|
||||
name="journal_view"
|
||||
id="journal-seg-provision"
|
||||
class="cluster-edit-segment-native"
|
||||
value="provision"
|
||||
/>
|
||||
<label for="journal-seg-provision" class="cluster-edit-segment-label">
|
||||
<span class="cluster-edit-segment-title">Развёртывание</span>
|
||||
<span class="cluster-edit-segment-sub-wrap">
|
||||
<span class="cluster-edit-segment-sub">Последний provision_log</span>
|
||||
<span class="cluster-edit-segment-sub">по каждому кластеру</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="cluster-edit-segment-item">
|
||||
<input
|
||||
type="radio"
|
||||
name="journal_view"
|
||||
id="journal-seg-helm"
|
||||
class="cluster-edit-segment-native"
|
||||
value="helm_addons"
|
||||
/>
|
||||
<label for="journal-seg-helm" class="cluster-edit-segment-label">
|
||||
<span class="cluster-edit-segment-title">Helm-аддоны</span>
|
||||
<span class="cluster-edit-segment-sub-wrap">
|
||||
<span class="cluster-edit-segment-sub">История операций Helm</span>
|
||||
<span class="cluster-edit-segment-sub">install / delete</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div id="journal-cluster-picker" class="journal-cluster-picker">
|
||||
<label for="journal-cluster-select" class="journal-cluster-picker-label">Кластер</label>
|
||||
<select id="journal-cluster-select" class="journal-cluster-select" aria-describedby="journal-cluster-picker-hint">
|
||||
<option value="">— загрузка —</option>
|
||||
</select>
|
||||
<p id="journal-cluster-picker-hint" class="muted journal-cluster-picker-hint">
|
||||
Журнал заданий только для выбранного каталога в <code>clusters/</code>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="journal-toolbar-actions">
|
||||
<button type="button" class="btn-secondary" id="journal-refresh-btn">Обновить</button>
|
||||
<span class="muted journal-page-size-hint">На странице по <strong>30</strong> записей.</span>
|
||||
</div>
|
||||
<p id="journal-status" class="muted journal-status" role="status" aria-live="polite"></p>
|
||||
</section>
|
||||
|
||||
<section class="card journal-list-card">
|
||||
<h2 class="create-cluster-card__title">Последние записи</h2>
|
||||
<div id="journal-empty" class="muted journal-empty hidden">Нет записей в журналах кластеров (или каталоги кластеров ещё не созданы).</div>
|
||||
<h2 class="create-cluster-card__title" id="journal-table-section-title">Записи</h2>
|
||||
<div id="journal-empty" class="muted journal-empty hidden">Нет записей.</div>
|
||||
<div id="journal-table-wrap" class="journal-table-wrap">
|
||||
<table class="journal-table" id="journal-table" aria-describedby="journal-hero-title">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Завершено (UTC)</th>
|
||||
<th scope="col">Кластер</th>
|
||||
<th scope="col">Тип</th>
|
||||
<th scope="col" id="journal-th-kind">Тип / операция</th>
|
||||
<th scope="col">Статус</th>
|
||||
<th scope="col">Сообщение</th>
|
||||
<th scope="col">Журнал</th>
|
||||
<th scope="col">Лог</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="journal-tbody"></tbody>
|
||||
|
||||
Reference in New Issue
Block a user