main
vue 47 lines 1.15 KB
Raw
1 <template>
2 <div class="alerts-stats-item flex items-stretch">
3 <div class="info flex grow flex-col justify-center gap-1">
4 <div
5 v-if="summary.agent_name"
6 class="agent"
7 :class="{ 'text-secondary': summary.agent_name && summary.rule }"
8 >
9 {{ summary.agent_name }}
10 </div>
11 <div v-if="summary.rule" class="rule">
12 {{ summary.rule }}
13 </div>
14 </div>
15 <div class="count flex items-center justify-center font-mono">
16 <span v-if="summary.number_of_alerts">
17 {{ summary.number_of_alerts }}
18 </span>
19 </div>
20 </div>
21 </template>
22
23 <script setup lang="ts">
24 import type { AlertsByHost, AlertsByRule, AlertsByRulePerHost } from "@/types/alerts.d"
25
26 const { summary } = defineProps<{ summary: Partial<AlertsByHost & AlertsByRule & AlertsByRulePerHost> }>()
27 </script>
28
29 <style lang="scss" scoped>
30 .alerts-stats-item {
31 border-radius: var(--border-radius);
32 overflow: hidden;
33 background-color: var(--bg-secondary-color);
34 border: 1px solid var(--border-color);
35
36 .info {
37 border-right: 1px solid var(--border-color);
38 padding: 16px 20px;
39 }
40
41 .count {
42 min-width: 50px;
43 background-color: var(--bg-default-color);
44 font-weight: bold;
45 }
46 }
47 </style>