mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-07 23:01:06 +02:00
Added scoped CSS in SpoolBuddyAmsPage that constrains the shared AssignSpoolModal to 90vh with scrollable content, without modifying the shared component used by the main Bambuddy frontend.
60 lines
2.3 KiB
HTML
60 lines
2.3 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
<title>Bambuddy</title>
|
|
|
|
<!-- PWA Meta Tags -->
|
|
<meta name="description" content="Monitor and manage your Bambu Lab 3D printers" />
|
|
<meta name="theme-color" content="#00ae42" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
<meta name="apple-mobile-web-app-title" content="Bambuddy" />
|
|
|
|
<!-- Manifest -->
|
|
<link rel="manifest" href="/manifest.json" />
|
|
|
|
<!-- Favicons -->
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png" />
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png" />
|
|
|
|
<!-- Splash screens for iOS -->
|
|
<link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
|
|
<script type="module" crossorigin src="/assets/index-vlxFmu1X.js"></script>
|
|
<link rel="stylesheet" crossorigin href="/assets/index-CZLTApPU.css">
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
|
|
<!-- Service Worker Registration (skip on SpoolBuddy kiosk) -->
|
|
<script>
|
|
if ('serviceWorker' in navigator) {
|
|
if (location.pathname.startsWith('/spoolbuddy')) {
|
|
// Kiosk mode — nuke SW and all caches, then reload once to get clean state
|
|
navigator.serviceWorker.getRegistrations().then((regs) => {
|
|
if (regs.length > 0) {
|
|
Promise.all([
|
|
...regs.map((r) => r.unregister()),
|
|
caches.keys().then((names) => Promise.all(names.map((n) => caches.delete(n)))),
|
|
]).then(() => location.reload());
|
|
}
|
|
});
|
|
} else {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/sw.js')
|
|
.then((registration) => {
|
|
console.log('SW registered:', registration.scope);
|
|
})
|
|
.catch((error) => {
|
|
console.log('SW registration failed:', error);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|