Package org.apache.juneau.console.freemarker
package org.apache.juneau.console.freemarker
FreeMarker-only delivery of the admin-console chrome: the reserved-classpath
base.ftlh template, the
<@tag> macro, and ConsoleFreemarkerMixin
(registers a reserved-path ClassTemplateLoader on top of the host's own FreemarkerMixin
configuration).
Depends on juneau-console + juneau-rest-server-view-freemarker only — never
juneau-console-datatables. A consumer who wants only chrome pulls this module and does not drag in
DataTables.
- Since:
- 10.0.0
-
ClassDescriptionThe built-in
annotationsdecorator: EChartsmarkPointpresets (max, min, average) on every series, or explicit points on a carrier seriesjuneau-annotations-<n>.TheassetUrl(path)FreeMarker method: appends?v=<crc32>of an adopter's own bundled static asset to its URL path, so a browser cannot keep a stale copy after a deploy.The<@badge>FreeMarker twin ofPageSpec.badge(BadgeDef): every scalar or enumBadgeDeffield is a plain attribute (the label templates aslabelOne,labelOtherandlabelMine, the scope asscopeParamandscopeBy, the state filter asstateFilterColumn).The built-inbandsdecorator: shaded x ranges from a list, a same-originsrc, adata:topic, or the gaps in the first series (Bands.gaps()).<@bridge id transport session downstream upstream? maxAttempts?/>: declares a server bridge in the contract'sbridgeslist.The<@card>FreeMarker directive: adds one entry to the page contract'scards[].A rail section holding one ordinary card.Type-agnostic card entry in the page contract:id,type, optionalsrc,title,template, plus a type-specific body map.The built-inchartcard type: a JSON5 body naming ahelper, a legacy flatkind, or a raw EChartsoption, with data from exactly one ofsrc=, an inlinedataarray or asource(data:topic).Typed builder for achartcard.A rail section of checkboxes over the distinct values of one dictionary column of a data source.The<@console>document-shell FreeMarker directive.AFreemarkerMixinthat additionally makes the reserved-classpath admin-console chrome template (org/apache/juneau/console/base.ftlh) — and the<@tag>macro it defines — resolvable from any consumer template, without shadowing the consumer's ownbasePath-rooted template tree.Builder forConsoleFreemarkerMixin.The capture-only console slot directives:<@head>,<@scripts>,<@brand>,<@actions>,<@title>,<@footer>, and<@body>.Static lint for console FreeMarker templates.One lint finding.A dashboard: a rail of filter sections beside a grid of card panels, with a status header and optional persistence.Declares a console data source: a browser loader that fetches rows from a same-origin URL, builds a columnar frame and publishes it on the topicdata:<id> , which chart cards read withChartDef.source(...).The aggregate request: a bucket unit, up to 3 groupBy dims, and the measures.Where closed chunks are kept.How the window is split into requests; UTC calendar units.The built-in parser for each wire format.How the frame is produced.The built-indatatablescard type, registered throughMETA-INF/services: validates the author catalog and resolves per-column search metadata, with no shape lift — the catalog stays in author shape (key/label, not VIEW_META'sdata/title);NS.card.liftCatalog(juneau-views.js) does the lift at mount time.A chart decorator entry: one element of a chart card'sdecorators[], run in the browser by the decorator registered under itsusename (JuneauCharts.decorator).Declares a derived data source: transforms run in the browser on each new frame of another source, published ondata:<as> .The<@facts>FreeMarker twin of the<@console facts=>attribute: a JSON5 object body, merged last-wins with any other chrome-side facts.Builds$fnmarkers: JSON values the chart glue replaces with a function fromJuneauCharts.fn.ThejcHasToolkit(name)FreeMarker method: whether the current<@page toolkit=…>listsname.The built-injob-logcard type: a form that submits to an endpoint returning anAsyncJobRef, then streams the job's progress fromAsyncJobsMixininto a log pane, with cancel and reload re-attach.The<@main/>console FreeMarker directive: the positional placeholder that renders the captured page body inside exactly one<main class="jc-main">.The built-inmarkersdecorator: vertical mark lines at x values from a list, a same-originsrc, adata:topic, or the current time.The<@navigation>console FreeMarker directive: opens the nav tree on thePageCapture.One node in the console navigation tree.The recursive<@node>console FreeMarker directive: one entry in a<@navigation>tree, of any depth, or (withunder=) a page-scoped addition appended under an existing chrome nav node.Typed, per-render capture of one console page: theme, header, footer, nav tree, active nav, cards and slot templates, held as FreeMarkerEnvironmentcustom state (seePageCapture.KEY) so every directive in the render shares one instance.Mutable footer fields; mirrors$defs/footer.Mutable header fields; mirrors$defs/header.A nav-tree mutation deferred until the chrome's nav tree exists.The<@page>shared FreeMarker directive: capture the nested body intoPageCapture, resolve thetoolkit=packs, then include the consumer chrome template.Java description of one console page: the active tab, toolkits, page CSS and init scripts, per-request header fields, the stock theme by name, and the page's cards (tables, html and registered custom types) and body attributes.Save and restore of a dashboard's state topics.The rail of a dashboard: a column ofSections beside the panel grid, with a splitter.A rail section of quick time-range presets, with an optional custom from/to.A rail section with one text input.A section of a dashboardRail.A section implemented in JS.The built-interminalcard type: validates a{contractVersion:'1', terminal:{...}}body throughTerminalDefand emits{terminal: ...}.The<@theme name="…">chrome FreeMarker directive: names the active stock theme once, in the chrome, points the chrome at that theme's shipped stylesheet, and — when a nested<@token>body is present — builds aThemeof custom overrides on top of it.The built-inthresholdsdecorator: a horizontal mark line at a y value, on a carrier seriesjuneau-thresholds-<n>.The<@token name="--jc-…" value="…"/>/<@token name="--jc-…" alias="var(--jc-…)"/>chrome FreeMarker directive: one custom theme-token override authored inside a<@theme>element.One named toolkit pack: ordered CSS and JS asset paths, the packs it depends on, itsToolkitPack.Kind, and the resolver that turns each path into a URL.Builder forToolkitPack.Where a pack's assets are emitted on the page.Registry of named toolkit packs for the<@page toolkit=...>directive and for the packs cards require.Resolves an asset path to an absolute, cache-busted URL against the in-flight request.Resolved absolute URLs, split by pack kind.<@topic name="..." retain=true|false publisher="script|server|ribbon"/>: declares a page-level custom topic in the contract'stopicslist.