Skip to main content

CnDependencyMissing

Full-page screen shown when one or more apps declared in manifest.dependencies are not installed or not enabled. CnAppRoot mounts this in its dependency-check phase — between loading and shell — based on per-dependency results from useAppStatus.

Apps can override CnAppRoot's #dependency-missing slot to customise the screen (or skip CnAppRoot entirely).

Usage

As CnAppRoot's default dependency-missing screen (typical)

<CnAppRoot :manifest="manifest" app-id="decidesk">
<!-- nothing else needed; CnDependencyMissing renders automatically -->
</CnAppRoot>

Customised via props

<CnAppRoot ...>
<template #dependency-missing="{ dependencies }">
<CnDependencyMissing
:dependencies="dependencies"
app-name="Decidesk"
heading="OpenRegister is required"
intro="Decidesk needs OpenRegister to manage decisions."
install-label="Install"
enable-label="Enable" />
</template>
</CnAppRoot>

Dependency shape

dependencies is an array of objects with this shape:

FieldTypeDescription
idstringRequired. Nextcloud app id (matches entries in manifest.dependencies)
namestringOptional human-readable label; falls back to id when omitted
installUrlstringOptional override URL. Defaults to /index.php/settings/apps
enabledbooleanWhen false, the link reads "Enable" (installed but disabled). Otherwise it reads "Install"

Props

PropTypeDefaultDescription
dependenciesArray— (required)Array of dependency objects (see shape above)
appNameString''Optional name of the host app. Currently informational; reserved for templated headings
headingString'Required apps are missing'Top heading text
introString'This app needs the following Nextcloud apps to be installed and enabled.'Introductory paragraph
installLabelString'Install'Label for the install link
enableLabelString'Enable'Label for the enable link (used when dep.enabled === false)

CSS

Class prefix: cn-dependency-missing__*. Uses Nextcloud CSS variables only (--color-main-background, --color-main-text, --color-text-maxcontrast, --color-border, --color-primary-element, --default-grid-baseline).

  • CnAppRoot — Mounts this component during the dependency-check phase.
  • useAppStatus — Detects per-app installed/enabled status.