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' }}