Skip to content

Commit d2db1f5

Browse files
committed
fix dayjs duration and losing restore status
1 parent 7c82a56 commit d2db1f5

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/Frontend/src/composables/formatter.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,13 @@ function formatTimeValue(timeValue: number, displayTwoDigits = false) {
7676
const strValue = Math.floor(timeValue);
7777
return `${displayTwoDigits ? ("0" + strValue).slice(-2) : strValue.toLocaleString()}`;
7878
}
79+
80+
export function timeSpanToDuration(timeSpan: string | undefined) {
81+
if (!timeSpan) return dayjs.duration("PT0S");
82+
83+
const [days, rest] = timeSpan.split(".");
84+
const [hours, minutes, seconds, milliseconds] = rest.split(/[:.]/);
85+
const units = { days: parseInt(days) ?? 0, hours: parseInt(hours) ?? 0, minutes: parseInt(minutes) ?? 0, seconds: parseInt(seconds) ?? 0, milliseconds: parseInt(milliseconds) ?? 0 };
86+
87+
return dayjs.duration(units);
88+
}

src/Frontend/src/stores/MessageStore.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { EditAndRetryConfig } from "@/resources/Configuration";
1414
import EditRetryResponse from "@/resources/EditRetryResponse";
1515
import { EditedMessage } from "@/resources/EditMessage";
1616
import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh";
17+
import { timeSpanToDuration } from "@/composables/formatter";
1718

1819
interface Model {
1920
id?: string;
@@ -79,7 +80,7 @@ export const useMessageStore = defineStore("MessageStore", () => {
7980
const areSimpleHeadersSupported = environmentStore.serviceControlIsGreaterThan("5.2.0");
8081

8182
const { configuration } = storeToRefs(configStore);
82-
const error_retention_period = computed(() => dayjs.duration(configuration.value?.data_retention?.error_retention_period ?? "PT0S").asHours());
83+
const error_retention_period = computed(() => timeSpanToDuration(configuration.value?.data_retention?.error_retention_period).asHours());
8384

8485
watch(serviceControlUrl, loadConfig, { immediate: true });
8586
async function loadConfig() {

src/Frontend/src/stores/MessagesStore.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import dayjs from "@/utils/dayjs";
99
import { useConfigurationStore } from "./ConfigurationStore";
1010
import FailureGroup from "@/resources/FailureGroup";
1111
import QueueAddress from "@/resources/QueueAddress";
12+
import { timeSpanToDuration } from "@/composables/formatter";
1213

1314
const deletedPeriodOptions = ["All Deleted", "Deleted in the last 2 Hours", "Deleted in the last 1 Day", "Deleted in the last 7 days"] as const;
1415
const retryPeriodOptions = ["All Pending Retries", "Retried in the last 2 Hours", "Retried in the last 1 Day", "Retried in the last 7 Days"] as const;
@@ -100,6 +101,7 @@ export const useMessagesStore = defineStore("MessagesStore", () => {
100101
if (previousMessage.last_modified === receivedMessage.last_modified) {
101102
receivedMessage.retryInProgress = previousMessage.retryInProgress;
102103
receivedMessage.deleteInProgress = previousMessage.deleteInProgress;
104+
receivedMessage.restoreInProgress = previousMessage.restoreInProgress;
103105
receivedMessage.submittedForRetrial = previousMessage.submittedForRetrial;
104106
receivedMessage.resolved = previousMessage.resolved;
105107
}
@@ -124,7 +126,7 @@ export const useMessagesStore = defineStore("MessagesStore", () => {
124126
case FailedMessageStatus.Archived:
125127
//check deletion time
126128
messages.forEach((message) => {
127-
message.error_retention_period = dayjs.duration(configuration.value?.data_retention.error_retention_period ?? "PT0S").asHours();
129+
message.error_retention_period = timeSpanToDuration(configuration.value?.data_retention.error_retention_period).asHours();
128130
const countdown = dayjs(message.last_modified).add(message.error_retention_period, "hours");
129131
message.delete_soon = countdown < dayjs();
130132
message.deleted_in = countdown.format();

0 commit comments

Comments
 (0)