mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.8 KiB
93 lines
2.8 KiB
<script setup lang="ts"> |
|
import { computed, extractSdkResponseErrorMsg, message, onMounted, useGlobal, useNuxtApp } from '#imports' |
|
|
|
const { $api } = useNuxtApp() |
|
|
|
const { currentVersion, latestRelease, hiddenRelease } = useGlobal() |
|
|
|
const releaseAlert = computed({ |
|
get() { |
|
if (currentVersion.value?.includes('-beta.') || latestRelease.value?.includes('-beta.')) { |
|
return false |
|
} |
|
return ( |
|
currentVersion.value && |
|
latestRelease.value && |
|
currentVersion.value !== latestRelease.value && |
|
latestRelease.value !== hiddenRelease.value |
|
) |
|
}, |
|
set(val) { |
|
hiddenRelease.value = val ? null : latestRelease.value |
|
}, |
|
}) |
|
|
|
async function fetchReleaseInfo() { |
|
try { |
|
const versionInfo = await $api.utils.appVersion() |
|
if (versionInfo && versionInfo.releaseVersion && versionInfo.currentVersion) { |
|
currentVersion.value = versionInfo.currentVersion |
|
latestRelease.value = versionInfo.releaseVersion |
|
} else { |
|
currentVersion.value = null |
|
latestRelease.value = null |
|
} |
|
} catch (e: any) { |
|
message.error(await extractSdkResponseErrorMsg(e)) |
|
} |
|
} |
|
|
|
onMounted(async () => await fetchReleaseInfo()) |
|
</script> |
|
|
|
<template> |
|
<div v-if="releaseAlert" class="flex items-center"> |
|
<a-dropdown :trigger="['click']" placement="bottom" overlay-class-name="nc-dropdown-upgrade-menu"> |
|
<a-button class="!bg-primary !border-none"> |
|
<div class="flex gap-1 items-center text-white"> |
|
<span class="text-sm font-weight-medium">{{ $t('activity.upgrade.available') }}</span> |
|
<mdi-menu-down /> |
|
</div> |
|
</a-button> |
|
|
|
<template #overlay> |
|
<div class="mt-1 bg-white shadow-lg !border"> |
|
<nuxt-link |
|
no-prefetch |
|
no-rel |
|
class="!text-primary !no-underline" |
|
to="https://github.com/nocodb/nocodb/releases" |
|
target="_blank" |
|
> |
|
<div class="nc-menu-item"> |
|
<mdi-script-text-outline /> |
|
{{ latestRelease }} {{ $t('activity.upgrade.releaseNote') }} |
|
</div> |
|
</nuxt-link> |
|
|
|
<nuxt-link |
|
no-prefetch |
|
no-rel |
|
class="!text-primary !no-underline" |
|
to="https://docs.nocodb.com/getting-started/upgrading" |
|
target="_blank" |
|
> |
|
<div class="nc-menu-item"> |
|
<mdi-rocket-launch-outline /> |
|
<!-- How to upgrade? --> |
|
{{ $t('activity.upgrade.howTo') }} |
|
</div> |
|
</nuxt-link> |
|
|
|
<a-divider class="!m-0" /> |
|
|
|
<div class="nc-menu-item" @click="releaseAlert = false"> |
|
<mdi-close /> |
|
<!-- Hide menu --> |
|
{{ $t('general.hideMenu') }} |
|
</div> |
|
</div> |
|
</template> |
|
</a-dropdown> |
|
</div> |
|
</template>
|
|
|