forge/arma/client/addons/cad/ui/_site/dispatcher.html
Jacob Schmidt 1ca2499af7 Add dispatcher mode to CAD UI
- Add a dispatcher web view and layout switching
- Route group role updates and dispatcher hydration through the UI bridge
- Refresh top bar and hide map/side panel outside operations mode
2026-03-30 20:22:48 -05:00

1 line
3.8 KiB
HTML

<!doctype html><html><head><meta charset="UTF-8"></head><body><div class="dispatch-shell"><header class="dispatch-header"><div><p class="dispatch-kicker">Dispatch Dashboard</p><h2>Operational Board</h2></div><button id="dispatcherRefreshBtn" type="button">Refresh Board</button></header><div id="dispatcherStatusMessage" class="dispatch-status"></div><section class="dispatch-metrics"><div class="metric-card"><span class="metric-label">Open Contracts</span> <strong id="metricOpenContracts">0</strong></div><div class="metric-card"><span class="metric-label">Assigned Contracts</span> <strong id="metricAssignedContracts">0</strong></div><div class="metric-card"><span class="metric-label">Active Groups</span> <strong id="metricActiveGroups">0</strong></div><div class="metric-card"><span class="metric-label">Groups In Danger</span> <strong id="metricDangerGroups">0</strong></div></section><div class="dispatch-grid"><section class="dispatch-panel dispatch-panel-open"><div class="dispatch-panel-header"><h3>Available Contracts</h3></div><div id="dispatcherOpenContracts" class="dispatch-list"></div></section><section class="dispatch-panel dispatch-panel-assigned"><div class="dispatch-panel-header"><h3>Assigned Contracts</h3></div><div id="dispatcherAssignedContracts" class="dispatch-list"></div></section><section class="dispatch-panel dispatch-panel-groups"><div class="dispatch-panel-header"><h3>Group Board</h3></div><div id="dispatcherGroups" class="dispatch-list"></div></section><section class="dispatch-panel dispatch-panel-activity"><div class="dispatch-panel-header"><h3>Activity Feed</h3></div><div id="dispatcherActivity" class="dispatch-list"></div></section></div><div id="dispatcherGroupModal" class="dispatch-modal is-hidden"><div class="dispatch-modal-backdrop"></div><div class="dispatch-modal-dialog" role="dialog" aria-modal="true" aria-labelledby="dispatcherGroupModalTitle"><div class="dispatch-modal-header"><div><p class="dispatch-kicker">Group Editor</p><h3 id="dispatcherGroupModalTitle">Manage Group</h3></div><button id="dispatcherGroupModalCloseBtn" class="dispatch-icon-btn" type="button" aria-label="Close group editor">x</button></div><div class="dispatch-modal-body"><div class="dispatch-meta-grid"><div><span class="metric-label">Callsign</span> <strong id="dispatcherModalGroupCallsign">-</strong></div><div><span class="metric-label">Leader</span> <strong id="dispatcherModalGroupLeader">-</strong></div><div><span class="metric-label">Current Task</span> <strong id="dispatcherModalGroupTask">None</strong></div><div><span class="metric-label">Org</span> <strong id="dispatcherModalGroupOrg">default</strong></div></div><div class="dispatch-modal-fields"><label class="dispatch-field"><span>Role</span> <select id="dispatcherModalRoleSelect" class="dispatch-select"></select></label> <label class="dispatch-field"><span>Status</span> <select id="dispatcherModalStatusSelect" class="dispatch-select"></select></label></div></div><div class="dispatch-modal-actions"><button id="dispatcherGroupModalSaveBtn" type="button" class="dispatch-btn">Save Changes</button></div></div></div></div><script>window.MapLoader={loadCSS:e=>A3API.RequestFile(e).then(e=>{const d=document.createElement("style");d.textContent=e,document.head.appendChild(d)}),loadJS(path){return A3API.RequestFile(path).then(js=>{eval(js)})},loadAll(e){return e.reduce((e,d)=>e.then(()=>d.endsWith(".css")?this.loadCSS(d):d.endsWith(".js")?this.loadJS(d):Promise.resolve()),Promise.resolve())}},MapLoader.loadAll(["forge\\forge_client\\addons\\cad\\ui\\_site\\cad-common.css","forge\\forge_client\\addons\\cad\\ui\\_site\\cad-dispatcher.css","forge\\forge_client\\addons\\cad\\ui\\_site\\cad-shared.js","forge\\forge_client\\addons\\cad\\ui\\_site\\cad-dispatcher.js"]).catch(e=>console.error("[DISPATCHER] Load error:",e))</script></body></html>