diff --git a/web/components/UpdateOs/Status.vue b/web/components/UpdateOs/Status.vue index cd30bc22c..14b4a2d89 100644 --- a/web/components/UpdateOs/Status.vue +++ b/web/components/UpdateOs/Status.vue @@ -14,6 +14,7 @@ import useDateTimeHelper from '~/composables/dateTime'; import { useServerStore } from '~/store/server'; import { useUpdateOsStore } from '~/store/updateOs'; import { useUpdateOsActionsStore } from '~/store/updateOsActions'; +import type { UserProfileLink } from '~/types/userProfile'; import BrandLoadingWhite from '~/components/Brand/LoadingWhite.vue'; @@ -41,6 +42,8 @@ const { dateTimeFormat, osVersion, rebootType, rebootVersion, regExp, regUpdates const { available, availableWithRenewal } = storeToRefs(updateOsStore); const { ineligibleText, rebootTypeText, status } = storeToRefs(updateOsActionsStore); +const anyAvailable = computed(() => available.value || availableWithRenewal.value); + const { outputDateTimeReadableDiff: readableDiffRegExp, outputDateTimeFormatted: formattedRegExp, @@ -59,6 +62,30 @@ const regExpOutput = computed(() => { : props.t('Eligible for free feature updates for {0}', [readableDiffRegExp.value]), }; }); + +const showRebootButton = computed(() => rebootType.value === 'downgrade' || rebootType.value === 'update'); + +const checkButton = computed((): UserProfileLink => { + if (!available.value && !availableWithRenewal.value) { + return { + click: () => { + updateOsStore.localCheckForUpdate(); + }, + icon: ArrowPathIcon, + text: props.t('Check for Update'), + }; + } + + return { + click: () => { + updateOsStore.setModalOpen(true); + }, + icon: BellAlertIcon, + text: availableWithRenewal.value + ? props.t('Unraid OS {0} Released', [availableWithRenewal.value]) + : props.t('Unraid OS {0} Update Available', [available.value]), + }; +});