v0.5.14: шапка в одну строку, стенды — большие кнопки по центру
This commit is contained in:
@@ -80,7 +80,7 @@ SERVICES = _DF["SERVICES"]
|
|||||||
OPS_INDEX = _DF["OPS_INDEX"]
|
OPS_INDEX = _DF["OPS_INDEX"]
|
||||||
|
|
||||||
DELAY = float(os.getenv("MOCK_OP_DELAY", "0.1"))
|
DELAY = float(os.getenv("MOCK_OP_DELAY", "0.1"))
|
||||||
VERSION = "0.5.13"
|
VERSION = "0.5.14"
|
||||||
|
|
||||||
|
|
||||||
def get_services(stand_id):
|
def get_services(stand_id):
|
||||||
|
|||||||
+38
-24
@@ -38,7 +38,7 @@ body {
|
|||||||
.header {
|
.header {
|
||||||
background: var(--bg);
|
background: var(--bg);
|
||||||
border-bottom: 4px solid var(--brand-primary);
|
border-bottom: 4px solid var(--brand-primary);
|
||||||
padding: 16px 24px 12px;
|
padding: 12px 24px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
@@ -47,8 +47,17 @@ body {
|
|||||||
.header-top {
|
.header-top {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 10px;
|
||||||
margin-bottom: 8px;
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-stat {
|
||||||
|
font-size: 13px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-stat strong {
|
||||||
|
color: var(--text);
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
@@ -74,45 +83,50 @@ body {
|
|||||||
color: var(--brand-gray);
|
color: var(--brand-gray);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ── Header stands chips ── */
|
/* ── Stands section (centered big cards) ── */
|
||||||
.header-stands {
|
.stands-section {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 8px;
|
justify-content: center;
|
||||||
margin-top: 8px;
|
gap: 16px;
|
||||||
|
padding: 32px 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stand-chip {
|
.stands-section .stand-card {
|
||||||
display: flex;
|
min-width: 160px;
|
||||||
align-items: center;
|
padding: 20px 24px;
|
||||||
gap: 6px;
|
background: var(--bg);
|
||||||
padding: 4px 14px;
|
|
||||||
border: 2px solid var(--border);
|
border: 2px solid var(--border);
|
||||||
border-radius: 100px;
|
border-radius: var(--radius);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 13px;
|
text-align: center;
|
||||||
font-weight: 600;
|
|
||||||
color: var(--text-muted);
|
|
||||||
transition: all 0.15s;
|
transition: all 0.15s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stand-chip:hover {
|
.stands-section .stand-card:hover {
|
||||||
border-color: var(--brand-primary);
|
border-color: var(--brand-primary);
|
||||||
color: var(--brand-primary);
|
box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.stand-chip .stand-name {
|
.stands-section .stand-name {
|
||||||
|
display: block;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 800;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-size: 12px;
|
color: var(--text);
|
||||||
|
margin-bottom: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stand-chip .stand-count {
|
.stands-section .stand-count {
|
||||||
font-size: 11px;
|
font-size: 14px;
|
||||||
opacity: 0.7;
|
color: var(--text-muted);
|
||||||
}
|
}
|
||||||
|
|
||||||
.stand-active {
|
.stands-section .stand-active {
|
||||||
border-color: var(--brand-primary);
|
border-color: var(--brand-primary);
|
||||||
background: #eff6ff;
|
background: #eff6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stands-section .stand-active .stand-name {
|
||||||
color: var(--brand-primary);
|
color: var(--brand-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-15
@@ -15,31 +15,32 @@
|
|||||||
<img src="{{ url_for('static', filename='logo.svg') }}" alt="Nubes" class="logo" width="150" height="33">
|
<img src="{{ url_for('static', filename='logo.svg') }}" alt="Nubes" class="logo" width="150" height="33">
|
||||||
<span class="badge badge-blue">polygon v{{ version }}</span>
|
<span class="badge badge-blue">polygon v{{ version }}</span>
|
||||||
<a href="/swagger" class="swagger-link">📋 Swagger</a>
|
<a href="/swagger" class="swagger-link">📋 Swagger</a>
|
||||||
</div>
|
<span class="sep">·</span>
|
||||||
<div class="header-status">
|
|
||||||
<span class="dot dot-green"></span>
|
<span class="dot dot-green"></span>
|
||||||
<span class="status-text">Работает</span>
|
<span class="status-text">Работает</span>
|
||||||
<span class="sep">·</span>
|
<span class="sep">·</span>
|
||||||
<span>Сервисов: <strong>{{ svc_count }}</strong></span>
|
<span class="header-stat">Сервисов: <strong>{{ svc_count }}</strong></span>
|
||||||
<span class="sep">·</span>
|
<span class="sep">·</span>
|
||||||
<span>Инстансов: <strong>{{ inst_count }}</strong></span>
|
<span class="header-stat">Инстансов: <strong>{{ inst_count }}</strong></span>
|
||||||
<span class="sep">·</span>
|
<span class="sep">·</span>
|
||||||
<span>Задержка: <strong>{{ delay }}s</strong></span>
|
<span class="header-stat">Задержка: <strong>{{ delay }}s</strong></span>
|
||||||
</div>
|
</div>
|
||||||
{% if stands_list|length > 1 %}
|
|
||||||
<div class="header-stands">
|
|
||||||
{% for s in stands_list %}
|
|
||||||
<a href="/{{ s.id }}/" class="stand-chip {% if s.id == current_stand %}stand-active{% endif %}">
|
|
||||||
<span class="stand-name">{{ s.id }}</span>
|
|
||||||
<span class="stand-count">{{ s.count }}</span>
|
|
||||||
</a>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
|
<!-- ── Стенды ── -->
|
||||||
|
{% if stands_list|length > 1 %}
|
||||||
|
<section class="stands-section">
|
||||||
|
{% for s in stands_list %}
|
||||||
|
<a href="/{{ s.id }}/" class="stand-card {% if s.id == current_stand %}stand-active{% endif %}">
|
||||||
|
<span class="stand-name">{{ s.id }}</span>
|
||||||
|
<span class="stand-count">{{ s.count }} сервисов</span>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
</section>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!-- ── Что такое Polygon ── -->
|
<!-- ── Что такое Polygon ── -->
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
|
|||||||
Reference in New Issue
Block a user