Skip to content

Commit 3c0eadb

Browse files
authored
refactor the remaining service modules which contained internal state into stores/views (#2675)
1 parent 5b29c1f commit 3c0eadb

File tree

97 files changed

+1356
-1370
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1356
-1370
lines changed

src/Frontend/src/App.vue

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@ import { RouterView } from "vue-router";
33
import PageFooter from "./components/PageFooter.vue";
44
import PageHeader from "./components/PageHeader.vue";
55
import "bootstrap";
6-
import { useServiceControlUrls } from "@/composables/serviceServiceControlUrls";
76
import LicenseNotifications from "@/components/LicenseNotifications.vue";
87
import BackendChecksNotifications from "@/components/BackendChecksNotifications.vue";
9-
10-
useServiceControlUrls();
118
</script>
129

1310
<template>

src/Frontend/src/components/AutoRefreshDataView.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<script setup lang="ts" generic="T">
22
import { onMounted, onUnmounted, ref, watch } from "vue";
3-
import { useTypedFetchFromServiceControl } from "@/composables/serviceServiceControlUrls";
43
import ItemsPerPage from "@/components/ItemsPerPage.vue";
54
import PaginationStrip from "@/components/PaginationStrip.vue";
65
import type DataViewPageModel from "./DataViewPageModel";
6+
import { useServiceControlStore } from "@/stores/ServiceControlStore";
77
88
const props = withDefaults(
99
defineProps<{
@@ -20,6 +20,8 @@ const props = withDefaults(
2020
let refreshTimer: number | undefined;
2121
const viewModel = defineModel<DataViewPageModel<T>>({ required: true });
2222
23+
const store = useServiceControlStore();
24+
2325
const pageNumber = ref(1);
2426
const itemsPerPage = ref(props.itemsPerPage);
2527
@@ -35,7 +37,7 @@ watch(itemsPerPage, () => loadData());
3537
watch(pageNumber, () => loadData());
3638
3739
async function loadData() {
38-
const [response, data] = await useTypedFetchFromServiceControl<T[]>(`${props.apiUrl}?page=${pageNumber.value}&per_page=${itemsPerPage.value}`);
40+
const [response, data] = await store.fetchTypedFromServiceControl<T[]>(`${props.apiUrl}?page=${pageNumber.value}&per_page=${itemsPerPage.value}`);
3941
if (response.ok) {
4042
viewModel.value.totalCount = parseInt(response.headers.get("Total-Count") ?? "0");
4143
viewModel.value.data = data;

src/Frontend/src/components/BackendChecksNotifications.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
import { computed, watch } from "vue";
33
import { useRouter } from "vue-router";
44
import "bootstrap";
5-
import { monitoringUrl, serviceControlUrl, isMonitoringDisabled } from "@/composables/serviceServiceControlUrls";
65
import routeLinks from "@/router/routeLinks";
76
import { useShowToast } from "@/composables/toast";
87
import { TYPE } from "vue-toastification";
98
import useConnectionsAndStatsAutoRefresh from "@/composables/useConnectionsAndStatsAutoRefresh";
109
import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh";
10+
import { useServiceControlStore } from "@/stores/ServiceControlStore";
11+
import { storeToRefs } from "pinia";
1112
1213
const router = useRouter();
1314
@@ -16,6 +17,8 @@ const connectionState = connectionStore.connectionState;
1617
const monitoringConnectionState = connectionStore.monitoringConnectionState;
1718
const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh();
1819
const environment = environmentStore.environment;
20+
const serviceControlStore = useServiceControlStore();
21+
const { monitoringUrl, serviceControlUrl, isMonitoringDisabled } = storeToRefs(serviceControlStore);
1922
2023
const primaryConnectionFailure = computed(() => connectionState.unableToConnect);
2124
const monitoringConnectionFailure = computed(() => monitoringConnectionState.unableToConnect);
@@ -34,7 +37,7 @@ watch(primaryConnectionFailure, (newValue, oldValue) => {
3437
3538
watch(monitoringConnectionFailure, (newValue, oldValue) => {
3639
// Only watch the state change if monitoring is enabled
37-
if (isMonitoringDisabled()) {
40+
if (isMonitoringDisabled.value) {
3841
return;
3942
}
4043

src/Frontend/src/components/BusyIndicator.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/Frontend/src/components/LicenseExpired.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
<script setup lang="ts">
2-
import { licenseStatus, license } from "../composables/serviceLicense";
32
import routeLinks from "@/router/routeLinks";
43
import FAIcon from "@/components/FAIcon.vue";
54
import { faExternalLink } from "@fortawesome/free-solid-svg-icons";
5+
import { useLicenseStore } from "@/stores/LicenseStore";
6+
7+
const licenseStore = useLicenseStore();
8+
const { licenseStatus, license } = licenseStore;
69
</script>
710

811
<template>

src/Frontend/src/components/LicenseNotExpired.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
<script setup lang="ts">
22
import ConditionalRender from "@/components/ConditionalRender.vue";
3-
import { licenseStatus } from "@/composables/serviceLicense";
43
import LicenseExpired from "@/components/LicenseExpired.vue";
4+
import { useLicenseStore } from "@/stores/LicenseStore";
5+
6+
const licenseStore = useLicenseStore();
7+
const { licenseStatus } = licenseStore;
58
</script>
69

710
<template>

src/Frontend/src/components/LicenseNotifications.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
<script setup lang="ts">
22
import { watch, onMounted } from "vue";
3-
import { useLicense } from "@/composables/serviceLicense";
43
import { LicenseStatus } from "@/resources/LicenseInfo";
54
import { useShowToast } from "@/composables/toast";
65
import { TYPE } from "vue-toastification";
76
import routeLinks from "@/router/routeLinks";
87
import { useRouter } from "vue-router";
9-
import { useConfiguration } from "@/composables/configuration";
8+
import { useConfigurationStore } from "@/stores/ConfigurationStore";
9+
import { storeToRefs } from "pinia";
10+
import { useLicenseStore } from "@/stores/LicenseStore";
1011
1112
const router = useRouter();
12-
const { license, getOrUpdateLicenseStatus } = useLicense();
13+
const licenseStore = useLicenseStore();
14+
const license = licenseStore.license;
1315
14-
const configuration = useConfiguration();
16+
const configurationStore = useConfigurationStore();
17+
const { configuration } = storeToRefs(configurationStore);
1518
1619
function displayWarningMessage(licenseStatus: LicenseStatus) {
1720
const configurationRootLink = router.resolve(routeLinks.configuration.root).href;
@@ -57,7 +60,7 @@ watch(
5760
);
5861
5962
onMounted(async () => {
60-
await getOrUpdateLicenseStatus();
63+
await licenseStore.refresh();
6164
});
6265
</script>
6366
<template>

src/Frontend/src/components/PageFooter.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
<script setup lang="ts">
22
import { computed } from "vue";
3-
import { monitoringUrl, serviceControlUrl } from "../composables/serviceServiceControlUrls";
4-
import { license, licenseStatus } from "../composables/serviceLicense";
53
import { LicenseStatus } from "@/resources/LicenseInfo";
64
import routeLinks from "@/router/routeLinks";
7-
import { useConfiguration } from "@/composables/configuration";
85
import FAIcon from "@/components/FAIcon.vue";
96
import { faArrowTurnUp, faPlus } from "@fortawesome/free-solid-svg-icons";
107
import useConnectionsAndStatsAutoRefresh from "@/composables/useConnectionsAndStatsAutoRefresh";
118
import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh";
9+
import { useServiceControlStore } from "@/stores/ServiceControlStore";
10+
import { storeToRefs } from "pinia";
11+
import { useConfigurationStore } from "@/stores/ConfigurationStore";
12+
import { useLicenseStore } from "@/stores/LicenseStore";
1213
1314
const { store: connectionStore } = useConnectionsAndStatsAutoRefresh();
1415
const connectionState = connectionStore.connectionState;
1516
const monitoringConnectionState = connectionStore.monitoringConnectionState;
1617
const { store: environmentAndVersionsStore } = useEnvironmentAndVersionsAutoRefresh();
1718
const newVersions = environmentAndVersionsStore.newVersions;
1819
const environment = environmentAndVersionsStore.environment;
20+
const serviceControlStore = useServiceControlStore();
21+
const { serviceControlUrl, monitoringUrl } = storeToRefs(serviceControlStore);
22+
const licenseStore = useLicenseStore();
23+
const { licenseStatus, license } = licenseStore;
1924
2025
const isMonitoringEnabled = computed(() => {
2126
return monitoringUrl.value !== "!" && monitoringUrl.value !== "" && monitoringUrl.value !== null && monitoringUrl.value !== undefined;
@@ -29,7 +34,8 @@ const scMonitoringAddressTooltip = computed(() => {
2934
return `Monitoring URL ${monitoringUrl.value}`;
3035
});
3136
32-
const configuration = useConfiguration();
37+
const configurationStore = useConfigurationStore();
38+
const { configuration } = storeToRefs(configurationStore);
3339
</script>
3440

3541
<template>

src/Frontend/src/components/PageHeader.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<script setup lang="ts">
22
import { computed } from "vue";
33
import { RouterLink } from "vue-router";
4-
import { isMonitoringEnabled } from "@/composables/serviceServiceControlUrls";
54
import routeLinks from "@/router/routeLinks";
65
import CustomChecksMenuItem from "@/components/customchecks/CustomChecksMenuItem.vue";
76
import HeartbeatsMenuItem from "@/components/heartbeats/HeartbeatsMenuItem.vue";
@@ -13,13 +12,17 @@ import DashboardMenuItem from "@/components/dashboard/DashboardMenuItem.vue";
1312
import FeedbackButton from "@/components/FeedbackButton.vue";
1413
import ThroughputMenuItem from "@/views/throughputreport/ThroughputMenuItem.vue";
1514
import AuditMenuItem from "./audit/AuditMenuItem.vue";
15+
import { useServiceControlStore } from "@/stores/ServiceControlStore";
16+
import { storeToRefs } from "pinia";
1617
18+
const serviceControlStore = useServiceControlStore();
19+
const { isMonitoringEnabled } = storeToRefs(serviceControlStore);
1720
// prettier-ignore
1821
const menuItems = computed(
1922
() => [
2023
DashboardMenuItem,
2124
HeartbeatsMenuItem,
22-
...(isMonitoringEnabled() ? [MonitoringMenuItem] : []),
25+
...(isMonitoringEnabled.value ? [MonitoringMenuItem] : []),
2326
AuditMenuItem,
2427
FailedMessagesMenuItem,
2528
CustomChecksMenuItem,

src/Frontend/src/components/ServiceControlAvailable.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<script setup lang="ts">
22
import ConditionalRender from "@/components/ConditionalRender.vue";
33
import routeLinks from "@/router/routeLinks";
4-
import { serviceControlUrl } from "@/composables/serviceServiceControlUrls";
54
import useConnectionsAndStatsAutoRefresh from "@/composables/useConnectionsAndStatsAutoRefresh";
5+
import { useServiceControlStore } from "@/stores/ServiceControlStore";
6+
import { storeToRefs } from "pinia";
67
78
const { store: connectionStore } = useConnectionsAndStatsAutoRefresh();
89
const connectionState = connectionStore.connectionState;
10+
const serviceControlStore = useServiceControlStore();
11+
const { serviceControlUrl } = storeToRefs(serviceControlStore);
912
</script>
1013

1114
<template>

0 commit comments

Comments
 (0)