diff --git a/dashboard/src/views/AppConfigureView.vue b/dashboard/src/views/AppConfigureView.vue index fa7259fc2..5b2c6a63b 100644 --- a/dashboard/src/views/AppConfigureView.vue +++ b/dashboard/src/views/AppConfigureView.vue @@ -161,13 +161,17 @@ onMounted(async () => { await refresh(); if (!app.value) return; + let hasServices = false; + if (app.value.manifest.addons.turn && app.value.manifest.addons.turn.optional) hasServices = true; + if (app.value.manifest.addons.redis && app.value.manifest.addons.redis.optional) hasServices = true; + views.value.push({ id: 'info', display: t('app.infoTabTitle'), }); views.value.push({ id: 'display', display: t('app.displayTabTitle'), }); if (app.value.accessLevel === 'admin') views.value.push({ id: 'location', display: t('app.locationTabTitle'), }); if (app.value.type === APP_TYPES.PROXIED) views.value.push({ id: 'proxy', display: 'Proxy', }); if (app.value.accessLevel === 'admin') views.value.push({ id: 'access', display: t('app.accessControlTabTitle'), }); if (app.value.type !== APP_TYPES.PROXIED) views.value.push({ id: 'resources', display: t('app.resourcesTabTitle'), }); - if (app.value.type !== APP_TYPES.PROXIED) views.value.push({ id: 'services', display: t('app.servicesTabTitle'), }); + if (app.value.type !== APP_TYPES.PROXIED && hasServices) views.value.push({ id: 'services', display: t('app.servicesTabTitle'), }); if (app.value.accessLevel === 'admin' && app.value.type !== APP_TYPES.PROXIED) views.value.push({ id: 'storage', display: t('app.storageTabTitle'), }); if (app.value.type !== APP_TYPES.PROXIED) views.value.push({ id: 'graphs', display: t('app.graphsTabTitle'), }); views.value.push({ id: 'security', display: t('app.securityTabTitle'), }); @@ -208,7 +212,7 @@ onBeforeUnmount(() => {
- +