101 lines
4.5 KiB
Markdown
101 lines
4.5 KiB
Markdown
# INI Panel Entry
|
|
|
|
This page is the short entry map for the INI panel UI shell.
|
|
|
|
## Shell Module
|
|
|
|
Use the shell-facing module when an outer UI needs entry links or a read-only
|
|
control view:
|
|
|
|
```js
|
|
import {
|
|
INI_PANEL_ENTRIES,
|
|
createIniPanelLauncherLinkViewModel,
|
|
createIniPanelShellControlPageContract,
|
|
createIniPanelShellViewModel,
|
|
getIniPanelEntryByHref,
|
|
getVisibleIniPanelEntries,
|
|
createMachineSessionControlPageController,
|
|
createMachineSessionReadonlyStatus,
|
|
createMachineSessionReadonlyStatusApiManifest,
|
|
readMachineSessionReadonlyStatus,
|
|
loadMachineSessionForControlPageWorkflow,
|
|
createControlPageSessionLoadState,
|
|
refreshMachineSessionControlPage,
|
|
controlPageStatusText,
|
|
renderMachineSessionControlView,
|
|
} from "../runtime/ui/ini-panel/ui-shell.js";
|
|
```
|
|
|
|
`ui-shell.js` re-exports the entry manifest, the read-only control-page
|
|
controller, the unified read-only status API, the readonly-status API manifest,
|
|
and the control-view renderer. It does not implement CNC behavior.
|
|
|
|
## Pages
|
|
|
|
| Page | Path | Role |
|
|
| --- | --- | --- |
|
|
| Launch | `runtime/ui/ini-panel/launch.html` | Read-only entry page for available panel surfaces. |
|
|
| Edit and run | `runtime/ui/ini-panel/index.html` | Editable INI panel and existing run workflow surface. |
|
|
| Read-only control view | `runtime/ui/ini-panel/control-page.html` | Read-only control view backed by the panel API. |
|
|
|
|
## Visible Entries
|
|
|
|
The visible launch entries come from `getVisibleIniPanelEntries()`:
|
|
|
|
| Entry id | Href | Title |
|
|
| --- | --- | --- |
|
|
| `edit-run` | `./index.html` | Open edit and run panel |
|
|
| `control-view` | `./control-page.html` | Open read-only control view |
|
|
|
|
Launcher pages can render links from `createIniPanelLauncherLinkViewModel()`
|
|
without reading manifest field names directly. Each item has `entryId`, `href`,
|
|
and `label`.
|
|
|
|
Outer shells can call `createIniPanelShellViewModel()` when they need one
|
|
read-only model with `pages`, `launcherLinks`, and `controlPage` helpers for
|
|
mounting the existing control-page controller, refresh workflow, and renderer.
|
|
Use `controlPage.readStatus` or `readMachineSessionReadonlyStatus()` when an
|
|
outer shell needs one stable read of `stateBundle`, `workflowStatus`,
|
|
`overview`, `controlView`, `session`, `runReadiness`, and `run`.
|
|
Use `createMachineSessionReadonlyStatusApiManifest()` or
|
|
`controlPage.readonlyStatusApiManifest` when you only need the API shape and
|
|
method names.
|
|
Use `createIniPanelShellControlPageContract()` or `controlPage.contract` when
|
|
an outer shell needs a fast contract check for `createController`,
|
|
`loadSessionState`, `readStatus`, `refresh`, `renderView`, the readonly status
|
|
manifest, and its status fields before mounting the embedded panel. The
|
|
contract lists readonly status fields for `stateBundle`, `workflowStatus`,
|
|
`overview`, `controlView`, `report`, `runReadiness`, `run`, `session`, and
|
|
`status`.
|
|
The browser control page also exposes this contract through
|
|
`linuxCncIniPanelControlPageApi.getControlPageContract()`, so real iframe-based
|
|
smokes can verify the same API shape before reading the embedded panel state.
|
|
Use `linuxCncIniPanelControlPageApi.getControlPageApiMethods()` when a browser
|
|
outer page needs the exact exposed method list before calling the read-only
|
|
control page API.
|
|
Use `linuxCncIniPanelControlPageApi.readControlPageStatus()` when a browser
|
|
outer page needs the same readonly status snapshot from the real embedded
|
|
control page after save/load session workflows.
|
|
|
|
The control-page refresh workflow lives in
|
|
`runtime/ui/ini-panel/control-page-refresh-workflow.js`. Use
|
|
`refreshMachineSessionControlPage()` when an outer shell needs a structured
|
|
refresh result with `phase`, `statusText`, `view`, `renderResult`, and `error`.
|
|
`controlPageStatusText()` formats the already-observed panel status fields for
|
|
the read-only status line, and `createControlPageRefreshState()` is the stable
|
|
state-shape helper used by the workflow.
|
|
|
|
The control-page session workflow lives in
|
|
`runtime/ui/ini-panel/control-page-session-workflow.js`. Use
|
|
`loadMachineSessionForControlPageWorkflow()` when an outer shell needs a
|
|
read-only readiness snapshot for the embedded panel API and first control view.
|
|
`createControlPageSessionLoadState()` is the stable state-shape helper for
|
|
`waiting-panel`, `waiting-api`, `waiting-session`, `ready`, and `error` phases.
|
|
|
|
## Boundary
|
|
|
|
The entry shell only links pages and renders already-observed panel state. It
|
|
does not parse G-code, infer canonical events, or implement LinuxCNC-owned
|
|
tool, parameter, planner, or kinematics behavior.
|