Stripped from the internal repo: per-box deploy trees, Go services (nodelist/astmeta/proxy/svxdr), deploy/sync scripts and all secrets. Config templates for nginx, PHP-FPM, Redis and tmpfiles live in install/ with CHANGEME placeholders. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
25 lines
748 B
JavaScript
25 lines
748 B
JavaScript
'use strict';
|
|
|
|
// Tab switching for help.html. Deep-linkable: #build, #setup, #admin, #portal.
|
|
(function(){
|
|
const tabs = document.getElementById('helpTabs');
|
|
if (!tabs) return;
|
|
|
|
function show(name){
|
|
document.querySelectorAll('.tab-section').forEach(s =>
|
|
s.classList.toggle('d-none', s.id !== 'tab-' + name));
|
|
tabs.querySelectorAll('button').forEach(b =>
|
|
b.classList.toggle('active', b.dataset.tab === name));
|
|
}
|
|
|
|
tabs.addEventListener('click', e => {
|
|
const b = e.target.closest('button[data-tab]');
|
|
if (!b) return;
|
|
show(b.dataset.tab);
|
|
history.replaceState(null, '', '#' + b.dataset.tab);
|
|
});
|
|
|
|
const h = location.hash.replace('#', '');
|
|
if (h && document.getElementById('tab-' + h)) show(h);
|
|
})();
|