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

Copy Markdown View Source

Dashboard widget (a dashboard:widgets plugin): a master sees the fleet — the site total with an active/inactive split, a per-mode breakdown (API Only / Phoenix Only / Hybrid) and the average compiled bundle size (gzip CSS + JS); a tenant admin sees the same identity card scoped to their own site. Site counts come from MishkaCmsCore.Runtime.States.SiteState (ETS) and bundle sizes from MishkaCmsCore.Runtime.States.AssetsState (ETS).

See MishkaCmsCore.Dashboard.Widget for the shared card primitives this composes.

A mode dot's colour is one of three, so dot_class/1 writes each out whole and it can be a class. A bundle bar's width cannot: pct/2 derives it from the measured bundle, and Tailwind generates rules from SOURCE TEXT, so a class assembled around a value that only exists at render time gets no rule at all and the bar draws with no width. That width rides an inline style attribute, which is why the policy in MishkaCmsCore.Runtime.Plugs.SecurityHeaders keeps style-src-attr permitted — 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.