diff --git a/web/components/DowngradeOs.ce.vue b/web/components/DowngradeOs.ce.vue index cc07c1a2d..9e4c0cda2 100644 --- a/web/components/DowngradeOs.ce.vue +++ b/web/components/DowngradeOs.ce.vue @@ -20,7 +20,6 @@ import { onBeforeMount } from 'vue'; import { useI18n } from 'vue-i18n'; import { useServerStore } from '~/store/server'; -import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import 'tailwindcss/tailwind.css'; import '~/assets/main.css'; @@ -39,9 +38,8 @@ const props = withDefaults(defineProps(), { }); const serverStore = useServerStore(); -const updateOsActionsStore = useUpdateOsActionsStore(); -const { rebootType } = storeToRefs(updateOsActionsStore); +const { rebootType } = storeToRefs(serverStore); const subtitle = computed(() => { if (rebootType.value === 'update') { diff --git a/web/components/HeaderOsVersion.ce.vue b/web/components/HeaderOsVersion.ce.vue index fcd12db29..6f2764394 100644 --- a/web/components/HeaderOsVersion.ce.vue +++ b/web/components/HeaderOsVersion.ce.vue @@ -12,7 +12,8 @@ import '~/assets/main.css'; import { WEBGUI_TOOLS_DOWNGRADE, WEBGUI_TOOLS_UPDATE } from '~/helpers/urls'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; const { t } = useI18n(); @@ -20,9 +21,9 @@ const serverStore = useServerStore(); const updateOsStore = useUpdateOsStore(); const updateOsActionsStore = useUpdateOsActionsStore(); -const { osVersion } = storeToRefs(serverStore); +const { osVersion, rebootType } = storeToRefs(serverStore); const { available } = storeToRefs(updateOsStore); -const { ineligibleText, rebootType, rebootTypeText } = storeToRefs(updateOsActionsStore); +const { ineligibleText, rebootTypeText } = storeToRefs(updateOsActionsStore); const showUpdateAvailable = computed(() => !ineligibleText.value && available.value && rebootType.value === ''); diff --git a/web/components/UpdateOs.ce.vue b/web/components/UpdateOs.ce.vue index 7b1c3a164..7e9ac7850 100644 --- a/web/components/UpdateOs.ce.vue +++ b/web/components/UpdateOs.ce.vue @@ -36,7 +36,7 @@ const props = withDefaults(defineProps(), { const serverStore = useServerStore(); const updateOsActionsStore = useUpdateOsActionsStore(); -const { rebootType } = storeToRefs(updateOsActionsStore); +const { rebootType } = storeToRefs(serverStore); const subtitle = computed(() => { if (rebootType.value === 'downgrade') { diff --git a/web/components/UpdateOs/Status.vue b/web/components/UpdateOs/Status.vue index f802ff010..ce43c688e 100644 --- a/web/components/UpdateOs/Status.vue +++ b/web/components/UpdateOs/Status.vue @@ -12,7 +12,8 @@ import { storeToRefs } from 'pinia'; import { WEBGUI_TOOLS_REGISTRATION } from '~/helpers/urls'; import useDateTimeHelper from '~/composables/dateTime'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import BrandLoadingWhite from '~/components/Brand/LoadingWhite.vue'; @@ -36,9 +37,9 @@ const serverStore = useServerStore(); const updateOsStore = useUpdateOsStore(); const updateOsActionsStore = useUpdateOsActionsStore(); -const { dateTimeFormat, osVersion, rebootVersion, regExp, regUpdatesExpired } = storeToRefs(serverStore); -const { available, availableWithRenewal, parsedReleaseTimestamp } = storeToRefs(updateOsStore); -const { ineligibleText, rebootType, rebootTypeText, status } = storeToRefs(updateOsActionsStore); +const { dateTimeFormat, osVersion, rebootType, rebootVersion, regExp, regUpdatesExpired } = storeToRefs(serverStore); +const { available, availableWithRenewal } = storeToRefs(updateOsStore); +const { ineligibleText, rebootTypeText, status } = storeToRefs(updateOsActionsStore); const { outputDateTimeReadableDiff: readableDiffRegExp, @@ -118,7 +119,6 @@ const regExpOutput = computed(() => { v-if="rebootType === ''" :color="available || availableWithRenewal ? 'orange' : 'green'" :icon="available || availableWithRenewal ? BellAlertIcon : CheckCircleIcon" - :title="parsedReleaseTimestamp ? t('Last checked: {0}', [parsedReleaseTimestamp.relative]) : ''" > {{ (available ? t('Unraid {0} Available', [available]) diff --git a/web/components/UpdateOs/Update.vue b/web/components/UpdateOs/Update.vue index f4727a1c9..b3c685918 100644 --- a/web/components/UpdateOs/Update.vue +++ b/web/components/UpdateOs/Update.vue @@ -21,7 +21,8 @@ import '~/assets/main.css'; import useDateTimeHelper from '~/composables/dateTime'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import type { UserProfileLink } from '~/types/userProfile'; const props = defineProps<{ @@ -29,7 +30,7 @@ const props = defineProps<{ }>(); const serverStore = useServerStore(); -const { dateTimeFormat } = storeToRefs(serverStore); +const { dateTimeFormat, updateOsResponse } = storeToRefs(serverStore); const updateOsStore = useUpdateOsStore(); const updateOsActionsStore = useUpdateOsActionsStore(); @@ -37,10 +38,9 @@ const updateOsActionsStore = useUpdateOsActionsStore(); const { connectPluginInstalled, flashBackupActivated } = storeToRefs(useServerStore()); const { available } = storeToRefs(updateOsStore); -const release = computed(() => updateOsStore.findRelease('version', available.value) ?? undefined); const { outputDateTimeFormatted: formattedReleaseDate, -} = useDateTimeHelper(dateTimeFormat.value, props.t, true, dayjs(release.value?.date ?? '', 'YYYY-MM-DD').valueOf()); +} = useDateTimeHelper(dateTimeFormat.value, props.t, true, dayjs(updateOsResponse.value?.date ?? '', 'YYYY-MM-DD').valueOf()); const updateButton = ref(); @@ -140,7 +140,7 @@ watchEffect(() => { {{ heading }} {{ formattedReleaseDate }} diff --git a/web/components/UpdateOs/UpdateIneligible.vue b/web/components/UpdateOs/UpdateIneligible.vue index cda42a577..f3aea709d 100644 --- a/web/components/UpdateOs/UpdateIneligible.vue +++ b/web/components/UpdateOs/UpdateIneligible.vue @@ -13,7 +13,8 @@ import '~/assets/main.css'; import useDateTimeHelper from '~/composables/dateTime'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import type { UserProfileLink } from '~/types/userProfile'; const props = defineProps<{ @@ -24,11 +25,11 @@ const serverStore = useServerStore(); const updateOsStore = useUpdateOsStore(); const updateOsActionsStore = useUpdateOsActionsStore(); -const { dateTimeFormat, regTy, renewAction } = storeToRefs(serverStore); +const { dateTimeFormat, regTy, renewAction, updateOsResponse } = storeToRefs(serverStore); const { availableWithRenewal } = storeToRefs(updateOsStore); const { ineligibleText } = storeToRefs(updateOsActionsStore); -const availableWithRenewalRelease = computed(() => updateOsStore.findRelease('version', availableWithRenewal.value) ?? undefined); +const availableWithRenewalRelease = computed(() => availableWithRenewal.value ? updateOsResponse.value : undefined); const { outputDateTimeFormatted: formattedReleaseDate } = useDateTimeHelper(dateTimeFormat.value, props.t, true, dayjs(availableWithRenewalRelease.value?.date, 'YYYY-MM-DD').valueOf()); const heading = computed((): string => { diff --git a/web/components/UserProfile.ce.vue b/web/components/UserProfile.ce.vue index 5ecf32af6..5466c6ee3 100644 --- a/web/components/UserProfile.ce.vue +++ b/web/components/UserProfile.ce.vue @@ -9,7 +9,6 @@ import { useDropdownStore } from '~/store/dropdown'; import { useReplaceRenewStore } from '~/store/replaceRenew'; import { useServerStore } from '~/store/server'; import { useThemeStore } from '~/store/theme'; -import { useUpdateOsStore } from '~/store/updateOsActions'; import type { Server } from '~/types/server'; import 'tailwindcss/tailwind.css'; import '~/assets/main.css'; @@ -25,7 +24,6 @@ const callbackStore = useCallbackStore(); const dropdownStore = useDropdownStore(); const replaceRenewCheckStore = useReplaceRenewStore(); const serverStore = useServerStore(); -const updateOsStore = useUpdateOsStore(); const { callbackData } = storeToRefs(useCallbackActionsStore()); const { dropdownVisible } = storeToRefs(dropdownStore); @@ -35,8 +33,6 @@ const { guid, keyfile, lanIp, - osVersion, - osVersionBranch, state, connectPluginInstalled, } = storeToRefs(serverStore); @@ -100,15 +96,6 @@ onBeforeMount(() => { } // automatically check for replacement and renewal eligibility…will prompt user if eligible for a renewal / key re-roll for legacy keys replaceRenewCheckStore.check(); - - // automatically check for OS updates for global notifications - updateOsStore.checkForUpdate({ - cache: true, - guid: guid.value, - keyfile: keyfile.value, - osVersion: osVersion.value, - osVersionBranch: osVersionBranch.value, // if we're already on a non-stable release, include next - }); } else { console.warn('A valid keyfile and USB Flash boot device are required to check for key renewals, key replacement eligibiliy, and OS update availability.'); } diff --git a/web/components/UserProfile/DropdownContent.vue b/web/components/UserProfile/DropdownContent.vue index adefc7835..d625b1673 100644 --- a/web/components/UserProfile/DropdownContent.vue +++ b/web/components/UserProfile/DropdownContent.vue @@ -14,7 +14,8 @@ import { } from '~/helpers/urls'; import { useErrorsStore } from '~/store/errors'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import type { UserProfileLink } from '~/types/userProfile'; const props = defineProps<{ t: any; }>(); diff --git a/web/components/UserProfile/DropdownTrigger.vue b/web/components/UserProfile/DropdownTrigger.vue index 89f2ee42c..f611a3c6c 100644 --- a/web/components/UserProfile/DropdownTrigger.vue +++ b/web/components/UserProfile/DropdownTrigger.vue @@ -12,16 +12,15 @@ import { import { useDropdownStore } from '~/store/dropdown'; import { useErrorsStore } from '~/store/errors'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; const props = defineProps<{ t: any; }>(); const dropdownStore = useDropdownStore(); const { dropdownVisible } = storeToRefs(dropdownStore); const { errors } = storeToRefs(useErrorsStore()); -const { connectPluginInstalled, registered, state, stateData } = storeToRefs(useServerStore()); +const { connectPluginInstalled, rebootType, registered, state, stateData } = storeToRefs(useServerStore()); const { available: osUpdateAvailable } = storeToRefs(useUpdateOsStore()); -const { rebootType } = storeToRefs(useUpdateOsActionsStore()); const showErrorIcon = computed(() => errors.value.length || stateData.value.error); diff --git a/web/composables/services/keyServer.ts b/web/composables/services/keyServer.ts index 724229330..bbc96f2c1 100644 --- a/web/composables/services/keyServer.ts +++ b/web/composables/services/keyServer.ts @@ -1,6 +1,6 @@ import { request } from '~/composables/services/request'; -import type { Release } from '~/store/updateOs'; +import type { Release } from '~/store/updateOsActions'; const KeyServer = request.url('https://keys.lime-technology.com'); diff --git a/web/store/callbackActions.ts b/web/store/callbackActions.ts index 07d3a0462..a613c0b6f 100644 --- a/web/store/callbackActions.ts +++ b/web/store/callbackActions.ts @@ -4,7 +4,8 @@ import { addPreventClose, removePreventClose } from '~/composables/preventClose' import { useAccountStore } from '~/store/account'; import { useInstallKeyStore } from '~/store/installKey'; import { useServerStore } from '~/store/server'; -import { useUpdateOsStore, useUpdateOsActionsStore } from '~/store/updateOsActions'; +import { useUpdateOsStore } from '~/store/updateOs'; +import { useUpdateOsActionsStore } from '~/store/updateOsActions'; import { useCallbackStoreGeneric, type CallbackActionsStore,