|
|
@ -1,10 +1,10 @@ |
|
|
|
<script lang="ts" setup> |
|
|
|
<script lang="ts" setup> |
|
|
|
import {Modal} from 'ant-design-vue' |
|
|
|
import { Modal } from 'ant-design-vue' |
|
|
|
import type {ProjectType} from 'nocodb-sdk' |
|
|
|
import type { ProjectType } from 'nocodb-sdk' |
|
|
|
import {useToast} from 'vue-toastification' |
|
|
|
import { useToast } from 'vue-toastification' |
|
|
|
import {navigateTo} from '#app' |
|
|
|
import { navigateTo } from '#app' |
|
|
|
import {computed, onMounted} from '#imports' |
|
|
|
import { computed, onMounted } from '#imports' |
|
|
|
import {extractSdkResponseErrorMsg} from '~/utils/errorUtils' |
|
|
|
import { extractSdkResponseErrorMsg } from '~/utils/errorUtils' |
|
|
|
|
|
|
|
|
|
|
|
import MdiDeleteOutline from '~icons/mdi/delete-outline' |
|
|
|
import MdiDeleteOutline from '~icons/mdi/delete-outline' |
|
|
|
import MdiEditOutline from '~icons/mdi/edit-outline' |
|
|
|
import MdiEditOutline from '~icons/mdi/edit-outline' |
|
|
@ -13,7 +13,7 @@ import MdiMenuDown from '~icons/mdi/menu-down' |
|
|
|
import MdiPlus from '~icons/mdi/plus' |
|
|
|
import MdiPlus from '~icons/mdi/plus' |
|
|
|
import MdiDatabaseOutline from '~icons/mdi/database-outline' |
|
|
|
import MdiDatabaseOutline from '~icons/mdi/database-outline' |
|
|
|
|
|
|
|
|
|
|
|
const {$api, $state, $e} = useNuxtApp() |
|
|
|
const { $api, $state, $e } = useNuxtApp() |
|
|
|
const toast = useToast() |
|
|
|
const toast = useToast() |
|
|
|
|
|
|
|
|
|
|
|
const filterQuery = ref('') |
|
|
|
const filterQuery = ref('') |
|
|
@ -86,7 +86,7 @@ $state.sidebarOpen.value = false |
|
|
|
<a-button class="nc-new-project-menu !shadow"> |
|
|
|
<a-button class="nc-new-project-menu !shadow"> |
|
|
|
<div class="flex align-center"> |
|
|
|
<div class="flex align-center"> |
|
|
|
{{ $t('title.newProj') }} |
|
|
|
{{ $t('title.newProj') }} |
|
|
|
<MdiMenuDown class="menu-icon"/> |
|
|
|
<MdiMenuDown class="menu-icon" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</a-button> |
|
|
|
</a-button> |
|
|
|
|
|
|
|
|
|
|
@ -97,7 +97,7 @@ $state.sidebarOpen.value = false |
|
|
|
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-xc-db-project" |
|
|
|
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-xc-db-project" |
|
|
|
@click="navigateTo('/project/create')" |
|
|
|
@click="navigateTo('/project/create')" |
|
|
|
> |
|
|
|
> |
|
|
|
<MdiPlus class="col-span-2 mr-1 mt-[1px] text-primary text-lg"/> |
|
|
|
<MdiPlus class="col-span-2 mr-1 mt-[1px] text-primary text-lg" /> |
|
|
|
<div class="col-span-10 text-sm xl:text-md">{{ $t('activity.createProject') }}</div> |
|
|
|
<div class="col-span-10 text-sm xl:text-md">{{ $t('activity.createProject') }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div |
|
|
|
<div |
|
|
@ -105,8 +105,8 @@ $state.sidebarOpen.value = false |
|
|
|
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-external-db-project" |
|
|
|
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-external-db-project" |
|
|
|
@click="navigateTo('/project/create-external')" |
|
|
|
@click="navigateTo('/project/create-external')" |
|
|
|
> |
|
|
|
> |
|
|
|
<MdiDatabaseOutline class="col-span-2 mr-1 mt-[1px] text-green-500 text-lg"/> |
|
|
|
<MdiDatabaseOutline class="col-span-2 mr-1 mt-[1px] text-green-500 text-lg" /> |
|
|
|
<div class="col-span-10 text-sm xl:text-md" v-html="$t('activity.createProjectExtended.extDB')"/> |
|
|
|
<div class="col-span-10 text-sm xl:text-md" v-html="$t('activity.createProjectExtended.extDB')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</a-menu> |
|
|
|
</a-menu> |
|
|
|
</template> |
|
|
|
</template> |
|
|
@ -114,7 +114,7 @@ $state.sidebarOpen.value = false |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div v-if="loading"> |
|
|
|
<div v-if="loading"> |
|
|
|
<a-skeleton/> |
|
|
|
<a-skeleton /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<a-table |
|
|
|
<a-table |
|
|
@ -133,8 +133,7 @@ $state.sidebarOpen.value = false |
|
|
|
<!-- Title --> |
|
|
|
<!-- Title --> |
|
|
|
<a-table-column key="title" :title="$t('general.title')" data-index="title"> |
|
|
|
<a-table-column key="title" :title="$t('general.title')" data-index="title"> |
|
|
|
<template #default="{ text }"> |
|
|
|
<template #default="{ text }"> |
|
|
|
<div class="capitalize !w-[400px] overflow-hidden overflow-ellipsis whitespace-nowrap nc-project-row" |
|
|
|
<div class="capitalize !w-[400px] overflow-hidden overflow-ellipsis whitespace-nowrap nc-project-row" :title="text"> |
|
|
|
:title="text"> |
|
|
|
|
|
|
|
{{ text }} |
|
|
|
{{ text }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
@ -148,7 +147,7 @@ $state.sidebarOpen.value = false |
|
|
|
class="nc-action-btn" |
|
|
|
class="nc-action-btn" |
|
|
|
@click.stop="navigateTo(`/project/${text}`)" |
|
|
|
@click.stop="navigateTo(`/project/${text}`)" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<MdiDeleteOutline class="nc-action-btn" @click.stop="deleteProject(record)"/> |
|
|
|
<MdiDeleteOutline class="nc-action-btn" @click.stop="deleteProject(record)" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</a-table-column> |
|
|
|
</a-table-column> |
|
|
|