Compare commits

...

3 Commits

Author SHA1 Message Date
renovate[bot] 51cbab1ed9
chore(renovate): Update patch 2 weeks ago
Ramesh Mane 95cd67cc4c
Nc fix/expanded form bug fixes (#8501) 2 weeks ago
navi a816e96609
New Crowdin updates (#8523) 2 weeks ago
  1. 6
      packages/nc-gui/components/project/AllTables.vue
  2. 4
      packages/nc-gui/components/project/View.vue
  3. 8
      packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
  4. 52
      packages/nc-gui/components/smartsheet/expanded-form/index.vue
  5. 6
      packages/nc-gui/components/smartsheet/header/Cell.vue
  6. 4
      packages/nc-gui/components/smartsheet/header/VirtualCell.vue
  7. 1
      packages/nc-gui/lang/ar.json
  8. 1
      packages/nc-gui/lang/bn_IN.json
  9. 1
      packages/nc-gui/lang/cs.json
  10. 1
      packages/nc-gui/lang/da.json
  11. 1
      packages/nc-gui/lang/de.json
  12. 2
      packages/nc-gui/lang/en.json
  13. 1
      packages/nc-gui/lang/es.json
  14. 1
      packages/nc-gui/lang/eu.json
  15. 1
      packages/nc-gui/lang/fa.json
  16. 1
      packages/nc-gui/lang/fi.json
  17. 1
      packages/nc-gui/lang/fr.json
  18. 1
      packages/nc-gui/lang/he.json
  19. 1
      packages/nc-gui/lang/hi.json
  20. 1
      packages/nc-gui/lang/hr.json
  21. 1
      packages/nc-gui/lang/id.json
  22. 1
      packages/nc-gui/lang/it.json
  23. 1
      packages/nc-gui/lang/ja.json
  24. 1
      packages/nc-gui/lang/ko.json
  25. 1
      packages/nc-gui/lang/lv.json
  26. 1
      packages/nc-gui/lang/nl.json
  27. 1
      packages/nc-gui/lang/no.json
  28. 1
      packages/nc-gui/lang/pl.json
  29. 1
      packages/nc-gui/lang/pt.json
  30. 1
      packages/nc-gui/lang/pt_BR.json
  31. 1
      packages/nc-gui/lang/ru.json
  32. 1
      packages/nc-gui/lang/sk.json
  33. 1
      packages/nc-gui/lang/sl.json
  34. 1
      packages/nc-gui/lang/sv.json
  35. 1
      packages/nc-gui/lang/th.json
  36. 1
      packages/nc-gui/lang/tr.json
  37. 1
      packages/nc-gui/lang/uk.json
  38. 1
      packages/nc-gui/lang/vi.json
  39. 23
      packages/nc-gui/lang/zh-Hans.json
  40. 1
      packages/nc-gui/lang/zh-Hant.json
  41. 2
      packages/nc-gui/package.json
  42. 4
      packages/nocodb/package.json
  43. 121
      pnpm-lock.yaml

@ -105,7 +105,7 @@ const onCreateBaseClick = () => {
<GeneralIcon icon="download" />
<div class="label">{{ $t('activity.import') }} {{ $t('general.data') }}</div>
</div>
<!-- <component :is="isDataSourceLimitReached ? NcTooltip : 'div'" v-if="isUIAllowed('sourceCreate')">
<!-- <component :is="isDataSourceLimitReached ? NcTooltip : 'div'" v-if="isUIAllowed('sourceCreate')">
<template #title>
<div>
{{ $t('tooltip.reachedSourceLimit') }}
@ -124,7 +124,7 @@ const onCreateBaseClick = () => {
<GeneralIcon icon="dataSource" />
<div class="label">{{ $t('labels.connectDataSource') }}</div>
</div>
</component>-->
</component> -->
</div>
<div
v-if="base?.isLoading"
@ -191,7 +191,7 @@ const onCreateBaseClick = () => {
</div>
<ProjectImportModal v-if="defaultBase" v-model:visible="isImportModalOpen" :source="defaultBase" />
<!-- <LazyDashboardSettingsDataSourcesCreateBase v-model:open="isNewBaseModalOpen" />-->
<!-- <LazyDashboardSettingsDataSourcesCreateBase v-model:open="isNewBaseModalOpen" /> -->
</div>
</template>

@ -162,7 +162,7 @@ watch(
</template>
<ProjectAccessSettings :base-id="currentBase?.id" />
</a-tab-pane>
<!-- <a-tab-pane v-if="isUIAllowed('sourceCreate')" key="data-source">
<!-- <a-tab-pane v-if="isUIAllowed('sourceCreate')" key="data-source">
<template #tab>
<div class="tab-title" data-testid="proj-view-tab__data-sources">
<GeneralIcon icon="database" />
@ -180,7 +180,7 @@ watch(
</div>
</template>
<DashboardSettingsDataSources v-model:state="baseSettingsState" />
</a-tab-pane>-->
</a-tab-pane> -->
</a-tabs>
</div>
</div>

@ -166,10 +166,10 @@ watch(commentsWrapperEl, () => {
<div v-else ref="commentsWrapperEl" class="flex flex-col h-full py-1 nc-scrollbar-thin">
<div v-for="log of comments" :key="log.id">
<div class="group gap-3 overflow-hidden hover:bg-gray-200 flex items-start px-3 pt-3 pb-4">
<GeneralUserIcon size="medium" :name="log.display_name" :email="log.user" class="mt-0.5" />
<div class="flex-1 flex flex-col gap-1 max-w-[calc(100%_-_24px)]">
<GeneralUserIcon size="medium" :name="log.display_name" :email="log.user" class="mt-0.7" />
<div class="flex-1 flex flex-col gap-0.5 max-w-[calc(100%_-_24px)]">
<div class="w-full flex justify-between gap-3 min-h-7">
<div class="flex items-start max-w-[calc(100%_-_40px)]">
<div class="flex items-center max-w-[calc(100%_-_40px)]">
<div class="w-full flex flex-wrap items-center">
<NcTooltip class="truncate max-w-42 mr-2" show-on-truncate-only>
<template #title>
@ -389,7 +389,7 @@ watch(commentsWrapperEl, () => {
.ant-tabs-nav {
@apply px-3;
.ant-tabs-nav-list {
@apply w-[calc(100%_-_24px)] gap-6;
@apply w-full gap-6;
.ant-tabs-tab {
@apply flex-1 flex items-center justify-center pt-3 pb-2.5;

@ -562,7 +562,7 @@ export default {
<div
class="flex min-h-7 flex-shrink-0 w-full items-center nc-expanded-form-header relative p-4 xs:(px-2 py-0 min-h-[48px]) justify-between"
>
<div class="flex-1 flex gap-3 lg:w-100 <lg:max-w-[calc(100%_-_178px)] xs:(max-w-[calc(100%_-_44px)])">
<div class="flex-1 flex gap-4 lg:w-100 <lg:max-w-[calc(100%_-_178px)] xs:(max-w-[calc(100%_-_44px)])">
<div class="flex gap-2">
<NcTooltip v-if="props.showNextPrevIcons">
<template #title> {{ renderAltOrOptlKey() }} + </template>
@ -601,13 +601,13 @@ export default {
}"
>
<div v-if="meta.title" class="flex items-center gap-2 px-2 py-1 rounded-lg bg-gray-100 text-gray-800">
<GeneralTableIcon :meta="meta" class="!text-gray-800" />
<GeneralTableIcon :meta="meta" class="!text-gray-800 !mx-0" />
<NcTooltip class="truncate max-w-[100px] xs:(max-w-[82px]) h-5" show-on-truncate-only>
<NcTooltip class="truncate text-sm max-w-[100px] xs:(max-w-[82px]) align-middle" show-on-truncate-only>
<template #title>
{{ meta.title }}
</template>
<span class="font-weight-500 truncate text-sm"> {{ meta.title }} </span>
<span class="font-weight-500 truncate text-sm">{{ meta.title }}</span>
</NcTooltip>
</div>
<div
@ -627,6 +627,21 @@ export default {
</div>
</div>
<div class="flex gap-2">
<NcTooltip v-if="!isMobileMode && isUIAllowed('dataEdit')">
<template #title> {{ renderAltOrOptlKey() }} + S </template>
<NcButton
v-e="['c:row-expand:save']"
:disabled="changedColumns.size === 0 && !isUnsavedFormExist"
:loading="isSaving"
class="nc-expand-form-save-btn !xs:(text-base) !h-7 !px-2"
data-testid="nc-expanded-form-save"
type="primary"
size="xsmall"
@click="save"
>
<div class="xs:px-1">{{ newRecordSubmitBtnText ?? 'Save Record' }}</div>
</NcButton>
</NcTooltip>
<NcButton
v-if="!isNew && rowId && !isMobileMode"
:disabled="isLoading"
@ -645,21 +660,6 @@ export default {
{{ isRecordLinkCopied ? $t('labels.copiedRecordURL') : $t('labels.copyRecordURL') }}
</div>
</NcButton>
<NcTooltip v-if="!isMobileMode && isUIAllowed('dataEdit')">
<template #title> {{ renderAltOrOptlKey() }} + S </template>
<NcButton
v-e="['c:row-expand:save']"
:disabled="changedColumns.size === 0 && !isUnsavedFormExist"
:loading="isSaving"
class="nc-expand-form-save-btn !xs:(text-base) !h-7 !px-2"
data-testid="nc-expanded-form-save"
type="primary"
size="xsmall"
@click="save"
>
<div class="xs:px-1">{{ newRecordSubmitBtnText ?? 'Save Record' }}</div>
</NcButton>
</NcTooltip>
<NcDropdown v-if="!isNew && rowId && !isMobileMode" placement="bottomRight">
<NcButton type="text" size="xsmall" class="nc-expand-form-more-actions !w-7 !h-7" :disabled="isLoading">
<GeneralIcon icon="threeDotVertical" class="text-md" :class="isLoading ? 'text-gray-300' : 'text-gray-700'" />
@ -730,7 +730,7 @@ export default {
>
<div
ref="expandedFormScrollWrapper"
class="flex flex-col flex-grow gap-3 h-full max-h-full nc-scrollbar-thin items-center w-full p-4 xs:(px-4 pt-4 pb-2 gap-6) children:max-w-[588px] <lg:(children:max-w-[450px])"
class="flex flex-col flex-grow gap-4 h-full max-h-full nc-scrollbar-thin items-center w-full p-4 xs:(px-4 pt-4 pb-2 gap-6) children:max-w-[588px] <lg:(children:max-w-[450px])"
>
<div
v-for="(col, i) of fields"
@ -1024,14 +1024,18 @@ export default {
}
.nc-data-cell {
box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
&:hover,
@apply !rounded-lg;
transition: all 0.3s;
&:hover {
@apply !border-1 !border-brand-400;
}
&:focus-within {
box-shadow: 0 0 3px rgba(0, 0, 0, 0.1) !important;
box-shadow: 0px 0px 0px 2px rgba(51, 102, 255, 0.24) !important;
}
}
.nc-data-cell:focus-within {
@apply !border-1 !border-brand-500 !rounded-lg;
@apply !border-1 !border-brand-500;
}
:deep(.nc-system-field input) {

@ -99,7 +99,7 @@ const onClick = (e: Event) => {
:class="{
'h-full': column,
'!text-gray-400': isKanban,
'flex-col !items-start justify-center': isExpandedForm && !isMobileMode,
'flex-col !items-start justify-center pt-0.5': isExpandedForm && !isMobileMode,
'cursor-pointer hover:bg-gray-100': isExpandedForm && !isMobileMode && isUIAllowed('fieldEdit'),
'bg-gray-100': isExpandedForm ? editColumnDropdown || isDropDownOpen : false,
}"
@ -138,7 +138,7 @@ const onClick = (e: Event) => {
<NcTooltip
v-if="column"
:class="{
'cursor-pointer pt-0.25': !isForm && isUIAllowed('fieldEdit') && !hideMenu,
'cursor-pointer': !isForm && isUIAllowed('fieldEdit') && !hideMenu,
'cursor-default': isForm || !isUIAllowed('fieldEdit') || hideMenu,
'truncate': !isForm,
}"
@ -164,7 +164,7 @@ const onClick = (e: Event) => {
<GeneralIcon
v-if="isExpandedForm && !isMobileMode && isUIAllowed('fieldEdit')"
icon="arrowDown"
class="flex-none text-grey h-full text-grey cursor-pointer ml-1 group-hover:visible"
class="flex-none cursor-pointer ml-1 group-hover:visible w-4 h-4"
:class="{
visible: editColumnDropdown || isDropDownOpen,
invisible: !(editColumnDropdown || isDropDownOpen),

@ -179,7 +179,7 @@ const onClick = (e: Event) => {
<div
class="flex items-center w-full h-full text-small text-gray-500 font-weight-medium group"
:class="{
'flex-col !items-start justify-center': isExpandedForm,
'flex-col !items-start justify-center pt-0.5': isExpandedForm && !isMobileMode,
'bg-gray-100': isExpandedForm ? editColumnDropdown || isDropDownOpen : false,
'cursor-pointer hover:bg-gray-100': isExpandedForm && !isMobileMode && isUIAllowed('fieldEdit'),
}"
@ -220,7 +220,7 @@ const onClick = (e: Event) => {
<GeneralIcon
v-if="isExpandedForm && !isMobileMode && isUIAllowed('fieldEdit')"
icon="arrowDown"
class="flex-none h-full cursor-pointer ml-1 group-hover:visible"
class="flex-none cursor-pointer ml-1 group-hover:visible w-4 h-4"
:class="{
visible: editColumnDropdown || isDropDownOpen,
invisible: !(editColumnDropdown || isDropDownOpen),

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1498,7 +1498,7 @@
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots",
"parameterKeyCannotBeEmpty": "Parameter key cannot be empty",
"duplicateParameterKeysAreNotAllowed": "Duplicate parameter keys are not allowed",
"fieldRequired": "This field cannot be empty.",
"fieldRequired": "{value} cannot be empty.",
"projectNotAccessible": "Base not accessible",
"copyToClipboardError": "Failed to copy to clipboard",
"pasteFromClipboardError": "Failed to paste from clipboard",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Options de recherche"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Contrôlez le nom et l'apparence de vos organisations.",
"addCompanyDomains": "Ajoutez des domaines pour restreindre l'accès aux utilisateurs non souhaités.",
"restrictUsersFromSharing": "Empêcher les utilisateurs de partager leurs bases publiquement.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Opcje wyszukiwania"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Kontroluj nazwę i wygląd organizacji.",
"addCompanyDomains": "Dodaj domeny firmy, aby ograniczyć dostęp od niechcianych użytkowników.",
"restrictUsersFromSharing": "Ogranicz użytkowników z możliwości publicznego udostępniania baz danych.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -162,7 +162,7 @@
"insertAbove": "将上方内容插入",
"insertBelow": "将下方内容插入",
"hideField": "隐藏字段",
"showField": "Show Field",
"showField": "显示字段",
"sortAsc": "升序",
"sortDesc": "降序",
"move": "移动",
@ -448,18 +448,18 @@
"noResultsMatchedYourSearch": "您的搜索没有任何匹配结果"
},
"labels": {
"connectionDetails": "Connection Details",
"metaSync": "Meta Sync",
"today": "Today",
"workspace": "Workspace",
"connectionDetails": "链接明细",
"metaSync": "元同步",
"today": "今天",
"workspace": "工作区",
"txt": "TXT 记录值",
"transferOwnership": "转让所有权",
"recentActivity": "最近动态",
"goToMembers": "转到成员",
"addMember": "添加成员",
"numberOfMembers": "No. Members",
"numberOfBases": "No. Bases",
"numberOfRecords": "No. Records",
"numberOfMembers": "工作区序号",
"numberOfBases": "项目序号",
"numberOfRecords": "记录序号",
"workspaceName": "工作区名称",
"workspaceWithoutOwner": "工作区(无所有者)",
"inviteUsersToWorkspace": "邀请用户访问工作区",
@ -471,7 +471,7 @@
"signOutUsers": "注销用户",
"deactivateUser": "停用用户",
"deactivateUsers": "停用用户",
"lastActive": "Last Active",
"lastActive": "最近活动",
"dateAdded": "日期已添加",
"uploadImage": "上传图片",
"organizationProfile": "组织简介",
@ -484,7 +484,7 @@
"deleteUserAndData": "删除用户及其数据",
"userOptions": "用户选项",
"deleteThisOrganization": "删除该组织",
"dangerZone": "Dangerzone",
"dangerZone": "危险区",
"selectYear": "选择年份",
"save": "保存",
"cancel": "取消",
@ -1101,6 +1101,7 @@
"searchOptions": "搜索选项"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "控制您的组织名称和外观。",
"addCompanyDomains": "添加公司域,限制不需要的用户访问。",
"restrictUsersFromSharing": "限制用户公开共享项目 。",
@ -1497,7 +1498,7 @@
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "可接受的文件类型是 .xls, .xlsx, .xlsm, .ods, .ots",
"parameterKeyCannotBeEmpty": "参数键不能为空",
"duplicateParameterKeysAreNotAllowed": "不允许重复的参数键",
"fieldRequired": "This field cannot be empty.",
"fieldRequired": "此字段不能为空。",
"projectNotAccessible": "无权访问此项目",
"copyToClipboardError": "未能复制到剪贴板",
"pasteFromClipboardError": "从剪贴板粘贴失败",

@ -1101,6 +1101,7 @@
"searchOptions": "Search options"
},
"msg": {
"formulaNotSupported": "This function is unavailable for your database",
"controlOrgAppearance": "Control your organisations name and appearance.",
"addCompanyDomains": "Add company domains to restrict access to unwanted users.",
"restrictUsersFromSharing": "Restrict users from being able to share bases publicly.",

@ -56,7 +56,7 @@
"@vueuse/core": "^10.7.2",
"@vueuse/integrations": "^10.7.2",
"ant-design-vue": "^3.2.20",
"chart.js": "^4.4.2",
"chart.js": "^4.4.3",
"crossoriginworker": "^1.1.0",
"d3-scale": "^4.0.2",
"dagre": "^0.8.5",

@ -80,7 +80,7 @@
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"boxen": "^5.1.2",
"bull": "^4.12.5",
"bull": "^4.12.6",
"bullmq": "^1.91.1",
"clear": "^0.1.0",
"clickhouse": "^2.6.0",
@ -132,7 +132,7 @@
"mysql2": "^3.9.7",
"nanoid": "^3.3.7",
"nc-help": "0.3.1",
"nc-lib-gui": "0.207.1",
"nc-lib-gui": "0.207.2",
"nc-plugin": "^0.1.3",
"ncp": "^2.0.0",
"nestjs-kafka": "^1.0.6",

@ -98,8 +98,8 @@ importers:
specifier: ^3.2.20
version: 3.2.20(vue@3.4.27)
chart.js:
specifier: ^4.4.2
version: 4.4.2
specifier: ^4.4.3
version: 4.4.3
crossoriginworker:
specifier: ^1.1.0
version: 1.1.0
@ -207,7 +207,7 @@ importers:
version: 1.0.3
vue-chartjs:
specifier: ^5.3.1
version: 5.3.1(chart.js@4.4.2)(vue@3.4.27)
version: 5.3.1(chart.js@4.4.3)(vue@3.4.27)
vue-dompurify-html:
specifier: ^3.1.2
version: 3.1.2(vue@3.4.27)
@ -448,7 +448,7 @@ importers:
version: 3.1.2
'@nestjs/bull':
specifier: ^10.0.1
version: 10.0.1(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)(bull@4.12.5)
version: 10.0.1(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)(bull@4.12.6)
'@nestjs/common':
specifier: ^10.3.8
version: 10.3.8(reflect-metadata@0.2.1)(rxjs@7.8.1)
@ -531,8 +531,8 @@ importers:
specifier: ^5.1.2
version: 5.1.2
bull:
specifier: ^4.12.5
version: 4.12.5
specifier: ^4.12.6
version: 4.12.6
bullmq:
specifier: ^1.91.1
version: 1.91.1
@ -687,8 +687,8 @@ importers:
specifier: 0.3.1
version: 0.3.1(asn1.js@5.4.1)(debug@4.3.4)(knex@2.4.2)
nc-lib-gui:
specifier: 0.207.1
version: 0.207.1
specifier: 0.207.2
version: 0.207.2
nc-plugin:
specifier: ^0.1.3
version: 0.1.3
@ -5323,7 +5323,7 @@ packages:
tslib: 2.6.0
dev: false
/@nestjs/bull@10.0.1(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)(bull@4.12.5):
/@nestjs/bull@10.0.1(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)(bull@4.12.6):
resolution: {integrity: sha512-1GcJ8BkHDgQdBMZ7SqAqgUHiFnISXmpGvewFeTc8wf87JLk2PweiKv9j9/KQKU+NI237pCe82XB0bXzTnsdxSw==}
peerDependencies:
'@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
@ -5333,7 +5333,7 @@ packages:
'@nestjs/bull-shared': 10.0.1(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)
'@nestjs/common': 10.3.8(reflect-metadata@0.2.1)(rxjs@7.8.1)
'@nestjs/core': 10.3.8(@nestjs/common@10.3.8)(@nestjs/platform-express@10.3.8)(@nestjs/websockets@10.3.8)(reflect-metadata@0.2.1)(rxjs@7.8.1)
bull: 4.12.5
bull: 4.12.6
tslib: 2.6.0
dev: false
@ -6237,7 +6237,7 @@ packages:
pathe: 1.1.2
pkg-types: 1.0.3
scule: 1.2.0
semver: 7.5.4
semver: 7.6.2
ufo: 1.5.3
unctx: 2.3.1
unimport: 3.7.1(rollup@4.17.2)
@ -9758,8 +9758,8 @@ packages:
'@eslint-community/regexpp': 4.8.0
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)
'@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0
graphemer: 1.4.0
@ -9841,7 +9841,7 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2)
debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0
transitivePeerDependencies:
@ -9923,7 +9923,7 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.33.0)
debug: 4.3.4(supports-color@5.5.0)
eslint: 8.33.0
@ -9932,25 +9932,6 @@ packages:
- supports-color
dev: true
/@typescript-eslint/type-utils@5.62.0(eslint@8.56.0):
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.62.0
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)
debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0
tsutils: 3.21.0(typescript@5.3.2)
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.2):
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@ -10025,26 +10006,6 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/typescript-estree@5.62.0:
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0
debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.2
tsutils: 3.21.0(typescript@5.3.2)
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2):
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@ -10059,7 +10020,7 @@ packages:
debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.0
semver: 7.6.2
tsutils: 3.21.0(typescript@5.3.2)
typescript: 5.3.2
transitivePeerDependencies:
@ -10080,7 +10041,7 @@ packages:
debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.0
semver: 7.6.2
ts-api-utils: 1.0.2(typescript@5.3.2)
transitivePeerDependencies:
- supports-color
@ -10101,7 +10062,7 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.6.0
semver: 7.6.2
ts-api-utils: 1.0.2(typescript@5.3.2)
typescript: 5.3.2
transitivePeerDependencies:
@ -10119,30 +10080,10 @@ packages:
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2)
eslint: 8.33.0
eslint-scope: 5.1.1
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/@typescript-eslint/utils@5.62.0(eslint@8.56.0):
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0
eslint: 8.56.0
eslint-scope: 5.1.1
semver: 7.6.0
semver: 7.6.2
transitivePeerDependencies:
- supports-color
- typescript
@ -10162,7 +10103,7 @@ packages:
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2)
eslint: 8.56.0
eslint-scope: 5.1.1
semver: 7.6.0
semver: 7.6.2
transitivePeerDependencies:
- supports-color
- typescript
@ -12588,8 +12529,8 @@ packages:
semver: 7.6.2
dev: true
/bull@4.12.5:
resolution: {integrity: sha512-IYRH/kS4+79xOjAbAqXxky85Q3xfTYEsFUF1fohXF1hwialz0JnpcKSELChAdawmE6ZhgYGiI/itSvnEq7cvEQ==}
/bull@4.12.6:
resolution: {integrity: sha512-QViK1i938moggAtlwhmJ8RmLadswgWKlqOFX9w+WBIAuV2L8qrte1XOIs7KUrRc9fbIfJTziaq7NZEpuaMO4Lw==}
engines: {node: '>=12'}
dependencies:
cron-parser: 4.9.0
@ -12891,8 +12832,8 @@ packages:
resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
dev: false
/chart.js@4.4.2:
resolution: {integrity: sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==}
/chart.js@4.4.3:
resolution: {integrity: sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==}
engines: {pnpm: '>=8'}
dependencies:
'@kurkle/color': 0.3.2
@ -15217,7 +15158,7 @@ packages:
/eslint-plugin-antfu@0.26.3(eslint@8.56.0):
resolution: {integrity: sha512-w64+iWWMSrlsX0oNTuAE0XcgPl3kP2L6xU0iKdLuSTOmhULPE4BoUNuYpD0XUKbP2Ke4JxB+DP/uBNb7jykfbg==}
dependencies:
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
transitivePeerDependencies:
- eslint
- supports-color
@ -20953,8 +20894,8 @@ packages:
- supports-color
dev: false
/nc-lib-gui@0.207.1:
resolution: {integrity: sha512-EY3HycJ9/2AE4cnE82P7mkhqrFpexXYFv41kwwZL8LDNSeX/7KqR3qveVs0zFygSp02kv67cqWG025MPqH33lg==}
/nc-lib-gui@0.207.2:
resolution: {integrity: sha512-+/u+N7/vPvcUBs7BN6WM2H2hKxhOta0KKZ75mFyZhb4D/p8Y2SMlCQDAqpkR3lsH0DZaTlKqjGKeYPFtmRw0Ug==}
dependencies:
express: 4.19.2
transitivePeerDependencies:
@ -24530,7 +24471,7 @@ packages:
resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
engines: {node: '>=10'}
dependencies:
semver: 7.6.0
semver: 7.6.2
dev: true
/sirv@1.0.19:
@ -27350,13 +27291,13 @@ packages:
ufo: 1.5.3
dev: true
/vue-chartjs@5.3.1(chart.js@4.4.2)(vue@3.4.27):
/vue-chartjs@5.3.1(chart.js@4.4.3)(vue@3.4.27):
resolution: {integrity: sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==}
peerDependencies:
chart.js: ^4.1.1
vue: latest
dependencies:
chart.js: 4.4.2
chart.js: 4.4.3
vue: 3.4.27
dev: false

Loading…
Cancel
Save