diff --git a/frontend/src/lib/components/InstanceBanner.svelte b/frontend/src/lib/components/InstanceBanner.svelte index 6325861b63..9e47f9399a 100644 --- a/frontend/src/lib/components/InstanceBanner.svelte +++ b/frontend/src/lib/components/InstanceBanner.svelte @@ -10,10 +10,10 @@ } from './instanceBanner' import { instanceSettingsSaved } from './instanceSettings' - // Mounted only on the managed cloud (see the render site in the logged layout), so the - // poll costs nothing anywhere else. An announcement is only worth broadcasting while it - // is current, hence polling rather than waiting for the next full page load: a session - // left open all day is exactly the one that needs to hear about the maintenance window. + // Mounted only on EE (see the render site in the logged layout), so the poll costs + // nothing on CE. An announcement is only worth broadcasting while it is current, hence + // polling rather than waiting for the next full page load: a session left open all day + // is exactly the one that needs to hear about the maintenance window. const POLL_MS = 60_000 let banner = $state(undefined) diff --git a/frontend/src/lib/components/InstanceSetting.svelte b/frontend/src/lib/components/InstanceSetting.svelte index 1e67652f60..aedd9cdf6b 100644 --- a/frontend/src/lib/components/InstanceSetting.svelte +++ b/frontend/src/lib/components/InstanceSetting.svelte @@ -871,7 +871,7 @@ {:else if setting.fieldType == 'ws_connectivity'} {:else if setting.fieldType == 'instance_banner'} - + {/if} {#if hasError} diff --git a/frontend/src/lib/components/instanceSettings.ts b/frontend/src/lib/components/instanceSettings.ts index 7335b33848..1fe45931a2 100644 --- a/frontend/src/lib/components/instanceSettings.ts +++ b/frontend/src/lib/components/instanceSettings.ts @@ -240,19 +240,6 @@ export const settings: Record = { placeholder: 'only for EE', storage: 'setting' }, - { - label: 'Announcement banner', - description: - 'Message shown above every page of the instance, for maintenance windows and incidents.', - key: 'instance_banner', - fieldType: 'instance_banner', - storage: 'setting', - // The banner only renders on the managed cloud, so only offer it there. - cloudonly: true, - hideInQuickSetup: true, - // Gates Save. The card renders the specific message itself, so no `error` here. - isValid: (value: any) => instanceBannerFormError(value) == undefined - }, { label: 'Non-prod instance', description: @@ -334,6 +321,19 @@ export const settings: Record = { fieldType: 'boolean', storage: 'setting', hideInQuickSetup: true + }, + { + label: 'Announcement banner', + description: + 'Message shown above every page of the instance, for maintenance windows and incidents.', + key: 'instance_banner', + fieldType: 'instance_banner', + storage: 'setting', + // The banner only renders on EE, so the card is disabled without a license. + ee_only: '', + hideInQuickSetup: true, + // Gates Save. The card renders the specific message itself, so no `error` here. + isValid: (value: any) => instanceBannerFormError(value) == undefined } ], Jobs: [ diff --git a/frontend/src/routes/(root)/(logged)/+layout.svelte b/frontend/src/routes/(root)/(logged)/+layout.svelte index 58d852a2d5..19cf5bb5a2 100644 --- a/frontend/src/routes/(root)/(logged)/+layout.svelte +++ b/frontend/src/routes/(root)/(logged)/+layout.svelte @@ -1414,11 +1414,11 @@ {/if}
- {#if isCloudHosted() && !menuHidden} - + {#if $enterpriseLicense && !menuHidden} + {/if} {#if $userStore?.is_service_account}