fix(nc-gui): add feature badge

This commit is contained in:
Ramesh Mane
2025-06-26 15:12:30 +00:00
parent 0fcb8b0389
commit a7a4c31af0
4 changed files with 100 additions and 22 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts" setup>
import { type BaseType, type TableType, ViewTypes } from 'nocodb-sdk'
import { type BaseType, type TableType, ViewTypes, PlanFeatureTypes, PlanTitles } from 'nocodb-sdk'
import type { SidebarTableNode } from '~/lib/types'
@@ -332,8 +332,6 @@ async function onDuplicate() {
async function onPermissions(_table: SidebarTableNode) {
isOptionsOpen.value = false
if (showUpgradeToUseTableAndFieldPermissions()) return
isTablePermissionsDialogVisible.value = true
}
@@ -645,7 +643,7 @@ async function onRename() {
{{ $t('labels.editTableDescription') }}
</div>
</NcMenuItem>
<NcMenuItem
<PaymentUpgradeBadgeProvider
v-if="
isTableAndFieldPermissionsEnabled &&
isEeUI &&
@@ -654,14 +652,40 @@ async function onRename() {
}) &&
(source?.is_meta || source?.is_local)
"
:data-testid="`sidebar-table-permissions-${table.title}`"
@click="onPermissions(table)"
:feature="PlanFeatureTypes.FEATURE_TABLE_AND_FIELD_PERMISSIONS"
>
<div v-e="['c:table:permissions']" class="flex gap-2 items-center">
<GeneralIcon icon="ncLock" class="opacity-80" />
{{ $t('title.editTablePermissions') }}
</div>
</NcMenuItem>
<template #default="{ click }">
<NcMenuItem
:data-testid="`sidebar-table-permissions-${table.title}`"
class="nc-table-permissions"
@click="
click(PlanFeatureTypes.FEATURE_TABLE_AND_FIELD_PERMISSIONS, () => {
onPermissions(table)
})
"
>
<div v-e="['c:table:permissions']" class="flex gap-2 items-center w-full">
<GeneralIcon icon="ncLock" class="opacity-80" />
<div class="flex-1">
{{ $t('title.editTablePermissions') }}
</div>
<LazyPaymentUpgradeBadge
:feature="PlanFeatureTypes.FEATURE_TABLE_AND_FIELD_PERMISSIONS"
:title="$t('upgrade.upgradeToUseTableAndFieldPermissions')"
:content="$t('upgrade.upgradeToUseTableAndFieldPermissionsSubtitle')"
:onClickCallback="
() => {
isOptionsOpen = false
}
"
:plan-title="PlanTitles.BUSINESS"
size="xs"
/>
</div>
</NcMenuItem>
</template>
</PaymentUpgradeBadgeProvider>
<NcDivider />
<NcMenuItem @click="onDuplicate">
@@ -737,4 +761,8 @@ async function onRename() {
@apply text-primary text-opacity-60;
}
}
:deep(.nc-menu-item-inner) {
@apply !w-full;
}
</style>