MishkaCmsCore.Dashboard.Widgets.CmsStatus (Mishka CMS Core v0.0.1)

Copy Markdown View Source

Dashboard widget (a dashboard:widgets plugin): the operational pulse of the CMS. Reports the public site's online state (cms.offline, read by Settings.offline_by/1: a tenant sees whether its site is offline by its own switch or by the Global one, a master sees the Global switch and how many sites are offline by their own), the week's compile throughput as a weekday mini bar chart with a week-over-week trend (Oban.Job insert history), how many compile jobs are pending, how many active sites are missing a CSS/JS bundle (AssetsState), and the runtime-job health split (running/retrying/failed) — subsuming the standalone runtime-health widget. A master watches every site; a tenant admin only their own site's jobs and bundle. Ships default_hidden — opt-in via the widget library.

A bar's height is a percentage of the week's busiest day, computed per render, so it cannot be a Tailwind utility — rules are generated from SOURCE TEXT, and a class assembled around a value that exists only at render time gets no rule at all, leaving the bar with no height. The height rides an inline style attribute, which is why the policy in MishkaCmsCore.Runtime.Plugs.SecurityHeaders keeps style-src-attr permitted. A bar's COLOUR is a different matter: it is one of three whole literals in bar_color/1 — see MishkaCmsWeb.InterpolatedClassTest.

Summary

Functions

Returns a specification to start this module under a supervisor.

Callback implementation for MishkaInstaller.Event.Hook.enable/0.

Callback implementation for MishkaInstaller.Event.Hook.get/0.

Optional. See MishkaInstaller.Event.Hook.health_check/0. Override to report health.

Loads this widget's data off the dashboard render (in a Task), scoped to the viewer.

Callback implementation for MishkaInstaller.Event.Hook.register/0.

Callback implementation for MishkaInstaller.Event.Hook.restart/0.

Callback implementation for MishkaInstaller.Event.Hook.start/0.

Callback implementation for MishkaInstaller.Event.Hook.stop/0.

This widget's descriptor.

Types

error_return()

@type error_return() ::
  {:error, [%{action: atom(), field: atom(), message: String.t()}]}

okey_return()

@type okey_return() :: {:ok, struct() | map() | module() | [any()]}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

config()

@spec config() :: keyword()

config(key)

@spec config(atom()) :: any()

enable()

@spec enable() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.enable/0.

get()

@spec get() :: keyword()

Callback implementation for MishkaInstaller.Event.Hook.get/0.

health_check()

@spec health_check() :: :ok | {:degraded, term()} | {:error, term()}

Optional. See MishkaInstaller.Event.Hook.health_check/0. Override to report health.

load(user)

Loads this widget's data off the dashboard render (in a Task), scoped to the viewer.

on_dependency_error(error)

@spec on_dependency_error(term()) :: term()

Optional. See MishkaInstaller.Event.Hook.on_dependency_error/1. Override to react.

register()

@spec register() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.register/0.

render(assigns)

restart()

@spec restart() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.restart/0.

start()

@spec start() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.start/0.

start_link(args \\ [])

stop()

@spec stop() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.stop/0.

unregister()

@spec unregister() :: okey_return() | error_return()

Callback implementation for MishkaInstaller.Event.Hook.unregister/0.

widget()

@spec widget() :: MishkaCmsCore.Dashboard.Widget.t()

This widget's descriptor.