Make Groups a separate view
This commit is contained in:
+22
-2
@@ -39,6 +39,7 @@ import UserDirectorySettingsView from './views/UserDirectorySettingsView.vue';
|
||||
import UserDirectoryLdapServerView from './views/UserDirectoryLdapServerView.vue';
|
||||
import UserDirectoryOpenIdProviderView from './views/UserDirectoryOpenIdProviderView.vue';
|
||||
import UsersView from './views/UsersView.vue';
|
||||
import GroupsView from './views/GroupsView.vue';
|
||||
import VolumesView from './views/VolumesView.vue';
|
||||
|
||||
const VIEWS = {
|
||||
@@ -69,6 +70,7 @@ const VIEWS = {
|
||||
USER_DIRECTORY_LDAP_SERVER: 'user-directory-ldap-server',
|
||||
USER_DIRECTORY_OPENID_PROVIDER: 'user-directory-openid-provider',
|
||||
USERS: 'users',
|
||||
GROUPS: 'users-groups',
|
||||
VOLUMES: 'volumes',
|
||||
};
|
||||
|
||||
@@ -135,6 +137,7 @@ function onHashChange() {
|
||||
else if (activeSidebarItem.value.indexOf('email') === 0) activeSidebarGroup.value = 'email';
|
||||
else if (activeSidebarItem.value.indexOf('system') === 0) activeSidebarGroup.value = 'system';
|
||||
else if (activeSidebarItem.value.indexOf('user-directory') === 0) activeSidebarGroup.value = 'user-directory';
|
||||
else if (activeSidebarItem.value.indexOf('users') === 0) activeSidebarGroup.value = 'users';
|
||||
else activeSidebarGroup.value = '';
|
||||
|
||||
if (v === VIEWS.APPS) {
|
||||
@@ -191,6 +194,8 @@ function onHashChange() {
|
||||
view.value = VIEWS.USER_DIRECTORY_OPENID_PROVIDER;
|
||||
} else if (v === VIEWS.USERS && profile.value.isAtLeastUserManager) {
|
||||
view.value = VIEWS.USERS;
|
||||
} else if (v === VIEWS.GROUPS && profile.value.isAtLeastUserManager) {
|
||||
view.value = VIEWS.GROUPS;
|
||||
} else if (v === VIEWS.VOLUMES && profile.value.isAtLeastAdmin) {
|
||||
view.value = VIEWS.VOLUMES;
|
||||
} else {
|
||||
@@ -300,8 +305,11 @@ onMounted(async () => {
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'email-settings' }" href="#/email-settings" @click="onSidebarClose()"><i class="fa fa-fw fa-cog"></i> {{ $t('emails.settings.title') }}</a>
|
||||
</div>
|
||||
</Transition>
|
||||
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'network' }" v-show="profile.isAtLeastAdmin" href="#/network" @click="onSidebarClose()"><i class="fas fa-network-wired fa-fw"></i> {{ $t('network.title') }}</a>
|
||||
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'services' }" v-show="profile.isAtLeastAdmin" href="#/services" @click="onSidebarClose()"><i class="fa fa-cogs fa-fw"></i> {{ $t('services.title') }}</a>
|
||||
|
||||
<div class="sidebar-item" v-show="profile.isAtLeastAdmin" @click="onToggleGroup('system')"><i class="fa fa-wrench fa-fw"></i> {{ $t('settings.title') }} <i class="collapse fa-solid fa-angle-right" :class="{ expanded: activeSidebarGroup === 'system' }" style="margin-left: 6px;"></i></div>
|
||||
<Transition name="sidebar-item-group-animation">
|
||||
<div class="sidebar-item-group" v-if="activeSidebarGroup === 'system'">
|
||||
@@ -311,8 +319,16 @@ onMounted(async () => {
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'system-update' }" href="#/system-update" @click="onSidebarClose()"><i class="fa fa-fw fa-square-up-right"></i> {{ $t('settings.updates.title') }}</a>
|
||||
</div>
|
||||
</Transition>
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'users' }" v-show="profile.isAtLeastUserManager" href="#/users" @click="onSidebarClose()"><i class="fa fa-users fa-fw"></i> {{ $t('main.navbar.users') }}</a>
|
||||
<div class="sidebar-item" v-show="profile.isAtLeastAdmin" @click="onToggleGroup('user-directory')"><i class="fa fa-users-gear fa-fw"></i> {{ $t('users.title') }} <i class="collapse fa-solid fa-angle-right" :class="{ expanded: activeSidebarGroup === 'user-directory' }" style="margin-left: 6px;"></i></div>
|
||||
|
||||
<div class="sidebar-item" v-show="profile.isAtLeastAdmin" @click="onToggleGroup('users')"><i class="fa fa-archive fa-fw"></i> {{ $t('users.title') }} <i class="collapse fa-solid fa-angle-right" :class="{ expanded: activeSidebarGroup === 'users' }" style="margin-left: 6px;"></i></div>
|
||||
<Transition name="sidebar-item-group-animation">
|
||||
<div class="sidebar-item-group" v-if="activeSidebarGroup === 'users'">
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'users' }" v-show="profile.isAtLeastUserManager" href="#/users" @click="onSidebarClose()"><i class="fa fa-user fa-fw"></i> {{ $t('main.navbar.users') }}</a>
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'users-groups' }" v-show="profile.isAtLeastUserManager" href="#/users-groups" @click="onSidebarClose()"><i class="fa fa-users fa-fw"></i> {{ $t('main.navbar.groups') }}</a>
|
||||
</div>
|
||||
</Transition>
|
||||
|
||||
<div class="sidebar-item" v-show="profile.isAtLeastAdmin" @click="onToggleGroup('user-directory')"><i class="fa fa-users-gear fa-fw"></i> {{ $t('userDirectory.title') }} <i class="collapse fa-solid fa-angle-right" :class="{ expanded: activeSidebarGroup === 'user-directory' }" style="margin-left: 6px;"></i></div>
|
||||
<Transition name="sidebar-item-group-animation">
|
||||
<div class="sidebar-item-group" v-if="activeSidebarGroup === 'user-directory'">
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'user-directory-ldap-server' }" href="#/user-directory-ldap-server" @click="onSidebarClose()"><i class="fa fa-fw fa-users-rays"></i> {{ $t('users.exposedLdap.title') }}</a>
|
||||
@@ -320,8 +336,11 @@ onMounted(async () => {
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'user-directory-settings' }" href="#/user-directory-settings" @click="onSidebarClose()"><i class="fa fa-fw fa-cog"></i> {{ $t('userdirectory.settings.title') }}</a>
|
||||
</div>
|
||||
</Transition>
|
||||
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'volumes' }" v-show="profile.isAtLeastAdmin" href="#/volumes" @click="onSidebarClose()"><i class="fa fa-hdd fa-fw"></i> {{ $t('volumes.title') }}</a>
|
||||
|
||||
<hr/>
|
||||
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'metrics' }" v-show="profile.isAtLeastAdmin" href="#/metrics" @click="onSidebarClose()"><i class="fa fa-chart-area fa-fw"></i> {{ $t('system.title') }}</a>
|
||||
<a class="sidebar-item" :class="{ active: activeSidebarItem === 'cloudron-account' }" v-show="profile.isAtLeastOwner" href="#/cloudron-account" @click="onSidebarClose()"><i class="fa fa-crown fa-fw"></i> {{ $t('settings.appstoreAccount.title') }}</a>
|
||||
</div>
|
||||
@@ -358,6 +377,7 @@ onMounted(async () => {
|
||||
<UserDirectoryLdapServerView v-else-if="view === VIEWS.USER_DIRECTORY_LDAP_SERVER" />
|
||||
<UserDirectoryOpenIdProviderView v-else-if="view === VIEWS.USER_DIRECTORY_OPENID_PROVIDER" />
|
||||
<UsersView v-else-if="view === VIEWS.USERS" />
|
||||
<GroupsView v-else-if="view === VIEWS.GROUPS" />
|
||||
<VolumesView v-else-if="view === VIEWS.VOLUMES" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user