- replace placeholder garage interaction with real UI open flow - add catalog/session/UI bridge services for hydrate, sync, store, and retrieve actions - migrate garage web UI bundle to new app shell/runtime structure - align org/store function naming with shared init and UI bridge patterns
65 lines
2.2 KiB
HTML
65 lines
2.2 KiB
HTML
<!-- Generated by tools/build-webui.mjs for garage UI index. Do not edit directly. -->
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>FORGE Vehicle Garage</title>
|
|
<script>
|
|
window.ForgeSiteConfig = {
|
|
addonName: "garage",
|
|
logLabel: "Garage UI",
|
|
styles: ["garage-ui.css"],
|
|
commonScripts: ["forge-webui.js"],
|
|
scripts: ["garage-ui.js"],
|
|
};
|
|
|
|
(function loadForgeSiteLoader() {
|
|
const armaLoaderPath =
|
|
"forge\\forge_client\\addons\\common\\ui\\_site\\forge-site-loader.js";
|
|
const browserLoaderPath =
|
|
"../../../common/ui/_site/forge-site-loader.js";
|
|
|
|
function appendScript(js) {
|
|
const script = document.createElement("script");
|
|
script.text = js;
|
|
document.head.appendChild(script);
|
|
}
|
|
|
|
function requestLoader() {
|
|
if (
|
|
typeof A3API !== "undefined" &&
|
|
A3API &&
|
|
typeof A3API.RequestFile === "function"
|
|
) {
|
|
return A3API.RequestFile(armaLoaderPath);
|
|
}
|
|
|
|
return fetch(browserLoaderPath).then((response) => {
|
|
if (!response.ok) {
|
|
throw new Error(
|
|
"Failed to load " + browserLoaderPath,
|
|
);
|
|
}
|
|
|
|
return response.text();
|
|
});
|
|
}
|
|
|
|
requestLoader()
|
|
.then(appendScript)
|
|
.catch((error) => {
|
|
console.error(
|
|
"[Garage UI] Failed to load Forge site loader.",
|
|
error,
|
|
);
|
|
});
|
|
})();
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app"></div>
|
|
</body>
|
|
</html>
|