Skip to content

Commit 322f801

Browse files
committed
implement server side sorting
1 parent 60e4bfa commit 322f801

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

src/Frontend/src/stores/AuditStore.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { useTypedFetchFromServiceControl } from "@/composables/serviceServiceCon
22
import { acceptHMRUpdate, defineStore } from "pinia";
33
import { ref, watch } from "vue";
44
import useAutoRefresh from "@/composables/autoRefresh";
5-
//import { SortDirection, type GroupPropertyType } from "@/resources/SortOptions";
65
import type { SortInfo } from "@/components/SortInfo";
76
import Message from "@/resources/Message";
87

@@ -14,37 +13,35 @@ export enum ColumnNames {
1413
ProcessingTime = "processingTime",
1514
}
1615

17-
// const columnSortings = new Map<string, (endpoint: Message) => GroupPropertyType>([
18-
// // [ColumnNames.Name, (endpoint) => endpoint.name],
19-
// // [ColumnNames.InstancesDown, (endpoint) => endpoint.alive_count - endpoint.down_count],
20-
// // [ColumnNames.InstancesTotal, (endpoint) => endpoint.alive_count + endpoint.down_count],
21-
// // [ColumnNames.LastHeartbeat, (endpoint) => moment.utc(endpoint.heartbeat_information?.last_report_at ?? "1975-01-01T00:00:00")],
22-
// // [ColumnNames.Tracked, (endpoint) => endpoint.track_instances],
23-
// // [ColumnNames.TrackToggle, (endpoint) => endpoint.track_instances],
24-
// ]);
16+
const columnSortings = new Map<string, string>([
17+
[ColumnNames.Status, "status"],
18+
[ColumnNames.MessageId, "id"],
19+
[ColumnNames.MessageType, "message_type"],
20+
[ColumnNames.TimeSent, "time_sent"],
21+
[ColumnNames.ProcessingTime, "processing_time"],
22+
]);
2523

2624
export const useAuditStore = defineStore("AuditStore", () => {
2725
const sortByInstances = ref<SortInfo>({
28-
property: ColumnNames.MessageId,
29-
isAscending: true,
26+
property: ColumnNames.TimeSent,
27+
isAscending: false,
3028
});
3129

3230
const messageFilterString = ref("");
3331
const itemsPerPage = ref(20);
3432
const selectedPage = ref(1);
3533
const totalCount = ref(0);
3634
const messages = ref<Message[]>([]);
37-
// const sortedMessages = computed<Message[]>(() =>
38-
// [...messages.value].sort(getSortFunction(columnSortings.get(sortByInstances.value.property), sortByInstances.value.isAscending ? SortDirection.Ascending : SortDirection.Descending))
39-
// );
4035
// const filteredMessages = computed<Message[]>(() => sortedMessages.value.filter((message) => !messageFilterString.value || message.id.toLowerCase().includes(messageFilterString.value.toLowerCase())));
4136
watch(messageFilterString, (newValue) => {
4237
setMessageFilterString(newValue);
4338
});
4439

4540
const dataRetriever = useAutoRefresh(async () => {
4641
try {
47-
const [response, data] = await useTypedFetchFromServiceControl<Message[]>(`messages/?include_system_messages=false&per_page=${itemsPerPage.value}&page=${selectedPage.value}`);
42+
const [response, data] = await useTypedFetchFromServiceControl<Message[]>(
43+
`messages/?include_system_messages=false&per_page=${itemsPerPage.value}&page=${selectedPage.value}&sort=${columnSortings.get(sortByInstances.value.property)}&direction=${sortByInstances.value.isAscending ? "asc" : "desc"}`
44+
);
4845
totalCount.value = parseInt(response.headers.get("total-count") ?? "0");
4946
messages.value = data;
5047
} catch (e) {
@@ -56,6 +53,7 @@ export const useAuditStore = defineStore("AuditStore", () => {
5653
const refresh = dataRetriever.executeAndResetTimer;
5754
watch(itemsPerPage, () => refresh());
5855
watch(selectedPage, () => refresh());
56+
watch(sortByInstances, () => refresh());
5957

6058
function setMessageFilterString(filter: string) {
6159
messageFilterString.value = filter;

0 commit comments

Comments
 (0)