diff --git a/web/src/lib/components/checkers/CheckerConfigPage.svelte b/web/src/lib/components/checkers/CheckerConfigPage.svelte index 77407013..1f4796d8 100644 --- a/web/src/lib/components/checkers/CheckerConfigPage.svelte +++ b/web/src/lib/components/checkers/CheckerConfigPage.svelte @@ -50,9 +50,10 @@ domainName: string; editableGroups: (status: any) => { label: string; opts: any[] }[]; readOnlyGroups: (status: any) => { key: string; label: string; opts: any[] }[]; + showSchedule?: boolean; } - let { scope, checksBase, checkerId, domainName, editableGroups, readOnlyGroups }: Props = $props(); + let { scope, checksBase, checkerId, domainName, editableGroups, readOnlyGroups, showSchedule = true }: Props = $props(); let checkStatusPromise = $derived(getCheckStatus(checkerId)); let checkOptionsPromise = $derived(getScopedCheckOptions(scope, checkerId)); @@ -145,6 +146,7 @@ {@const editable = editableGroups(status)} {@const readOnly = readOnlyGroups(status)} + {#if showSchedule} @@ -159,6 +161,7 @@ /> {/if} + {/if} @@ -70,7 +72,7 @@
- + {#await checkersPromise} @@ -159,18 +161,16 @@ {@const configuredIds = getConfiguredCheckerIds(checkerStatuses)} {@const unconfigured = getUnconfiguredCheckers(configuredIds)} {#if unconfigured.length > 0} - - - {$t("checkers.other-checkers.title")} - - -

{$t("checkers.other-checkers.description")}

- -
-
+

{$t("checkers.other-checkers.title")}

+

{$t("checkers.other-checkers.description")}

+ + {/if} + + {@const children = getChildrenCheckers(configuredIds)} + {#if children.length > 0} +

{$t("checkers.children-checkers.title")}

+

{$t("checkers.children-checkers.description")}

+ {/if} {:catch error} diff --git a/web/src/lib/locales/en.json b/web/src/lib/locales/en.json index bd7de70f..722fbc8e 100644 --- a/web/src/lib/locales/en.json +++ b/web/src/lib/locales/en.json @@ -672,6 +672,10 @@ "no-checkers": "No other checkers available.", "configure": "Configure" }, + "children-checkers": { + "title": "Zone & service checkers", + "description": "These checkers apply to zones or individual services. You can configure them here, but results will only appear when running checks at the appropriate scope." + }, "schedule": { "title": "Schedule", "card-title": "Automatic scheduling", diff --git a/web/src/routes/domains/[dn]/checks/[checkerId]/+page.svelte b/web/src/routes/domains/[dn]/checks/[checkerId]/+page.svelte index a1e75d68..08487a0b 100644 --- a/web/src/routes/domains/[dn]/checks/[checkerId]/+page.svelte +++ b/web/src/routes/domains/[dn]/checks/[checkerId]/+page.svelte @@ -27,11 +27,13 @@ import { t } from "$lib/translations"; import type { Domain } from "$lib/model/domain"; import { domainLink } from "$lib/stores/domains"; + import { checkers } from "$lib/stores/checkers"; import CheckerConfigPage from "$lib/components/checkers/CheckerConfigPage.svelte"; let domain: Domain = $derived(page.data.domain); let checkerId = $derived(page.params.checkerId!); let checksBase = $derived(`/domains/${domainLink(domain.id)}/checks`); + let isDomainChecker = $derived(!!$checkers?.[checkerId]?.availability?.applyToDomain); [ { label: $t("checkers.option-groups.domain-settings"),