diff --git a/dashboard/src/Index.vue b/dashboard/src/Index.vue
index 1aa7b5d2b..47069dc23 100644
--- a/dashboard/src/Index.vue
+++ b/dashboard/src/Index.vue
@@ -43,35 +43,35 @@ import GroupsView from './views/GroupsView.vue';
import VolumesView from './views/VolumesView.vue';
const VIEWS = {
- APP: 'app',
- APPEARANCE: 'appearance',
- APPS: 'apps',
- APPSTORE: 'appstore',
- BACKUP_SITES: 'backup-sites',
- BACKUP_LIST: 'backup-list',
- BACKUP_APP_ARCHIVE: 'backup-app-archive',
- CLOUDRON_ACCOUNT: 'cloudron-account',
- DOMAINS: 'domains',
- EMAIL_DOMAIN: 'email-domain',
- EMAIL_DOMAINS: 'email-domains',
- EMAIL_MAILBOXES: 'email-mailboxes',
- EMAIL_MAILINGLISTS: 'email-mailinglists',
- EMAIL_SETTINGS: 'email-settings',
- EMAIL_EVENTLOG: 'email-eventlog',
- SYSTEM_INFO: 'system-info',
- NETWORK: 'network',
- PROFILE: 'profile',
- SERVICES: 'services',
- SYSTEM_LOCALE: 'system-locale',
- SYSTEM_DOCKER: 'system-docker',
- SYSTEM_EVENTLOG: 'system-eventlog',
- SYSTEM_UPDATE: 'system-update',
- USER_DIRECTORY_SETTINGS: 'user-directory-settings',
- USER_DIRECTORY_LDAP_SERVER: 'user-directory-ldap-server',
- USER_DIRECTORY_OPENID_PROVIDER: 'user-directory-openid-provider',
- USERS: 'users',
- GROUPS: 'users-groups',
- VOLUMES: 'volumes',
+ APP: '#/app', // this is a prefix
+ APPEARANCE: '#/appearance',
+ APPS: '#/apps',
+ APPSTORE: '#/appstore', // this is a prefix
+ BACKUP_SITES: '#/backup-sites',
+ BACKUP_LIST: '#/backup-list',
+ BACKUP_APP_ARCHIVE: '#/backup-app-archive',
+ CLOUDRON_ACCOUNT: '#/cloudron-account',
+ DOMAINS: '#/domains',
+ EMAIL_DOMAIN: '#/email-domain',
+ EMAIL_DOMAINS: '#/email-domains',
+ EMAIL_MAILBOXES: '#/email-mailboxes',
+ EMAIL_MAILINGLISTS: '#/email-mailinglists',
+ EMAIL_SETTINGS: '#/email-settings',
+ EMAIL_EVENTLOG: '#/email-eventlog',
+ SYSTEM_INFO: '#/system-info',
+ NETWORK: '#/network',
+ PROFILE: '#/profile',
+ SERVICES: '#/services',
+ SYSTEM_LOCALE: '#/system-locale',
+ SYSTEM_DOCKER: '#/system-docker',
+ SYSTEM_EVENTLOG: '#/system-eventlog',
+ SYSTEM_UPDATE: '#/system-update',
+ USER_DIRECTORY_SETTINGS: '#/user-directory-settings',
+ USER_DIRECTORY_LDAP_SERVER: '#/user-directory-ldap-server',
+ USER_DIRECTORY_OPENID_PROVIDER: '#/user-directory-openid-provider',
+ USERS: '#/users',
+ GROUPS: '#/users-groups',
+ VOLUMES: '#/volumes',
};
const offlineOverlay = useTemplateRef('offlineOverlay');
@@ -122,7 +122,6 @@ function onSidebarClose() {
sidebar.value.close();
}
-const activeSidebarItem = ref('');
const activeSidebarGroups = ref({
'backup': false,
'email': false,
@@ -135,15 +134,7 @@ function onToggleGroup(group) {
}
function onHashChange() {
- const v = location.hash.slice(2);
-
- activeSidebarItem.value = v;
-
- if (activeSidebarItem.value.indexOf('backup') === 0) activeSidebarGroups.value['backup'] = true;
- else if (activeSidebarItem.value.indexOf('email') === 0) activeSidebarGroups.value['email'] = true;
- else if (activeSidebarItem.value.indexOf('system') === 0) activeSidebarGroups.value['system'] = true;
- else if (activeSidebarItem.value.indexOf('user-directory') === 0) activeSidebarGroups.value['user-directory'] = true;
- else if (activeSidebarItem.value.indexOf('users') === 0) activeSidebarGroups.value['users'] = true;
+ const v = location.hash;
if (v === VIEWS.APPS) {
view.value = VIEWS.APPS;
@@ -179,7 +170,7 @@ function onHashChange() {
view.value = VIEWS.SYSTEM_INFO;
} else if (v === VIEWS.NETWORK && profile.value.isAtLeastAdmin) {
view.value = VIEWS.NETWORK;
- } else if (v.indexOf(VIEWS.PROFILE) === 0) {
+ } else if (v === VIEWS.PROFILE) {
view.value = VIEWS.PROFILE;
} else if (v === VIEWS.SERVICES && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SERVICES;
@@ -187,7 +178,7 @@ function onHashChange() {
view.value = VIEWS.SYSTEM_LOCALE;
} else if (v === VIEWS.SYSTEM_DOCKER && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SYSTEM_DOCKER;
- } else if (v.indexOf(VIEWS.SYSTEM_EVENTLOG) === 0 && profile.value.isAtLeastAdmin) {
+ } else if (v === VIEWS.SYSTEM_EVENTLOG && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SYSTEM_EVENTLOG;
} else if (v === VIEWS.SYSTEM_UPDATE && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SYSTEM_UPDATE;
@@ -288,70 +279,70 @@ onMounted(async () => {
{{ config.cloudronName || 'Cloudron' }}