|
|
|
@ -44,7 +44,7 @@ const route = useRoute()
|
|
|
|
|
|
|
|
|
|
const router = useRouter() |
|
|
|
|
|
|
|
|
|
const { appInfo, token, signOut, signedIn, user, currentVersion } = useGlobal() |
|
|
|
|
const { appInfo, token, signOut, signedIn, user, currentVersion, isMobileMode, setIsMobileMode } = useGlobal() |
|
|
|
|
|
|
|
|
|
const { project, isSharedBase, loadProjectMetaInfo, projectMetaInfo, saveTheme, loadProject, reset } = useProject() |
|
|
|
|
|
|
|
|
@ -352,7 +352,7 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
<!-- Swagger: Rest APIs --> |
|
|
|
|
<a-menu-item key="api"> |
|
|
|
|
<div |
|
|
|
|
v-if="isUIAllowed('apiDocs')" |
|
|
|
|
v-if="isUIAllowed('apiDocs') && !isMobileMode" |
|
|
|
|
v-e="['e:api-docs']" |
|
|
|
|
class="nc-project-menu-item group" |
|
|
|
|
@click.stop="openLink(`/api/v1/db/meta/projects/${route.params.projectId}/swagger`, appInfo.ncSiteUrl)" |
|
|
|
@ -364,7 +364,12 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
|
|
|
|
|
<!-- Copy Auth Token --> |
|
|
|
|
<a-menu-item key="copy"> |
|
|
|
|
<div v-e="['a:navbar:user:copy-auth-token']" class="nc-project-menu-item group" @click.stop="copyAuthToken"> |
|
|
|
|
<div |
|
|
|
|
v-if="!isMobileMode" |
|
|
|
|
v-e="['a:navbar:user:copy-auth-token']" |
|
|
|
|
class="nc-project-menu-item group" |
|
|
|
|
@click.stop="copyAuthToken" |
|
|
|
|
> |
|
|
|
|
<MdiScriptTextKeyOutline class="group-hover:text-accent" /> |
|
|
|
|
{{ $t('activity.account.authToken') }} |
|
|
|
|
</div> |
|
|
|
@ -375,7 +380,7 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
<!-- Team & Settings --> |
|
|
|
|
<a-menu-item key="teamAndSettings"> |
|
|
|
|
<div |
|
|
|
|
v-if="isUIAllowed('settings')" |
|
|
|
|
v-if="isUIAllowed('settings') && !isMobileMode" |
|
|
|
|
v-e="['c:navdraw:project-settings']" |
|
|
|
|
class="nc-project-menu-item group" |
|
|
|
|
@click="toggleDialog(true, 'teamAndAuth')" |
|
|
|
@ -385,6 +390,20 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
</div> |
|
|
|
|
</a-menu-item> |
|
|
|
|
|
|
|
|
|
<!-- Mobile Mode --> |
|
|
|
|
<a-menu-item key="mobile-mode"> |
|
|
|
|
<div |
|
|
|
|
v-e="['e:set-mobile-mode']" |
|
|
|
|
class="nc-project-menu-item group" |
|
|
|
|
@click.stop="setIsMobileMode(!isMobileMode)" |
|
|
|
|
> |
|
|
|
|
<MaterialSymbolsMobileFriendly class="group-hover:text-accent" /> |
|
|
|
|
Toggle Mobile Mode |
|
|
|
|
<!-- {{ $t('activity.account.swagger') }} --> |
|
|
|
|
<!-- TODO: use i18n here --> |
|
|
|
|
</div> |
|
|
|
|
</a-menu-item> |
|
|
|
|
|
|
|
|
|
<!-- Theme --> |
|
|
|
|
<template v-if="isUIAllowed('projectTheme')"> |
|
|
|
|
<a-sub-menu key="theme"> |
|
|
|
@ -462,7 +481,7 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
<a-menu-divider /> |
|
|
|
|
|
|
|
|
|
<!-- Preview As --> |
|
|
|
|
<a-sub-menu v-if="isUIAllowed('previewAs')" key="preview-as"> |
|
|
|
|
<a-sub-menu v-if="isUIAllowed('previewAs') && !isMobileMode" key="preview-as"> |
|
|
|
|
<template #title> |
|
|
|
|
<div v-e="['c:navdraw:preview-as']" class="nc-project-menu-item group"> |
|
|
|
|
<MdiFileEyeOutline class="group-hover:text-accent" /> |
|
|
|
@ -589,7 +608,7 @@ useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
|
|
|
|
|
|
|
|
|
|
.nc-left-sidebar { |
|
|
|
|
.nc-sidebar-left-toggle-icon { |
|
|
|
|
@apply opacity-0 transition-opactity duration-200 transition-color text-white/80 hover:text-white/100; |
|
|
|
|
@apply opacity-0 transition-opactity duration-200 transition-color text-white/80 hover: text-white/100; |
|
|
|
|
|
|
|
|
|
.nc-left-sidebar { |
|
|
|
|
@apply !border-r-0; |
|
|
|
|