add installer alpha version
This commit is contained in:
@@ -4,11 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<title>{{.Title}} • atlasOS</title>
|
||||
<title>{{.Title}} • AtlasOS</title>
|
||||
|
||||
<!-- v1: Tailwind CDN (later: bundle local) -->
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.12"></script>
|
||||
<!-- Try multiple CDN sources for better reliability -->
|
||||
<script src="https://cdn.tailwindcss.com" onerror="this.onerror=null;this.src='https://unpkg.com/@tailwindcss/browser@4/dist/tailwind.min.js'"></script>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.12/dist/htmx.min.js" onerror="this.onerror=null;this.src='https://cdn.jsdelivr.net/npm/htmx.org@1.9.12/dist/htmx.min.js'"></script>
|
||||
</head>
|
||||
|
||||
<body class="bg-slate-950 text-slate-100">
|
||||
@@ -17,31 +18,92 @@
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="h-9 w-9 rounded-lg bg-slate-800 flex items-center justify-center font-bold">A</div>
|
||||
<div>
|
||||
<div class="font-semibold leading-tight">atlasOS</div>
|
||||
<div class="font-semibold leading-tight">AtlasOS</div>
|
||||
<div class="text-xs text-slate-400 leading-tight">Storage Controller v1</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="text-sm text-slate-300 flex items-center gap-4">
|
||||
<a class="hover:text-white" href="/">Dashboard</a>
|
||||
<a class="hover:text-white opacity-50 cursor-not-allowed" href="#">Storage</a>
|
||||
<a class="hover:text-white opacity-50 cursor-not-allowed" href="#">Shares</a>
|
||||
<a class="hover:text-white opacity-50 cursor-not-allowed" href="#">iSCSI</a>
|
||||
<a class="hover:text-white" href="/storage">Storage</a>
|
||||
<a class="hover:text-white" href="/shares">Shares</a>
|
||||
<a class="hover:text-white" href="/iscsi">iSCSI</a>
|
||||
<a class="hover:text-white" href="/protection">Data Protection</a>
|
||||
<a class="hover:text-white" href="/management">Management</a>
|
||||
<a class="hover:text-white opacity-50 cursor-not-allowed" href="#">Monitoring</a>
|
||||
<span id="auth-status" class="ml-4"></span>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="mx-auto max-w-6xl px-4 py-8">
|
||||
{{template "content" .}}
|
||||
{{$ct := getContentTemplate .}}
|
||||
{{if eq $ct "storage-content"}}
|
||||
{{template "storage-content" .}}
|
||||
{{else if eq $ct "shares-content"}}
|
||||
{{template "shares-content" .}}
|
||||
{{else if eq $ct "iscsi-content"}}
|
||||
{{template "iscsi-content" .}}
|
||||
{{else if eq $ct "protection-content"}}
|
||||
{{template "protection-content" .}}
|
||||
{{else if eq $ct "management-content"}}
|
||||
{{template "management-content" .}}
|
||||
{{else if eq $ct "login-content"}}
|
||||
{{template "login-content" .}}
|
||||
{{else}}
|
||||
{{template "content" .}}
|
||||
{{end}}
|
||||
</main>
|
||||
|
||||
<footer class="mx-auto max-w-6xl px-4 pb-10 text-xs text-slate-500">
|
||||
<div class="border-t border-slate-800 pt-4 flex items-center justify-between">
|
||||
<span>atlasOS • {{nowRFC3339}}</span>
|
||||
<span>AtlasOS • {{nowRFC3339}}</span>
|
||||
<span>Build: {{index .Build "version"}}</span>
|
||||
</div>
|
||||
</footer>
|
||||
<script>
|
||||
// Update auth status in navigation
|
||||
function updateAuthStatus() {
|
||||
const authStatusEl = document.getElementById('auth-status');
|
||||
if (!authStatusEl) return;
|
||||
|
||||
const token = localStorage.getItem('atlas_token');
|
||||
const userStr = localStorage.getItem('atlas_user');
|
||||
|
||||
if (token && userStr) {
|
||||
try {
|
||||
const user = JSON.parse(userStr);
|
||||
authStatusEl.innerHTML = `
|
||||
<span class="text-slate-400">${user.username || 'User'}</span>
|
||||
<button onclick="handleLogout()" class="ml-2 px-2 py-1 text-xs bg-slate-700 hover:bg-slate-600 text-white rounded">
|
||||
Logout
|
||||
</button>
|
||||
`;
|
||||
} catch {
|
||||
authStatusEl.innerHTML = `
|
||||
<a href="/login" class="px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded">Login</a>
|
||||
`;
|
||||
}
|
||||
} else {
|
||||
authStatusEl.innerHTML = `
|
||||
<a href="/login" class="px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded">Login</a>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
function handleLogout() {
|
||||
localStorage.removeItem('atlas_token');
|
||||
localStorage.removeItem('atlas_user');
|
||||
window.location.href = '/login';
|
||||
}
|
||||
|
||||
// Update on page load
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', updateAuthStatus);
|
||||
} else {
|
||||
updateAuthStatus();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user