diff --git a/.all-contributorsrc b/.all-contributorsrc index c5433eaecb..7ddc814bef 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -765,6 +765,15 @@ "contributions": [ "code" ] + }, + { + "login": "youyiio", + "name": "youyiio", + "avatar_url": "https://avatars.githubusercontent.com/u/49471274?v=4", + "profile": "https://www.youyi.io", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/.run/Run NocoDB Sqlite.run.xml b/.run/Run NocoDB Sqlite.run.xml new file mode 100644 index 0000000000..58f55251c6 --- /dev/null +++ b/.run/Run NocoDB Sqlite.run.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/packages/nc-gui/components/projectLogs.vue b/packages/nc-gui/components/ProjectLogs.vue similarity index 100% rename from packages/nc-gui/components/projectLogs.vue rename to packages/nc-gui/components/ProjectLogs.vue diff --git a/packages/nc-gui/components/projectOutput.vue b/packages/nc-gui/components/ProjectOutput.vue similarity index 100% rename from packages/nc-gui/components/projectOutput.vue rename to packages/nc-gui/components/ProjectOutput.vue diff --git a/packages/nc-gui/components/projectTabs.vue b/packages/nc-gui/components/ProjectTabs.vue similarity index 60% rename from packages/nc-gui/components/projectTabs.vue rename to packages/nc-gui/components/ProjectTabs.vue index 2ce35f7b6e..a3fd6392ec 100644 --- a/packages/nc-gui/components/projectTabs.vue +++ b/packages/nc-gui/components/ProjectTabs.vue @@ -15,7 +15,7 @@ next-icon="mdi-arrow-right-bold-box-outline" prev-icon="mdi-arrow-left-bold-box-outline" show-arrows - :class="{ 'dark-them': $store.state.windows.darkTheme }" + :class="{ 'dark-them': $store.state.settings.darkTheme }" > @@ -42,37 +42,34 @@ max-width: 140px; text-overflow: ellipsis; " - >{{ tab.name }} + >{{ tab.name }} mdi-close -
- -
- - - mdi-plus-box - - - + + + + + + + + mdi-table + + + + {{ $t('tooltip.addTable') }} + + + + + + QUICK IMPORT FROM + + + + + + mdi-table-large + + + + Airtable + + + + + + + mdi-file-document-outline + + + + CSV file + + + + + + + mdi-file-excel + + + + Microsoft Excel + + + + + + + + + mdi-open-in-new + + + + Request a data source you need ? + + + + + + + + + - + - - + <!– –> - + --> + v-if="item.children && item.children.length" + > ({{ - item.children.filter( - (child) => - !search || - child.name - .toLowerCase() - .includes(search.toLowerCase()) - ).length - }}) + item.children.filter( + (child) => + !search || + child.name + .toLowerCase() + .includes(search.toLowerCase()) + ).length + }}) + v-if="item.children && item.children.length" + > ({{ - item.children.filter( - (child) => - !search || - child.name - .toLowerCase() - .includes(search.toLowerCase()) - ).length - }}) + item.children.filter( + (child) => + !search || + child.name + .toLowerCase() + .includes(search.toLowerCase()) + ).length + }}) {{ item.name }} - + @@ -342,13 +342,13 @@ {{ - child.creator_tooltip - }} + child.creator_tooltip + }} {{ child.name }} @@ -611,9 +611,11 @@ {{ - $t("title.audit") - }} - + $t("title.audit") + }} + @@ -621,14 +623,14 @@ - + {{ - $t("activity.previewAs") - }} + $t("activity.previewAs") + }} mdi-drama-masks @@ -670,17 +672,15 @@ {{ - $t("activity.resetReview") - }} + $t("activity.resetReview") + }}
- - - +
- - - +
@@ -769,12 +767,12 @@ :heading="selectedNodeForDelete.heading" type="error" /> - @@ -788,20 +786,20 @@ import rightClickOptions from "../helpers/rightClickOptions"; import rightClickOptionsSub from "../helpers/rightClickOptionsSub"; import icons from "../helpers/treeViewIcons"; -import textDlgSubmitCancel from "./utils/dlgTextSubmitCancel"; -import dlgLabelSubmitCancel from "./utils/dlgLabelSubmitCancel"; +import textDlgSubmitCancel from "./utils/DlgTextSubmitCancel"; +import dlgLabelSubmitCancel from "./utils/DlgLabelSubmitCancel"; import {copyTextToClipboard} from "../helpers/xutils"; -import DlgTableCreate from "@/components/utils/dlgTableCreate"; -import DlgViewCreate from "@/components/utils/dlgViewCreate"; -import SponsorMini from "@/components/sponsorMini"; +import DlgTableCreate from "~/components/utils/DlgTableCreate"; +import DlgViewCreate from "~/components/utils/DlgViewCreate"; +import SponsorMini from "~/components/SponsorMini"; import {validateTableName} from "~/helpers"; -import ExcelImport from "~/components/import/excelImport"; +import QuickImport from "~/components/import/QuickImport"; import draggable from "vuedraggable"; -import GithubStarBtn from "~/components/githubStarBtn"; -import SettingsModal from "~/components/settings/settingsModal"; -import Language from "~/components/utils/language"; -import Extras from "~/components/project/spreadsheet/components/extras"; +import GithubStarBtn from "~/components/GithubStarBtn"; +import SettingsModal from "~/components/settings/SettingsModal"; +import Language from "~/components/utils/Language"; +import Extras from "~/components/project/spreadsheet/components/Extras"; export default { components: { @@ -810,7 +808,7 @@ export default { SettingsModal, GithubStarBtn, draggable, - ExcelImport, + QuickImport, SponsorMini, DlgViewCreate, DlgTableCreate, @@ -861,10 +859,9 @@ export default { }, loadingProjects: true, caseInsensitive: true, - open: [], search: null, menuVisible: false, - excelImportDialog: false, + quickImportDialog: false, x: 0, y: 0, menuItem: null, @@ -913,7 +910,7 @@ export default { }), computed: { apiLink() { - return new URL(`/api/v1/db/meta/projects/${this.projectId}/swagger`, this.$store.state.project.projectInfo && this.$store.state.project.projectInfo.ncSiteUrl) + return new URL(`/api/v1/db/meta/projects/${this.projectId}/swagger`, this.$store.state.project.appInfo && this.$store.state.project.appInfo.ncSiteUrl) }, previewAs: { get() { @@ -1067,8 +1064,8 @@ export default { }, changeTheme() { this.$store.dispatch( - "windows/ActToggleDarkMode", - !this.$store.state.windows.darkTheme + "settings/ActToggleDarkMode", + !this.$store.state.settings.darkTheme ); }, openLink(link) { @@ -1162,7 +1159,7 @@ export default { this.miniExpanded = false; } }, - onExcelImport() { + onQuickImport() { if (!this.menuItem || this.menuItem.type !== "tableDir") { this.menuItem = this.listViewArr.find((n) => n.type === "tableDir"); } @@ -1201,31 +1198,31 @@ export default { const currentlyOpened = JSON.parse(JSON.stringify(this.open)); currentlyOpened.push(item._nodes.key); this.activeListItem = item._nodes.key; - this.open = currentlyOpened; + // this.open = currentlyOpened; } else if (item._nodes.type === "viewDir" && !open) { await this.loadViews(item); const currentlyOpened = JSON.parse(JSON.stringify(this.open)); currentlyOpened.push(item._nodes.key); this.activeListItem = item._nodes.key; - this.open = currentlyOpened; + // this.open = currentlyOpened; } else if (item._nodes.type === "functionDir" && !open) { await this.loadFunctions(item); const currentlyOpened = JSON.parse(JSON.stringify(this.open)); currentlyOpened.push(item._nodes.key); this.activeListItem = item._nodes.key; - this.open = currentlyOpened; + // this.open = currentlyOpened; } else if (item._nodes.type === "procedureDir" && !open) { await this.loadProcedures(item); const currentlyOpened = JSON.parse(JSON.stringify(this.open)); currentlyOpened.push(item._nodes.key); this.activeListItem = item._nodes.key; - this.open = currentlyOpened; + // this.open = currentlyOpened; } else if (item._nodes.type === "sequenceDir" && !open) { await this.loadSequences(item); const currentlyOpened = JSON.parse(JSON.stringify(this.open)); currentlyOpened.push(item._nodes.key); this.activeListItem = item._nodes.key; - this.open = currentlyOpened; + // this.open = currentlyOpened; } else if (item._nodes.type === "env") { return; } else { @@ -1257,7 +1254,7 @@ export default { if (item._nodes.type === "table") { let tableIndex = +item._nodes.key.split(".").pop(); if ( - !(await this.$store.dispatch("windows/ActCheckMaxTable", { + !(await this.$store.dispatch("settings/ActCheckMaxTable", { tableIndex, })) ) { @@ -1437,7 +1434,7 @@ export default { await this.loadViews(this.menuItem); this.$toast.success("Views refreshed").goAway(1000); } else if (action === "IMPORT_EXCEL") { - this.excelImportDialog = true; + this.quickImportDialog = true; } else if (action === "ENV_DB_FUNCTIONS_REFRESH") { await this.loadFunctions(this.menuItem); this.$toast.success("Functions refreshed").goAway(1000); diff --git a/packages/nc-gui/components/README.md b/packages/nc-gui/components/README.md deleted file mode 100644 index d7768ddb5f..0000000000 --- a/packages/nc-gui/components/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# COMPONENTS - -The components directory contains your Vue.js Components. -Nuxt.js doesn't supercharge these components. - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/packages/nc-gui/components/releaseInfo.vue b/packages/nc-gui/components/ReleaseInfo.vue similarity index 100% rename from packages/nc-gui/components/releaseInfo.vue rename to packages/nc-gui/components/ReleaseInfo.vue diff --git a/packages/nc-gui/components/screensaver.vue b/packages/nc-gui/components/Screensaver.vue similarity index 100% rename from packages/nc-gui/components/screensaver.vue rename to packages/nc-gui/components/Screensaver.vue diff --git a/packages/nc-gui/components/settings.vue b/packages/nc-gui/components/Settings.vue similarity index 90% rename from packages/nc-gui/components/settings.vue rename to packages/nc-gui/components/Settings.vue index 9cccea6c5e..56996abcba 100644 --- a/packages/nc-gui/components/settings.vue +++ b/packages/nc-gui/components/Settings.vue @@ -161,7 +161,7 @@ Version - {{ $store.state.windows.version }} + {{ $store.state.settings.version }} @@ -226,7 +226,7 @@ diff --git a/packages/nc-gui/components/auth/userManagement.vue b/packages/nc-gui/components/auth/UserManagement.vue similarity index 78% rename from packages/nc-gui/components/auth/userManagement.vue rename to packages/nc-gui/components/auth/UserManagement.vue index 4a7b861ad3..86bbbcc5aa 100644 --- a/packages/nc-gui/components/auth/userManagement.vue +++ b/packages/nc-gui/components/auth/UserManagement.vue @@ -13,7 +13,9 @@ @keypress.enter="loadUsers" > @@ -29,7 +31,9 @@ @click="clickReload" @click.prevent > - refresh + + refresh + {{ $t("general.reload") }} @@ -45,7 +49,9 @@ :disabled="loading" @click="addUser" > - mdi-plus + + mdi-plus + {{ $t("activity.newUser") }} @@ -79,12 +85,16 @@ - mdi-email-outline + + mdi-email-outline + {{ $t("labels.email") }} - mdi-drama-masks + + mdi-drama-masks + {{ $t("objects.roles") }} @@ -223,7 +233,9 @@ - mdi-account-outline + + mdi-account-outline + - mdi-close - mdi-save + + mdi-close + + + mdi-save + - mdi-account-outline + + mdi-account-outline + @@ -254,7 +272,9 @@ - mdi-account-plus + + mdi-account-plus + @@ -285,9 +305,15 @@
- mdi-account-outline - - + + mdi-account-outline + + + diff --git a/packages/nc-gui/components/global/recursiveMenu.vue b/packages/nc-gui/components/global/RecursiveMenu.vue similarity index 100% rename from packages/nc-gui/components/global/recursiveMenu.vue rename to packages/nc-gui/components/global/RecursiveMenu.vue diff --git a/packages/nc-gui/components/global/xAutoComplete.vue b/packages/nc-gui/components/global/XAutoComplete.vue similarity index 100% rename from packages/nc-gui/components/global/xAutoComplete.vue rename to packages/nc-gui/components/global/XAutoComplete.vue diff --git a/packages/nc-gui/components/global/xBtn.vue b/packages/nc-gui/components/global/XBtn.vue similarity index 100% rename from packages/nc-gui/components/global/xBtn.vue rename to packages/nc-gui/components/global/XBtn.vue diff --git a/packages/nc-gui/components/global/xIcon.vue b/packages/nc-gui/components/global/XIcon.vue similarity index 100% rename from packages/nc-gui/components/global/xIcon.vue rename to packages/nc-gui/components/global/XIcon.vue diff --git a/packages/nc-gui/components/import/dropOrSelectFile.vue b/packages/nc-gui/components/import/DropOrSelectFile.vue similarity index 100% rename from packages/nc-gui/components/import/dropOrSelectFile.vue rename to packages/nc-gui/components/import/DropOrSelectFile.vue diff --git a/packages/nc-gui/components/import/dropOrSelectFileModal.vue b/packages/nc-gui/components/import/DropOrSelectFileModal.vue similarity index 97% rename from packages/nc-gui/components/import/dropOrSelectFileModal.vue rename to packages/nc-gui/components/import/DropOrSelectFileModal.vue index a6519e677d..624d6cb4c4 100644 --- a/packages/nc-gui/components/import/dropOrSelectFileModal.vue +++ b/packages/nc-gui/components/import/DropOrSelectFileModal.vue @@ -45,7 +45,7 @@ + + diff --git a/packages/nc-gui/components/import/excelImport.vue b/packages/nc-gui/components/import/QuickImport.vue similarity index 81% rename from packages/nc-gui/components/import/excelImport.vue rename to packages/nc-gui/components/import/QuickImport.vue index 9a4921b311..3ac14f1a68 100644 --- a/packages/nc-gui/components/import/excelImport.vue +++ b/packages/nc-gui/components/import/QuickImport.vue @@ -43,8 +43,8 @@ {{ $t('msg.info.upload_sub') }}

-

- +

+ {{ $t('msg.info.excelSupport') }}

@@ -60,13 +60,13 @@ v-model="url" hide-details="auto" type="url" - :label="$t('msg.info.excelURL')" + :label="quickImportType == 'excel' ? $t('msg.info.excelURL') : $t('msg.info.csvURL') " class="caption" outlined dense :rules="[v => !!v || $t('general.required') ]" /> - + {{ $t('general.load') }} @@ -106,6 +106,7 @@ diff --git a/packages/nc-gui/components/project/auditTab/auditCE.vue b/packages/nc-gui/components/project/auditTab/AuditCE.vue similarity index 100% rename from packages/nc-gui/components/project/auditTab/auditCE.vue rename to packages/nc-gui/components/project/auditTab/AuditCE.vue diff --git a/packages/nc-gui/components/project/auditTab/db.vue b/packages/nc-gui/components/project/auditTab/Db.vue similarity index 100% rename from packages/nc-gui/components/project/auditTab/db.vue rename to packages/nc-gui/components/project/auditTab/Db.vue diff --git a/packages/nc-gui/components/project/dlgs/dlgAddRelation.vue b/packages/nc-gui/components/project/dlgs/DlgAddRelation.vue similarity index 100% rename from packages/nc-gui/components/project/dlgs/dlgAddRelation.vue rename to packages/nc-gui/components/project/dlgs/DlgAddRelation.vue diff --git a/packages/nc-gui/components/project/dlgs/dlgTriggerAddEdit.vue b/packages/nc-gui/components/project/dlgs/DlgTriggerAddEdit.vue similarity index 100% rename from packages/nc-gui/components/project/dlgs/dlgTriggerAddEdit.vue rename to packages/nc-gui/components/project/dlgs/DlgTriggerAddEdit.vue diff --git a/packages/nc-gui/components/project/functionTab/functionAcl.vue b/packages/nc-gui/components/project/functionTab/FunctionAcl.vue similarity index 100% rename from packages/nc-gui/components/project/functionTab/functionAcl.vue rename to packages/nc-gui/components/project/functionTab/FunctionAcl.vue diff --git a/packages/nc-gui/components/project/functionTab/functionQuery.vue b/packages/nc-gui/components/project/functionTab/FunctionQuery.vue similarity index 99% rename from packages/nc-gui/components/project/functionTab/functionQuery.vue rename to packages/nc-gui/components/project/functionTab/FunctionQuery.vue index 3a43b6e286..84538e528b 100644 --- a/packages/nc-gui/components/project/functionTab/functionQuery.vue +++ b/packages/nc-gui/components/project/functionTab/FunctionQuery.vue @@ -75,7 +75,7 @@ import { mapGetters, mapActions } from 'vuex' import { SqlUiFactory } from 'nocodb-sdk' import MonacoEditor from '../../monaco/Monaco' -import dlgLabelSubmitCancel from '../../utils/dlgLabelSubmitCancel' +import dlgLabelSubmitCancel from '../../utils/DlgLabelSubmitCancel' export default { components: { MonacoEditor, dlgLabelSubmitCancel }, diff --git a/packages/nc-gui/components/project/procedureTab/procedureAcl.vue b/packages/nc-gui/components/project/procedureTab/ProcedureAcl.vue similarity index 100% rename from packages/nc-gui/components/project/procedureTab/procedureAcl.vue rename to packages/nc-gui/components/project/procedureTab/ProcedureAcl.vue diff --git a/packages/nc-gui/components/project/procedureTab/procedureQuery.vue b/packages/nc-gui/components/project/procedureTab/ProcedureQuery.vue similarity index 99% rename from packages/nc-gui/components/project/procedureTab/procedureQuery.vue rename to packages/nc-gui/components/project/procedureTab/ProcedureQuery.vue index f8b3a819ab..967d12550c 100644 --- a/packages/nc-gui/components/project/procedureTab/procedureQuery.vue +++ b/packages/nc-gui/components/project/procedureTab/ProcedureQuery.vue @@ -71,7 +71,7 @@ import { mapGetters, mapActions } from 'vuex' import MonacoEditor from '../../monaco/Monaco' -import dlgLabelSubmitCancel from '../../utils/dlgLabelSubmitCancel' +import dlgLabelSubmitCancel from '../../utils/DlgLabelSubmitCancel' export default { components: { MonacoEditor, dlgLabelSubmitCancel }, diff --git a/packages/nc-gui/components/project/projectMetadata/disableOrEnableModels.vue b/packages/nc-gui/components/project/projectMetadata/DisableOrEnableModels.vue similarity index 88% rename from packages/nc-gui/components/project/projectMetadata/disableOrEnableModels.vue rename to packages/nc-gui/components/project/projectMetadata/DisableOrEnableModels.vue index 400e6e3159..1ffa987346 100644 --- a/packages/nc-gui/components/project/projectMetadata/disableOrEnableModels.vue +++ b/packages/nc-gui/components/project/projectMetadata/DisableOrEnableModels.vue @@ -1,15 +1,15 @@ + + + + diff --git a/packages/nc-gui/components/project/spreadsheet/components/editColumn/linkedToAnotherOptions.vue b/packages/nc-gui/components/project/spreadsheet/components/editColumn/LinkedToAnotherOptions.vue similarity index 100% rename from packages/nc-gui/components/project/spreadsheet/components/editColumn/linkedToAnotherOptions.vue rename to packages/nc-gui/components/project/spreadsheet/components/editColumn/LinkedToAnotherOptions.vue diff --git a/packages/nc-gui/components/project/spreadsheet/components/editColumn/lookupOptions.vue b/packages/nc-gui/components/project/spreadsheet/components/editColumn/LookupOptions.vue similarity index 100% rename from packages/nc-gui/components/project/spreadsheet/components/editColumn/lookupOptions.vue rename to packages/nc-gui/components/project/spreadsheet/components/editColumn/LookupOptions.vue diff --git a/packages/nc-gui/components/project/spreadsheet/components/editColumn/NormalColumnOptions.vue b/packages/nc-gui/components/project/spreadsheet/components/editColumn/NormalColumnOptions.vue new file mode 100644 index 0000000000..e7dd36ecd4 --- /dev/null +++ b/packages/nc-gui/components/project/spreadsheet/components/editColumn/NormalColumnOptions.vue @@ -0,0 +1,11 @@ +