mirror of
https://github.com/nocodb/nocodb.git
synced 2026-05-01 20:57:07 +00:00
@@ -254,25 +254,18 @@ const isDeleteOrUpdateAllowed = (user) => {
|
||||
})
|
||||
"
|
||||
>
|
||||
<NcBadge
|
||||
:border="false"
|
||||
color="grey"
|
||||
class="!bg-nc-bg-gray-medium text-nc-content-gray-default text-sm !h-[20px] !rounded-md truncate"
|
||||
>
|
||||
<div class="flex items-center text-nc-content-gray-default text-sm">
|
||||
<GeneralIcon icon="star" class="flex-none h-4 w-4 mr-1" />
|
||||
|
||||
{{ paidUsersCount }} {{ paidUsersCount === 1 ? $t('labels.editorSeat') : $t('labels.editorSeats') }}
|
||||
</NcBadge>
|
||||
</div>
|
||||
</NcTooltip>
|
||||
<NcBadge
|
||||
v-else
|
||||
:border="false"
|
||||
color="maroon"
|
||||
class="text-nc-content-maroon-dark text-sm !h-[20px] font-500 whitespace-nowrap"
|
||||
>
|
||||
<div v-else class="flex items-center text-nc-content-gray-default text-sm">
|
||||
<GeneralIcon icon="star" class="flex-none h-4 w-4 mr-1" />
|
||||
|
||||
{{ paidUsersCount }} {{ $t('general.paid') }}
|
||||
{{ paidUsersCount === 1 ? $t('general.seat').toLowerCase() : $t('general.seats').toLowerCase() }}
|
||||
</NcBadge>
|
||||
</div>
|
||||
<div class="self-stretch border-r-1 border-nc-border-gray-medium"></div>
|
||||
</template>
|
||||
|
||||
@@ -350,7 +343,7 @@ const isDeleteOrUpdateAllowed = (user) => {
|
||||
<div v-if="column.key === 'email'" class="w-full flex gap-3 items-center">
|
||||
<GeneralUserIcon size="base" :user="record" class="flex-none" />
|
||||
<div class="flex flex-col flex-1 max-w-[calc(100%_-_44px)]">
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="flex items-center gap-1">
|
||||
<NcTooltip class="truncate max-w-full text-gray-800 capitalize font-semibold" show-on-truncate-only>
|
||||
<template #title>
|
||||
{{ record.display_name || record.email.slice(0, record.email.indexOf('@')) }}
|
||||
@@ -364,19 +357,14 @@ const isDeleteOrUpdateAllowed = (user) => {
|
||||
:tooltip-style="{ width: '180px' }"
|
||||
:overlay-inner-style="{ width: '180px' }"
|
||||
>
|
||||
<NcBadge
|
||||
v-if="activePlanTitle === PlanTitles.FREE"
|
||||
:border="false"
|
||||
color="grey"
|
||||
class="!bg-nc-bg-gray-medium text-nc-content-gray-default !h-[20px] !w-[20px] !p-0.5 !rounded"
|
||||
>
|
||||
<GeneralIcon icon="star" class="flex-none h-4 w-4" />
|
||||
</NcBadge>
|
||||
<div v-if="activePlanTitle === PlanTitles.FREE" class="text-nc-content-gray-default">
|
||||
<GeneralIcon icon="star" class="flex-none mb-0.5" />
|
||||
</div>
|
||||
<NcBadge
|
||||
v-else
|
||||
:border="false"
|
||||
color="maroon"
|
||||
class="text-nc-content-maroon-dark text-[10px] leading-[14px] !h-[18px] font-semibold"
|
||||
color="green"
|
||||
class="text-nc-content-green-dark text-[10px] leading-[14px] !h-[18px] font-semibold"
|
||||
>
|
||||
{{ $t('general.paid') }}
|
||||
</NcBadge>
|
||||
|
||||
3
packages/nc-gui/components/workspace/Sso.vue
Normal file
3
packages/nc-gui/components/workspace/Sso.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template>
|
||||
<span></span>
|
||||
</template>
|
||||
@@ -18,11 +18,12 @@ const workspaceStore = useWorkspace()
|
||||
const { loadRoles } = useRoles()
|
||||
const { activeWorkspace: _activeWorkspace, workspaces, deletingWorkspace } = storeToRefs(workspaceStore)
|
||||
const { loadCollaborators, loadWorkspace } = workspaceStore
|
||||
const { appInfo } = useGlobal()
|
||||
|
||||
const orgStore = useOrg()
|
||||
const { orgId, org } = storeToRefs(orgStore)
|
||||
|
||||
const { isWsAuditEnabled, handleUpgradePlan, isPaymentEnabled } = useEeConfig()
|
||||
const { isWsAuditEnabled, handleUpgradePlan, isPaymentEnabled, getFeature } = useEeConfig()
|
||||
|
||||
const currentWorkspace = computedAsync(async () => {
|
||||
if (deletingWorkspace.value) return
|
||||
@@ -60,6 +61,13 @@ const tab = computed({
|
||||
},
|
||||
})
|
||||
|
||||
const isWorkspaceSsoAvail = computed(() => {
|
||||
if (isEeUI && appInfo.value?.isCloud && getFeature(PlanFeatureTypes.FEATURE_SSO)) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
watch(
|
||||
() => currentWorkspace.value?.title,
|
||||
(title) => {
|
||||
@@ -227,6 +235,7 @@ watch(
|
||||
:deep(.ant-tabs-nav) {
|
||||
@apply !pl-0;
|
||||
}
|
||||
|
||||
:deep(.ant-tabs-tab) {
|
||||
@apply pt-2 pb-3;
|
||||
}
|
||||
@@ -234,9 +243,11 @@ watch(
|
||||
.ant-tabs-content-top {
|
||||
@apply !h-full;
|
||||
}
|
||||
|
||||
.tab-info {
|
||||
@apply flex pl-1.25 px-1.5 py-0.75 rounded-md text-xs;
|
||||
}
|
||||
|
||||
.tab-title {
|
||||
@apply flex flex-row items-center gap-x-2 py-[1px];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts" setup>
|
||||
import type { IntegrationCategoryType, SyncDataType, clientTypes as _clientTypes } from '#imports'
|
||||
import { type IntegrationCategoryType, SyncDataType, type clientTypes as _clientTypes } from '#imports'
|
||||
|
||||
const props = defineProps<{
|
||||
open: boolean
|
||||
@@ -104,7 +104,11 @@ onMounted(async () => {
|
||||
</div>
|
||||
</template>
|
||||
</WorkspaceIntegrationsFormsEditOrAddCommonWrapper>
|
||||
<WorkspaceIntegrationsConnect v-if="activeIntegration" v-bind="props" @update:open="vOpen = $event" />
|
||||
<WorkspaceIntegrationsConnect
|
||||
v-if="activeIntegration && activeIntegration.sub_type === SyncDataType.NOCODB"
|
||||
v-bind="props"
|
||||
@update:open="vOpen = $event"
|
||||
/>
|
||||
<div v-else></div>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user