fix(ui): table actions column layout and resolved label
Move flex off td.actions to inner wrapper; show Закрыта for resolved problems. SAC 0.8.2. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
"""Единый источник версии SAC (API, health, логи, OpenAPI)."""
|
"""Единый источник версии SAC (API, health, логи, OpenAPI)."""
|
||||||
|
|
||||||
APP_NAME = "Security Alert Center"
|
APP_NAME = "Security Alert Center"
|
||||||
APP_VERSION = "0.8.1"
|
APP_VERSION = "0.8.2"
|
||||||
APP_VERSION_LABEL = f"{APP_NAME} v.{APP_VERSION}"
|
APP_VERSION_LABEL = f"{APP_NAME} v.{APP_VERSION}"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ a {
|
|||||||
|
|
||||||
.sac-host-row td.actions {
|
.sac-host-row td.actions {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sac-host-row:hover td.actions,
|
.sac-host-row:hover td.actions,
|
||||||
@@ -113,9 +114,27 @@ th {
|
|||||||
}
|
}
|
||||||
|
|
||||||
td.actions {
|
td.actions {
|
||||||
|
vertical-align: middle;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.actions .actions-inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.35rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actions-muted {
|
||||||
|
color: #9aa4b2;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.35rem;
|
gap: 0.35rem;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
export const APP_NAME = "Security Alert Center";
|
export const APP_NAME = "Security Alert Center";
|
||||||
export const APP_VERSION = "0.8.1";
|
export const APP_VERSION = "0.8.2";
|
||||||
export const APP_VERSION_LABEL = `${APP_NAME} v.${APP_VERSION}`;
|
export const APP_VERSION_LABEL = `${APP_NAME} v.${APP_VERSION}`;
|
||||||
|
|||||||
@@ -61,15 +61,17 @@
|
|||||||
<td>{{ formatDt(h.last_seen_at) }}</td>
|
<td>{{ formatDt(h.last_seen_at) }}</td>
|
||||||
<td>{{ h.event_count ?? 0 }}</td>
|
<td>{{ h.event_count ?? 0 }}</td>
|
||||||
<td class="actions" @click.stop>
|
<td class="actions" @click.stop>
|
||||||
<button
|
<div class="actions-inner">
|
||||||
type="button"
|
<button
|
||||||
class="danger"
|
type="button"
|
||||||
:disabled="deletingId === h.id"
|
class="danger"
|
||||||
title="Удалить хост и все его события"
|
:disabled="deletingId === h.id"
|
||||||
@click="confirmDelete(h)"
|
title="Удалить хост и все его события"
|
||||||
>
|
@click="confirmDelete(h)"
|
||||||
Удалить
|
>
|
||||||
</button>
|
Удалить
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
<button v-if="problem.status !== 'resolved'" type="button" :disabled="acting" @click="doResolve">
|
<button v-if="problem.status !== 'resolved'" type="button" :disabled="acting" @click="doResolve">
|
||||||
Resolve
|
Resolve
|
||||||
</button>
|
</button>
|
||||||
|
<span v-else class="actions-muted">Закрыта</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -50,23 +50,26 @@
|
|||||||
<RouterLink :to="`/problems/${p.id}`">{{ p.title }}</RouterLink>
|
<RouterLink :to="`/problems/${p.id}`">{{ p.title }}</RouterLink>
|
||||||
</td>
|
</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
<button
|
<div class="actions-inner">
|
||||||
v-if="p.status === 'open'"
|
<button
|
||||||
type="button"
|
v-if="p.status === 'open'"
|
||||||
class="secondary"
|
type="button"
|
||||||
:disabled="actingId === p.id"
|
class="secondary"
|
||||||
@click="doAck(p.id)"
|
:disabled="actingId === p.id"
|
||||||
>
|
@click="doAck(p.id)"
|
||||||
Ack
|
>
|
||||||
</button>
|
Ack
|
||||||
<button
|
</button>
|
||||||
v-if="p.status !== 'resolved'"
|
<button
|
||||||
type="button"
|
v-if="p.status !== 'resolved'"
|
||||||
:disabled="actingId === p.id"
|
type="button"
|
||||||
@click="doResolve(p.id)"
|
:disabled="actingId === p.id"
|
||||||
>
|
@click="doResolve(p.id)"
|
||||||
Resolve
|
>
|
||||||
</button>
|
Resolve
|
||||||
|
</button>
|
||||||
|
<span v-if="p.status === 'resolved'" class="actions-muted">Закрыта</span>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Reference in New Issue
Block a user