diff --git a/packages/nc-gui-v2/assets/style-v2.scss b/packages/nc-gui-v2/assets/style-v2.scss index 9bc1f12ce1..5c55ae5c33 100644 --- a/packages/nc-gui-v2/assets/style-v2.scss +++ b/packages/nc-gui-v2/assets/style-v2.scss @@ -75,7 +75,7 @@ html { // menu item styling .nc-menu-item { - @apply cursor-pointer text-xs flex items-center gap-2 px-4 py-3 after:(content-[''] absolute top-0 left-0 bottom-0 w-full h-full right-0 bg-current opacity-0 transition transition-opactity duration-100) hover:(after:(opacity-5)); + @apply cursor-pointer text-xs flex items-center gap-2 px-4 py-3 relative after:(content-[''] absolute top-0 left-0 bottom-0 w-full h-full right-0 bg-current opacity-0 transition transition-opactity duration-100) hover:(after:(opacity-5)); } .nc-sidebar-right-item { diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index f3c5e683c5..670f84c89c 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -42,12 +42,14 @@ declare module '@vue/runtime-core' { AMenuItemGroup: typeof import('ant-design-vue/es')['MenuItemGroup'] AModal: typeof import('ant-design-vue/es')['Modal'] APagination: typeof import('ant-design-vue/es')['Pagination'] + APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] ARadio: typeof import('ant-design-vue/es')['Radio'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARate: typeof import('ant-design-vue/es')['Rate'] ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] + ASkeleton: typeof import('ant-design-vue/es')['Skeleton'] ASkeletonImage: typeof import('ant-design-vue/es')['SkeletonImage'] ASpin: typeof import('ant-design-vue/es')['Spin'] ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] @@ -79,11 +81,44 @@ declare module '@vue/runtime-core' { MdiArrowLeftBold: typeof import('~icons/mdi/arrow-left-bold')['default'] MdiAt: typeof import('~icons/mdi/at')['default'] MdiCalculator: typeof import('~icons/mdi/calculator')['default'] + MdiCardsHeart: typeof import('~icons/mdi/cards-heart')['default'] + MdiCellphoneMessage: typeof import('~icons/mdi/cellphone-message')['default'] + MdiChat: typeof import('~icons/mdi/chat')['default'] + MdiCheck: typeof import('~icons/mdi/check')['default'] + MdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] + MdiCloseCircle: typeof import('~icons/mdi/close-circle')['default'] + MdiContentCopy: typeof import('~icons/mdi/content-copy')['default'] + MdiContentSave: typeof import('~icons/mdi/content-save')['default'] + MdiDatabase: typeof import('~icons/mdi/database')['default'] + MdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default'] + MdiDiscord: typeof import('~icons/mdi/discord')['default'] + MdiDotsHorizontal: typeof import('~icons/mdi/dots-horizontal')['default'] MdiDotsVertical: typeof import('~icons/mdi/dots-vertical')['default'] + MdiDownload: typeof import('~icons/mdi/download')['default'] + MdiDrag: typeof import('~icons/mdi/drag')['default'] + MdiEmail: typeof import('~icons/mdi/email')['default'] + MdiEyeOffOutline: typeof import('~icons/mdi/eye-off-outline')['default'] + MdiFlag: typeof import('~icons/mdi/flag')['default'] + MdiFolder: typeof import('~icons/mdi/folder')['default'] MdiFunction: typeof import('~icons/mdi/function')['default'] + MdiGestureDoubleTap: typeof import('~icons/mdi/gesture-double-tap')['default'] + MdiHeart: typeof import('~icons/mdi/heart')['default'] + MdiHook: typeof import('~icons/mdi/hook')['default'] + MdiInformation: typeof import('~icons/mdi/information')['default'] + MdiLink: typeof import('~icons/mdi/link')['default'] + MdiLinkVariantRemove: typeof import('~icons/mdi/link-variant-remove')['default'] MdiLogout: typeof import('~icons/mdi/logout')['default'] + MdiMagnify: typeof import('~icons/mdi/magnify')['default'] + MdiMenuDown: typeof import('~icons/mdi/menu-down')['default'] + MdiMicrosoftTeams: typeof import('~icons/mdi/microsoft-teams')['default'] + MdiMoonFull: typeof import('~icons/mdi/moon-full')['default'] + MdiNotebookCheckOutline: typeof import('~icons/mdi/notebook-check-outline')['default'] + MdiOpenInNew: typeof import('~icons/mdi/open-in-new')['default'] MdiOperator: typeof import('~icons/mdi/operator')['default'] + MdiPlus: typeof import('~icons/mdi/plus')['default'] + MdiPlusOutline: typeof import('~icons/mdi/plus-outline')['default'] MdiReload: typeof import('~icons/mdi/reload')['default'] + MdiSearch: typeof import('~icons/mdi/search')['default'] MdiShieldLockOutline: typeof import('~icons/mdi/shield-lock-outline')['default'] MdiSlack: typeof import('~icons/mdi/slack')['default'] MdiStar: typeof import('~icons/mdi/star')['default'] diff --git a/packages/nc-gui-v2/components/cell/MultiSelect.vue b/packages/nc-gui-v2/components/cell/MultiSelect.vue index f43f62fc8f..d33373e547 100644 --- a/packages/nc-gui-v2/components/cell/MultiSelect.vue +++ b/packages/nc-gui-v2/components/cell/MultiSelect.vue @@ -1,6 +1,6 @@ @@ -73,7 +69,7 @@ onMounted(() => { Drop here @@ -100,12 +96,15 @@ onMounted(() => { @@ -152,6 +148,10 @@ onMounted(() => { diff --git a/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue b/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue index e5f17f339e..c23ae557ec 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue @@ -32,7 +32,7 @@ async function loadTableList() { isLoading = true // TODO includeM2M tables = await $api.project.modelVisibilityList(project.value?.id, { - includeM2M: true, + includeM2M: false, }) } catch (e) { console.error(e) diff --git a/packages/nc-gui-v2/components/dlg/AirtableImport.vue b/packages/nc-gui-v2/components/dlg/AirtableImport.vue index 6b5ce40636..4b21d3be0e 100644 --- a/packages/nc-gui-v2/components/dlg/AirtableImport.vue +++ b/packages/nc-gui-v2/components/dlg/AirtableImport.vue @@ -25,9 +25,7 @@ const { $state } = useNuxtApp() const toast = useToast() -const { sqlUi, project, loadTables } = useProject() - -const loading = ref(false) +const { project, loadTables } = useProject() const showGoToDashboardButton = ref(false) @@ -78,7 +76,7 @@ const dialogShow = computed({ const useForm = Form.useForm -const { resetFields, validate, validateInfos } = useForm(syncSource, validators) +const { validateInfos } = useForm(syncSource, validators) const disableImportButton = computed(() => { return !syncSource.value.details.apiKey || !syncSource.value.details.syncSourceUrlOrId diff --git a/packages/nc-gui-v2/components/dlg/QuickImport.vue b/packages/nc-gui-v2/components/dlg/QuickImport.vue index c9ccf6dd6b..0f9e6fcdbb 100644 --- a/packages/nc-gui-v2/components/dlg/QuickImport.vue +++ b/packages/nc-gui-v2/components/dlg/QuickImport.vue @@ -68,7 +68,7 @@ const validators = computed(() => { } }) -const { resetFields, validate, validateInfos } = useForm(importState, validators) +const { validate, validateInfos } = useForm(importState, validators) const importMeta = computed(() => { if (IsImportTypeExcel.value) { diff --git a/packages/nc-gui-v2/components/dlg/TableCreate.vue b/packages/nc-gui-v2/components/dlg/TableCreate.vue index 1ad2835612..596eb44adc 100644 --- a/packages/nc-gui-v2/components/dlg/TableCreate.vue +++ b/packages/nc-gui-v2/components/dlg/TableCreate.vue @@ -1,6 +1,5 @@ @@ -54,17 +55,22 @@ const columns = $computed(() => {
- - -
-
{{ table.column.title }}
- -
({{ relationNames[table.col.type] }} {{ table.title || table.table_name }})
+ + +
+
{{ table.column.title }}
+
+ {{ relationNames[table.col.type] }} {{ table.title || table.table_name }} +
- {
- - -
-
{{ table.column.title }}
-
({{ relationNames[table.col.type] }} {{ table.title || table.table_name }})
+ + +
+
{{ table.column.title }}
+
+ ({{ relationNames[table.col.type] }} {{ table.title || table.table_name }}) +
diff --git a/packages/nc-gui-v2/components/smartsheet-header/Menu.vue b/packages/nc-gui-v2/components/smartsheet-header/Menu.vue index bc73968e60..3879cb06ab 100644 --- a/packages/nc-gui-v2/components/smartsheet-header/Menu.vue +++ b/packages/nc-gui-v2/components/smartsheet-header/Menu.vue @@ -1,4 +1,5 @@ + + diff --git a/packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue b/packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue index 2da6fd20ce..589e9963bf 100644 --- a/packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue +++ b/packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue @@ -16,7 +16,7 @@ provide(ColumnInj, column) const { metas } = useMetas() const meta = inject(MetaInj) -const { isLookup, isBt, isRollup, isMm, isHm, isFormula, isCount } = useVirtualCell(column) +const { isLookup, isBt, isRollup, isMm, isHm, isFormula } = useVirtualCell(column) const colOptions = $computed(() => column.value?.colOptions) const tableTile = $computed(() => meta?.value?.title) diff --git a/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue b/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue index 99b6eb6aca..33c48863b5 100644 --- a/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue +++ b/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue @@ -11,6 +11,7 @@ import FormulaIcon from '~icons/mdi/math-integral' import RollupIcon from '~icons/mdi/movie-roll' import CountIcon from '~icons/mdi/counter' import SpecificDBTypeIcon from '~icons/mdi/database-settings' +import TableColumnPlusBefore from '~icons/mdi/table-column-plus-before' const props = defineProps<{ columnMeta?: ColumnType }>() const columnMeta = toRef(props, 'columnMeta') @@ -34,7 +35,7 @@ const icon = computed(() => { case UITypes.Formula: return FormulaIcon case UITypes.Lookup: - return GenericIcon + return TableColumnPlusBefore case UITypes.Rollup: return RollupIcon case UITypes.Count: diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue index 1de9644763..49b2485012 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue @@ -5,7 +5,7 @@ import FieldListAutoCompleteDropdown from './FieldListAutoCompleteDropdown.vue' import { useNuxtApp } from '#app' import { inject, useViewFilters } from '#imports' import { comparisonOpList } from '~/utils/filterUtils' -import { ActiveViewInj, IsLockedInj, MetaInj, ReloadViewDataHookInj } from '~/context' +import { ActiveViewInj, MetaInj, ReloadViewDataHookInj } from '~/context' import MdiDeleteIcon from '~icons/mdi/close-box' import MdiAddIcon from '~icons/mdi/plus' @@ -16,7 +16,6 @@ const emit = defineEmits(['update:filtersLength']) const meta = inject(MetaInj) const activeView = inject(ActiveViewInj) const reloadDataHook = inject(ReloadViewDataHookInj) -const isLocked = inject(IsLockedInj) // todo: replace with inject or get from state const shared = ref(false) diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue index 40b644614e..afa5379404 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue @@ -1,12 +1,10 @@ -