mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-30 02:26:31 +00:00
fix: Added Sidebar project and base node events
This commit is contained in:
@@ -397,6 +397,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
class="nc-sidebar-node project-title-node h-7.25 flex-grow rounded-md group flex items-center w-full pr-1"
|
||||
>
|
||||
<NcButton
|
||||
v-e="['c:base:expand']"
|
||||
type="text"
|
||||
size="xxsmall"
|
||||
class="nc-sidebar-node-btn nc-sidebar-expand ml-0.75 !xs:visible"
|
||||
@@ -420,6 +421,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<LazyGeneralEmojiPicker
|
||||
v-else
|
||||
:key="project.meta?.icon"
|
||||
v-e="['c:base:emojiSelect']"
|
||||
:emoji="project.meta?.icon"
|
||||
:readonly="true"
|
||||
size="small"
|
||||
@@ -456,6 +458,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
|
||||
<NcDropdown v-model:visible="isOptionsOpen" :trigger="['click']">
|
||||
<NcButton
|
||||
v-e="['c:base:options']"
|
||||
class="nc-sidebar-node-btn"
|
||||
:class="{ '!text-black !opacity-100': isOptionsOpen }"
|
||||
data-testid="nc-sidebar-context-menu"
|
||||
@@ -476,13 +479,19 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
@click="isOptionsOpen = false"
|
||||
>
|
||||
<template v-if="!isSharedBase">
|
||||
<NcMenuItem v-if="isUIAllowed('projectRename')" data-testid="nc-sidebar-project-rename" @click="enableEditMode">
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('projectRename')"
|
||||
v-e="['c:base:rename']"
|
||||
data-testid="nc-sidebar-project-rename"
|
||||
@click="enableEditMode"
|
||||
>
|
||||
<GeneralIcon icon="edit" class="group-hover:text-black" />
|
||||
{{ $t('general.rename') }}
|
||||
</NcMenuItem>
|
||||
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('projectDuplicate', { roles: [stringifyRolesObj(orgRoles), projectRole].join() })"
|
||||
v-e="['c:base:duplicate']"
|
||||
data-testid="nc-sidebar-project-duplicate"
|
||||
@click="duplicateProject(project)"
|
||||
>
|
||||
@@ -496,7 +505,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<NcMenuItem
|
||||
v-if="!isEeUI"
|
||||
key="copy"
|
||||
v-e="['c:navbar:user:copy-proj-info']"
|
||||
v-e="['c:base:copy-proj-info']"
|
||||
data-testid="nc-sidebar-project-copy-project-info"
|
||||
@click.stop="copyProjectInfo"
|
||||
>
|
||||
@@ -505,7 +514,12 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
</NcMenuItem>
|
||||
|
||||
<!-- ERD View -->
|
||||
<NcMenuItem key="erd" data-testid="nc-sidebar-project-relations" @click="openProjectErdView(project)">
|
||||
<NcMenuItem
|
||||
key="erd"
|
||||
v-e="['c:base:erd']"
|
||||
data-testid="nc-sidebar-project-relations"
|
||||
@click="openProjectErdView(project)"
|
||||
>
|
||||
<GeneralIcon icon="erd" />
|
||||
{{ $t('title.relations') }}
|
||||
</NcMenuItem>
|
||||
@@ -514,7 +528,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('apiDocs')"
|
||||
key="api"
|
||||
v-e="['e:api-docs']"
|
||||
v-e="['c:base:api-docs']"
|
||||
data-testid="nc-sidebar-project-rest-apis"
|
||||
@click.stop="openLink(`/api/v1/db/meta/projects/${project.id}/swagger`, appInfo.ncSiteUrl)"
|
||||
>
|
||||
@@ -533,7 +547,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('projectMiscSettings')"
|
||||
key="teamAndSettings"
|
||||
v-e="['c:navdraw:project-settings']"
|
||||
v-e="['c:base:settings']"
|
||||
data-testid="nc-sidebar-project-settings"
|
||||
class="nc-sidebar-project-project-settings"
|
||||
@click="toggleDialog(true, 'teamAndAuth', undefined, project.id)"
|
||||
@@ -543,6 +557,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
</NcMenuItem>
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('projectDelete', { roles: [stringifyRolesObj(orgRoles), projectRole].join() })"
|
||||
v-e="['c:base:delete']"
|
||||
data-testid="nc-sidebar-project-delete"
|
||||
class="!text-red-500 !hover:bg-red-50"
|
||||
@click="isProjectDeleteDialogVisible = true"
|
||||
@@ -556,6 +571,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
|
||||
<NcButton
|
||||
v-if="isUIAllowed('tableCreate', { roles: projectRole })"
|
||||
v-e="['c:base:create-table']"
|
||||
class="nc-sidebar-node-btn"
|
||||
size="xxsmall"
|
||||
type="text"
|
||||
@@ -590,6 +606,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<a-collapse
|
||||
v-else-if="base && base.enabled"
|
||||
v-model:activeKey="activeKey"
|
||||
v-e="['c:source:toggle-expand']"
|
||||
class="!mx-0 !px-0 nc-sidebar-base-node"
|
||||
:class="[{ hidden: searchActive && !!filterQuery }]"
|
||||
expand-icon-position="left"
|
||||
@@ -645,6 +662,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
@update:visible="isBasesOptionsOpen[base!.id!] = $event"
|
||||
>
|
||||
<NcButton
|
||||
v-e="['c:source:options']"
|
||||
class="nc-sidebar-node-btn"
|
||||
:class="{ '!text-black !opacity-100': isBasesOptionsOpen[base!.id!] }"
|
||||
type="text"
|
||||
@@ -663,7 +681,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
@click="isBasesOptionsOpen[base!.id!] = false"
|
||||
>
|
||||
<!-- ERD View -->
|
||||
<NcMenuItem key="erd" @click="openErdView(base)">
|
||||
<NcMenuItem key="erd" v-e="['c:source:erd']" @click="openErdView(base)">
|
||||
<GeneralIcon icon="erd" />
|
||||
{{ $t('title.relations') }}
|
||||
</NcMenuItem>
|
||||
@@ -675,6 +693,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
|
||||
<NcButton
|
||||
v-if="isUIAllowed('tableCreate', { roles: projectRole })"
|
||||
v-e="['c:source:add-table']"
|
||||
type="text"
|
||||
size="xxsmall"
|
||||
class="nc-sidebar-node-btn"
|
||||
@@ -708,6 +727,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
<template v-else-if="contextMenuTarget.type === 'base'"></template>
|
||||
|
||||
<template v-else-if="contextMenuTarget.type === 'table'">
|
||||
v-e="['c:table:rename']"
|
||||
<NcMenuItem v-if="isUIAllowed('tableRename')" @click="openRenameTableDialog(contextMenuTarget.value, true)">
|
||||
<div class="nc-project-option-item">
|
||||
<GeneralIcon icon="edit" class="text-gray-700" />
|
||||
@@ -717,6 +737,7 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('tableDuplicate') && (contextMenuBase?.is_meta || contextMenuBase?.is_local)"
|
||||
v-e="['c:table:duplicate']"
|
||||
@click="duplicateTable(contextMenuTarget.value)"
|
||||
>
|
||||
<div class="nc-project-option-item">
|
||||
@@ -725,7 +746,12 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
|
||||
</div>
|
||||
</NcMenuItem>
|
||||
<NcDivider />
|
||||
<NcMenuItem v-if="isUIAllowed('table-delete')" class="!hover:bg-red-50" @click="isTableDeleteDialogVisible = true">
|
||||
<NcMenuItem
|
||||
v-if="isUIAllowed('table-delete')"
|
||||
v-e="['c:table:delete']"
|
||||
class="!hover:bg-red-50"
|
||||
@click="isTableDeleteDialogVisible = true"
|
||||
>
|
||||
<div class="nc-project-option-item text-red-600">
|
||||
<GeneralIcon icon="delete" />
|
||||
{{ $t('general.delete') }}
|
||||
|
||||
Reference in New Issue
Block a user