1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 06:18:42 +03:00
This commit is contained in:
Anton Afanasyeu
2026-05-27 16:44:50 +02:00
parent 92fc65e02e
commit 43f802de5d
19 changed files with 957 additions and 0 deletions

View File

@@ -16,6 +16,19 @@
</head>
<body class="hub-page">
<div id="hub-logo-stage" class="hub-logo-stage" hidden aria-hidden="true"></div>
<button id="hub-compass-hit" class="hub-compass-hit" type="button" aria-label="Open deployment model"></button>
<div id="hub-docs-modal" class="hub-docs-modal" hidden aria-hidden="true">
<div class="hub-docs-backdrop" data-close-docs></div>
<section class="hub-docs-panel card card--lift" role="dialog" aria-modal="true" aria-labelledby="hub-docs-title">
<header class="hub-docs-header">
<h2 id="hub-docs-title">Deployment model</h2>
<button type="button" class="hub-docs-close" data-close-docs aria-label="Close">x</button>
</header>
<div id="hub-docs-body" class="hub-docs-body">
<p class="muted">Loading...</p>
</div>
</section>
</div>
<div class="shell hub-shell">
<main class="main-pane hub-main">
<header class="hub-header">
@@ -120,6 +133,58 @@
stage.hidden = false;
stage.setAttribute('aria-hidden', 'true');
var docsModal = document.getElementById('hub-docs-modal');
var docsBody = document.getElementById('hub-docs-body');
var compassHit = document.getElementById('hub-compass-hit');
if (!docsModal || !docsBody || !compassHit) return;
function closeDocs() {
docsModal.hidden = true;
docsModal.setAttribute('aria-hidden', 'true');
}
function openDocs() {
docsModal.hidden = false;
docsModal.setAttribute('aria-hidden', 'false');
}
function loadDocs(section) {
var url = '/app/androidcast_project/crashes/api/hub_deploy_docs.php';
if (section) url += '?section=' + encodeURIComponent(section);
docsBody.innerHTML = '<p class="muted">Loading...</p>';
openDocs();
fetch(url, { headers: { 'Accept': 'application/json' } })
.then(function (res) { return res.json(); })
.then(function (payload) {
if (!payload || !payload.ok) {
docsBody.innerHTML = '<p class="muted">Failed to load deployment model.</p>';
return;
}
docsBody.innerHTML = payload.html || '<p class="muted">No content.</p>';
})
.catch(function () {
docsBody.innerHTML = '<p class="muted">Network error while loading deployment model.</p>';
});
}
compassHit.addEventListener('click', function () { loadDocs('intro'); });
docsModal.addEventListener('click', function (ev) {
var target = ev.target;
if (!(target instanceof Element)) return;
if (target.hasAttribute('data-close-docs')) {
closeDocs();
return;
}
var link = target.closest('[data-doc-link]');
if (link) {
ev.preventDefault();
loadDocs(link.getAttribute('data-doc-link') || 'intro');
}
});
document.addEventListener('keydown', function (ev) {
if (ev.key === 'Escape' && !docsModal.hidden) closeDocs();
});
})();
</script>
</body>