|
|
@ -1,16 +1,70 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
<script setup lang="ts"> |
|
|
|
import { enumColor as colors } from '#imports' |
|
|
|
import { enumColor as colors } from '#imports' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { showSwaggerLink } = defineProps<{ showSwaggerLink?: boolean }>() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { project } = useProject() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const route = useRoute() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { appInfo } = useGlobal() |
|
|
|
|
|
|
|
|
|
|
|
const { lang: currentLang } = useGlobal() |
|
|
|
const { lang: currentLang } = useGlobal() |
|
|
|
|
|
|
|
|
|
|
|
const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const openSwaggerLink = () => { |
|
|
|
|
|
|
|
openLink(`/api/v1/db/meta/projects/${route.params.projectId}/swagger`, appInfo.value?.ncSiteUrl) |
|
|
|
|
|
|
|
} |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<a-card :body-style="{ padding: '0px' }" class="w-[300px] shadow-sm !rounded-lg"> |
|
|
|
<a-card :body-style="{ padding: '0px' }" class="w-[300px] shadow-sm !rounded-lg"> |
|
|
|
<a-list class="w-full" dense> |
|
|
|
<a-list class="w-full" dense> |
|
|
|
|
|
|
|
<a-list-item v-if="showSwaggerLink && project"> |
|
|
|
|
|
|
|
<nuxt-link |
|
|
|
|
|
|
|
v-t="['e:docs']" |
|
|
|
|
|
|
|
class="text-primary !no-underline !text-current py-4 font-weight-medium" |
|
|
|
|
|
|
|
target="_blank" |
|
|
|
|
|
|
|
@click="openSwaggerLink" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div class="ml-3 flex items-center text-sm"> |
|
|
|
|
|
|
|
<LogosSwagger /> |
|
|
|
|
|
|
|
<!-- todo: i18n --> |
|
|
|
|
|
|
|
<span class="ml-3">{{ project.title }} : Swagger Documentation</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</nuxt-link> |
|
|
|
|
|
|
|
</a-list-item> |
|
|
|
|
|
|
|
<a-list-item> |
|
|
|
|
|
|
|
<nuxt-link |
|
|
|
|
|
|
|
v-t="['e:docs']" |
|
|
|
|
|
|
|
class="text-primary !no-underline !text-current" |
|
|
|
|
|
|
|
target="_blank" |
|
|
|
|
|
|
|
to="https://docs.nocodb.com/" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div class="ml-3 flex items-center text-sm"> |
|
|
|
|
|
|
|
<MdiBookOpenOutline class="text-lg text-accent" /> |
|
|
|
|
|
|
|
<!-- todo: i18n --> |
|
|
|
|
|
|
|
<span class="ml-3">Documentation</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</nuxt-link> |
|
|
|
|
|
|
|
</a-list-item> |
|
|
|
|
|
|
|
<a-list-item> |
|
|
|
|
|
|
|
<nuxt-link |
|
|
|
|
|
|
|
v-t="['e:docs']" |
|
|
|
|
|
|
|
class="text-primary !no-underline !text-current" |
|
|
|
|
|
|
|
target="_blank" |
|
|
|
|
|
|
|
to="https://apis.nocodb.com/" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div class="ml-3 flex items-center text-sm"> |
|
|
|
|
|
|
|
<MdiJson class="text-lg text-green-500" /> |
|
|
|
|
|
|
|
<!-- todo: i18n --> |
|
|
|
|
|
|
|
<span class="ml-3">API Documentation</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</nuxt-link> |
|
|
|
|
|
|
|
</a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<nuxt-link class="text-primary" to="https://github.com/nocodb/nocodb" target="_blank"> |
|
|
|
<nuxt-link class="text-primary !no-underline !text-current" to="https://github.com/nocodb/nocodb" target="_blank"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<mdi-github class="mx-3 text-lg" /> |
|
|
|
<mdi-github class="mx-3 text-lg" /> |
|
|
|
<div v-if="isRtlLang"> |
|
|
|
<div v-if="isRtlLang"> |
|
|
@ -22,8 +76,8 @@ const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-else class="flex items-center"> |
|
|
|
<div v-else class="flex items-center"> |
|
|
|
<!-- Star --> |
|
|
|
<!-- Star --> |
|
|
|
{{ $t('labels.community.starUs1') }} |
|
|
|
{{ `${$t('labels.community.starUs1')} ` }} |
|
|
|
<mdi-star-outline class="mx-1" /> |
|
|
|
|
|
|
|
<!-- us on Github --> |
|
|
|
<!-- us on Github --> |
|
|
|
{{ $t('labels.community.starUs2') }} |
|
|
|
{{ $t('labels.community.starUs2') }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -31,7 +85,7 @@ const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
</nuxt-link> |
|
|
|
</nuxt-link> |
|
|
|
</a-list-item> |
|
|
|
</a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<nuxt-link class="text-primary" to="https://calendly.com/nocodb-meeting" target="_blank"> |
|
|
|
<nuxt-link class="text-primary !no-underline !text-current" to="https://calendly.com/nocodb-meeting" target="_blank"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<mdi-calendar-month class="mx-3 text-lg" :color="colors.dark[3 % colors.dark.length]" /> |
|
|
|
<mdi-calendar-month class="mx-3 text-lg" :color="colors.dark[3 % colors.dark.length]" /> |
|
|
|
<!-- Book a Free DEMO --> |
|
|
|
<!-- Book a Free DEMO --> |
|
|
@ -42,7 +96,7 @@ const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
</nuxt-link> |
|
|
|
</nuxt-link> |
|
|
|
</a-list-item> |
|
|
|
</a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<nuxt-link class="text-primary" to="https://discord.gg/5RgZmkW" target="_blank"> |
|
|
|
<nuxt-link class="text-primary !no-underline !text-current" to="https://discord.gg/5RgZmkW" target="_blank"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<mdi-discord class="mx-3 text-lg" :color="colors.dark[0 % colors.dark.length]" /> |
|
|
|
<mdi-discord class="mx-3 text-lg" :color="colors.dark[0 % colors.dark.length]" /> |
|
|
|
<!-- Get your questions answered --> |
|
|
|
<!-- Get your questions answered --> |
|
|
@ -53,7 +107,7 @@ const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
</nuxt-link> |
|
|
|
</nuxt-link> |
|
|
|
</a-list-item> |
|
|
|
</a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<a-list-item> |
|
|
|
<nuxt-link class="text-primary" to="https://twitter.com/NocoDB" target="_blank"> |
|
|
|
<nuxt-link class="text-primary !no-underline !text-current" to="https://twitter.com/NocoDB" target="_blank"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<mdi-twitter class="mx-3 text-lg" :color="colors.dark[1 % colors.dark.length]" /> |
|
|
|
<mdi-twitter class="mx-3 text-lg" :color="colors.dark[1 % colors.dark.length]" /> |
|
|
|
<!-- Follow NocoDB --> |
|
|
|
<!-- Follow NocoDB --> |
|
|
@ -63,10 +117,29 @@ const isRtlLang = $computed(() => ['fa'].includes(currentLang.value)) |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</nuxt-link> |
|
|
|
</nuxt-link> |
|
|
|
</a-list-item> |
|
|
|
</a-list-item> |
|
|
|
<a-list-item v-t="['e:hiring']"> |
|
|
|
<a-list-item> |
|
|
|
<nuxt-link class="text-primary" target="_blank" to="http://careers.nocodb.com"> |
|
|
|
<nuxt-link |
|
|
|
|
|
|
|
v-t="['e:hiring']" |
|
|
|
|
|
|
|
class="text-primary !no-underline !text-current" |
|
|
|
|
|
|
|
target="_blank" |
|
|
|
|
|
|
|
to="http://careers.nocodb.com" |
|
|
|
|
|
|
|
> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="flex items-center text-sm"> |
|
|
|
<div class="ml-3">🚀 <span class="ml-2">We are Hiring!!!</span></div> |
|
|
|
<!-- todo: i18n --> |
|
|
|
|
|
|
|
<div class="ml-3">🚀 <span class="ml-3">We are Hiring!!!</span></div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</nuxt-link> |
|
|
|
|
|
|
|
</a-list-item> |
|
|
|
|
|
|
|
<a-list-item> |
|
|
|
|
|
|
|
<nuxt-link |
|
|
|
|
|
|
|
v-t="['e:reddit']" |
|
|
|
|
|
|
|
class="text-primary !no-underline !text-current" |
|
|
|
|
|
|
|
target="_blank" |
|
|
|
|
|
|
|
to="https://www.reddit.com/r/NocoDB/" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div class="ml-3 flex items-center text-sm"> |
|
|
|
|
|
|
|
<LogosRedditIcon /> |
|
|
|
|
|
|
|
<span class="ml-4">/r/NocoDB/</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</nuxt-link> |
|
|
|
</nuxt-link> |
|
|
|
</a-list-item> |
|
|
|
</a-list-item> |
|
|
|