Skip to content

Commit 105cc68

Browse files
committed
show status icons
1 parent b148921 commit 105cc68

File tree

2 files changed

+152
-4
lines changed

2 files changed

+152
-4
lines changed

src/Frontend/src/components/audit/AuditList.vue

Lines changed: 96 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,46 @@ import { ColumnNames, useAuditStore } from "@/stores/AuditStore";
44
import { storeToRefs } from "pinia";
55
import { useRoute } from "vue-router";
66
import DataView from "../DataView.vue";
7+
import SortableColumn from "../SortableColumn.vue";
8+
import { MessageStatus } from "@/resources/Message";
79
810
const route = useRoute();
911
const store = useAuditStore();
1012
const { messages, sortByInstances, itemsPerPage } = storeToRefs(store);
13+
14+
function statusToName(messageStatus: MessageStatus) {
15+
switch (messageStatus) {
16+
case MessageStatus.Successful:
17+
return "Successful";
18+
case MessageStatus.ResolvedSuccessfully:
19+
return "Successful after retries";
20+
case MessageStatus.Failed:
21+
return "Failed";
22+
case MessageStatus.ArchivedFailure:
23+
return "Failed message deleted";
24+
case MessageStatus.RepeatedFailure:
25+
return "Repeated Failures";
26+
case MessageStatus.RetryIssued:
27+
return "Retry requested";
28+
}
29+
}
30+
31+
function statusToIcon(messageStatus: MessageStatus) {
32+
switch (messageStatus) {
33+
case MessageStatus.Successful:
34+
return "fa successful";
35+
case MessageStatus.ResolvedSuccessfully:
36+
return "fa resolved-successfully";
37+
case MessageStatus.Failed:
38+
return "fa failed";
39+
case MessageStatus.ArchivedFailure:
40+
return "fa archived";
41+
case MessageStatus.RepeatedFailure:
42+
return "fa repeated-failure";
43+
case MessageStatus.RetryIssued:
44+
return "fa retry-issued";
45+
}
46+
}
1147
</script>
1248

1349
<template>
@@ -36,8 +72,8 @@ const { messages, sortByInstances, itemsPerPage } = storeToRefs(store);
3672
<template #data="{ pageData }">
3773
<div role="rowgroup" aria-label="endpoints">
3874
<div role="row" :aria-label="message.message_id" class="row grid-row" v-for="message in pageData" :key="message.id">
39-
<div role="cell" aria-label="instance-name" class="status">
40-
{{ "todo" }}
75+
<div role="cell" aria-label="status" class="status" :title="statusToName(message.status)">
76+
<div class="status-icon" :class="statusToIcon(message.status)"></div>
4177
</div>
4278
<div role="cell" aria-label="message-id" class="col-3 message-id">
4379
<div class="box-header">
@@ -46,7 +82,7 @@ const { messages, sortByInstances, itemsPerPage } = storeToRefs(store);
4682
<p :style="{ overflowWrap: 'break-word' }">{{ message.message_id }}</p>
4783
</template>
4884
<RouterLink class="hackToPreventSafariFromShowingTooltip" aria-label="details-link" :to="{ path: routeLinks.audit.message.link(message.id), query: { back: route.path } }">
49-
{{ message.id }}
85+
{{ message.message_id }}
5086
</RouterLink>
5187
</tippy>
5288
</div>
@@ -83,4 +119,61 @@ const { messages, sortByInstances, itemsPerPage } = storeToRefs(store);
83119
width: 5em;
84120
text-align: center;
85121
}
122+
123+
.status-icon {
124+
color: white;
125+
border-radius: 0.75em;
126+
width: 1.2em;
127+
height: 1.2em;
128+
}
129+
130+
.status-icon::before {
131+
vertical-align: middle;
132+
font-size: 0.85em;
133+
}
134+
135+
.successful {
136+
background: #6cc63f;
137+
}
138+
.successful::before {
139+
content: "\f00c";
140+
}
141+
142+
.resolved-successfully {
143+
background: #3f881b;
144+
}
145+
.resolved-successfully::before {
146+
content: "\f01e";
147+
}
148+
149+
.failed {
150+
background: #c63f3f;
151+
}
152+
.failed::before {
153+
content: "\f00d";
154+
}
155+
156+
.archived {
157+
background: #000000;
158+
}
159+
.archived::before {
160+
content: "\f187";
161+
font-size: 0.85em;
162+
}
163+
164+
.repeated-failure {
165+
background: #c63f3f;
166+
}
167+
.repeated-failure::before {
168+
content: "\f00d\f00d";
169+
font-size: 0.6em;
170+
}
171+
172+
.retry-issued {
173+
background: #cccccc;
174+
color: #000000;
175+
}
176+
.retry-issued::before {
177+
content: "\f01e";
178+
}
86179
</style>

src/Frontend/src/resources/Message.ts

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default interface Message {
1515
is_system_message: boolean;
1616
conversation_id: string;
1717
headers: Header[];
18-
status: string;
18+
status: MessageStatus;
1919
message_intent: string;
2020
body_url: string;
2121
body_size: number;
@@ -27,3 +27,58 @@ export interface ExtendedMessage extends Message {
2727
headersNotFound: boolean;
2828
messageBodyNotFound: boolean;
2929
}
30+
31+
export enum MessageStatus {
32+
Failed = "failed",
33+
RepeatedFailure = "repeatedFailure",
34+
Successful = "successful",
35+
ResolvedSuccessfully = "resolvedSuccessfully",
36+
ArchivedFailure = "archivedFailure",
37+
RetryIssued = "retryIssued",
38+
}
39+
40+
// export class AuditMessage implements Message {
41+
// id: string;
42+
// message_id: string;
43+
// message_type: string;
44+
// sending_endpoint: EndpointDetails;
45+
// receiving_endpoint: EndpointDetails;
46+
// time_sent: string;
47+
// processed_at: string;
48+
// critical_time: string;
49+
// processing_time: string;
50+
// delivery_time: string;
51+
// is_system_message: boolean;
52+
// conversation_id: string;
53+
// headers: Header[];
54+
// status: string;
55+
// message_intent: string;
56+
// body_url: string;
57+
// body_size: number;
58+
// instance_id: string;
59+
60+
// constructor(message: Message) {
61+
// this.id = message.id;
62+
// this.message_id = message.message_id;
63+
// this.message_type = message.message_type;
64+
// this.sending_endpoint = message.sending_endpoint;
65+
// this.receiving_endpoint = message.receiving_endpoint;
66+
// this.time_sent = message.time_sent;
67+
// this.processed_at = message.processed_at;
68+
// this.critical_time = message.critical_time;
69+
// this.processing_time = message.processing_time;
70+
// this.delivery_time = message.delivery_time;
71+
// this.is_system_message = message.is_system_message;
72+
// this.conversation_id = message.conversation_id;
73+
// this.headers = message.headers;
74+
// this.status = message.status;
75+
// this.message_intent = message.message_intent;
76+
// this.body_url = message.body_url;
77+
// this.body_size = message.body_size;
78+
// this.instance_id = message.instance_id;
79+
// }
80+
81+
// get message_status(): MessageStatus {
82+
// return this.status as MessageStatus;
83+
// }
84+
// }

0 commit comments

Comments
 (0)