|
|
|
<template>
|
|
|
|
<div>
|
|
|
|
<slot :click="() => settingsModal = true">
|
|
|
|
<v-icon class="mx-2" @click="settingsModal=true">
|
|
|
|
mdi-cog-outline
|
|
|
|
</v-icon>
|
|
|
|
</slot>
|
|
|
|
<v-dialog
|
|
|
|
v-model="settingsModal"
|
|
|
|
width="90%"
|
|
|
|
overlay-opacity=".9"
|
|
|
|
transition="dialog-bottom-transition"
|
|
|
|
>
|
|
|
|
<v-card
|
|
|
|
width="100%"
|
|
|
|
min-height="350px"
|
|
|
|
>
|
|
|
|
<div
|
|
|
|
class="d-flex"
|
|
|
|
>
|
|
|
|
<v-navigation-drawer
|
|
|
|
v-if="settingsModal"
|
|
|
|
left
|
|
|
|
permanent
|
|
|
|
height="90vh"
|
|
|
|
class="backgroundColor1"
|
|
|
|
>
|
|
|
|
<div class=" advance-menu ">
|
|
|
|
<v-list
|
|
|
|
v-if="_isUIAllowed('treeViewProjectSettings')"
|
|
|
|
dense
|
|
|
|
:class="{ 'advanced-border': overShieldIcon }"
|
|
|
|
>
|
|
|
|
<v-list-item>
|
|
|
|
<v-list-item-title>
|
|
|
|
<!-- Settings -->
|
|
|
|
<span class="body-2 font-weight-medium grey--text text-uppercase caption">{{ $t('activity.settings') }}</span>
|
|
|
|
</v-list-item-title>
|
|
|
|
</v-list-item>
|
|
|
|
<v-list-item-group v-model="activePage" color="x-active" mandatory>
|
|
|
|
<v-tooltip bottom>
|
|
|
|
<template #activator="{ on }">
|
|
|
|
<v-list-item
|
|
|
|
v-t="['c:settings:team-auth']"
|
|
|
|
value="roles"
|
|
|
|
dense
|
|
|
|
class="body-2 nc-settings-teamauth"
|
|
|
|
v-on="on"
|
|
|
|
>
|
|
|
|
<v-list-item-icon>
|
|
|
|
<v-icon small>
|
|
|
|
mdi-account-group
|
|
|
|
</v-icon>
|
|
|
|
</v-list-item-icon>
|
|
|
|
<!-- Team & Auth -->
|
|
|
|
<v-list-item-title>
|
|
|
|
<span :class="{'font-weight-medium': activePage === 'roles', 'font-weight-regular':activePage !=='roles'}">{{
|
|
|
|
$t('title.teamAndAuth')
|
|
|
|
}}</span>
|
|
|
|
</v-list-item-title>
|
|
|
|
</v-list-item>
|
|
|
|
</template>
|
|
|
|
<!-- Roles & Users Management -->
|
|
|
|
{{ $t('title.rolesUserMgmt') }}
|
|
|
|
</v-tooltip>
|
|
|
|
|
|
|
|
<template v-if="_isUIAllowed('treeViewProjectSettings')">
|
|
|
|
<v-tooltip bottom>
|
|
|
|
<template #activator="{ on }">
|
|
|
|
<v-list-item
|
|
|
|
v-t="['c:settings:appstore']"
|
|
|
|
dense
|
|
|
|
class="body-2 nc-settings-appstore"
|
|
|
|
value="appStore"
|
|
|
|
v-on="on"
|
|
|
|
>
|
|
|
|
<v-list-item-icon>
|
|
|
|
<v-icon small>
|
|
|
|
mdi-storefront-outline
|
|
|
|
</v-icon>
|
|
|
|
</v-list-item-icon>
|
|
|
|
<!-- App Store -->
|
|
|
|
<v-list-item-title>
|
|
|
|
<span :class="{'font-weight-medium': activePage === 'appStore', 'font-weight-regular':activePage !=='appStore'}">{{
|
|
|
|
$t('title.appStore')
|
|
|
|
}}</span>
|
|
|
|
</v-list-item-title>
|
|
|
|
</v-list-item>
|
|
|
|
</template>
|
|
|
|
<!-- App Store -->
|
|
|
|
{{ $t('title.appStore') }}
|
|
|
|
</v-tooltip>
|
|
|
|
|
|
|
|
<v-tooltip bottom>
|
|
|
|
<template #activator="{ on }">
|
|
|
|
<v-list-item
|
|
|
|
v-t="['c:settings:proj-metadata']"
|
|
|
|
dense
|
|
|
|
class="body-2 nc-settings-projmeta"
|
|
|
|
value="disableOrEnableModel"
|
|
|
|
v-on="on"
|
|
|
|
>
|
|
|
|
<v-list-item-icon>
|
|
|
|
<v-icon small>
|
|
|
|
mdi-table-multiple
|
|
|
|
</v-icon>
|
|
|
|
</v-list-item-icon>
|
|
|
|
<!-- Project Metadata -->
|
|
|
|
<v-list-item-title>
|
|
|
|
<span :class="{'font-weight-medium': activePage === 'disableOrEnableModel', 'font-weight-regular':activePage !=='disableOrEnableModel'}">{{
|
|
|
|
$t('title.projMeta')
|
|
|
|
}}</span>
|
|
|
|
</v-list-item-title>
|
|
|
|
</v-list-item>
|
|
|
|
</template>
|
|
|
|
<!-- Meta Management -->
|
|
|
|
{{ $t('title.metaMgmt') }}
|
|
|
|
</v-tooltip>
|
|
|
|
|
|
|
|
<v-tooltip bottom>
|
|
|
|
<template #activator="{ on }">
|
|
|
|
<v-list-item
|
|
|
|
v-t="['c:settings:audit']"
|
|
|
|
dense
|
|
|
|
class="body-2 nc-settings-audit"
|
|
|
|
value="audit"
|
|
|
|
v-on="on"
|
|
|
|
>
|
|
|
|
<v-list-item-icon>
|
|
|
|
<v-icon small>
|
|
|
|
mdi-notebook-outline
|
|
|
|
</v-icon>
|
|
|
|
</v-list-item-icon>
|
|
|
|
<!-- Project Metadata -->
|
|
|
|
<v-list-item-title>
|
|
|
|
<span :class="{'font-weight-medium': activePage === 'audit', 'font-weight-regular':activePage !=='audit' }">{{
|
|
|
|
$t('title.audit')
|
|
|
|
}}</span>
|
|
|
|
</v-list-item-title>
|
|
|
|
</v-list-item>
|
|
|
|
</template>
|
|
|
|
<!-- Meta Management -->
|
|
|
|
{{ $t('title.auditLogs') }}
|
|
|
|
</v-tooltip>
|
|
|
|
</template>
|
|
|
|
</v-list-item-group>
|
|
|
|
</v-list>
|
|
|
|
</div>
|
|
|
|
</v-navigation-drawer>
|
|
|
|
<v-container class="flex-grow-1 py-9 px-15" style="max-height: 90vh; overflow-y: auto">
|
|
|
|
<div v-if="activePage === 'audit'" style="height:100%">
|
|
|
|
<audit-tab />
|
|
|
|
</div>
|
|
|
|
<div
|
|
|
|
v-else-if="activePage === 'meta'"
|
|
|
|
>
|
|
|
|
<xc-meta />
|
|
|
|
</div>
|
|
|
|
<div
|
|
|
|
v-else-if="activePage === 'roles'"
|
|
|
|
>
|
|
|
|
<auth-tab
|
|
|
|
v-if="_isUIAllowed('team-auth')"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
<div
|
|
|
|
v-else-if="activePage === 'disableOrEnableModel'"
|
|
|
|
>
|
|
|
|
<disable-or-enable-models
|
|
|
|
v-if="_isUIAllowed('project-metadata')"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
<app-store v-else />
|
|
|
|
</v-container>
|
|
|
|
</div>
|
|
|
|
</v-card>
|
|
|
|
</v-dialog>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import AppStore from '~/components/project/AppStore'
|
|
|
|
import DisableOrEnableModels from '~/components/project/projectMetadata/DisableOrEnableModels'
|
|
|
|
import AuthTab from '~/components/AuthTab'
|
|
|
|
import XcMeta from '~/components/project/settings/XcMeta'
|
|
|
|
import AuditTab from '~/components/project/AuditTab'
|
|
|
|
import ImportFromAirtable from '~/components/import/ImportFromAirtable'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'SettingsModal',
|
|
|
|
components: { ImportFromAirtable, AuditTab, XcMeta, AuthTab, DisableOrEnableModels, AppStore },
|
|
|
|
data: () => ({
|
|
|
|
settingsModal: false,
|
|
|
|
activePage: 'role',
|
|
|
|
improtFromAirtableModal: false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
::v-deep{
|
|
|
|
.v-list-item__icon{
|
|
|
|
margin-right: 0 !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|