diff --git a/app.js b/app.js
index 9142271..be9e8de 100644
--- a/app.js
+++ b/app.js
@@ -407,6 +407,9 @@ document.addEventListener('DOMContentLoaded', function () {
document.getElementById('config-form').querySelectorAll('input, select').forEach(element => {
element.disabled = true;
});
+ document.querySelectorAll('.preset-btn').forEach(btn => {
+ btn.disabled = true;
+ });
return null;
}
},
@@ -688,9 +691,12 @@ document.addEventListener('DOMContentLoaded', function () {
const updateReloadBtn = document.getElementById('update-reload-btn');
const updateDismissBtn = document.getElementById('update-dismiss-btn');
- function showUpdatePopup() {
+ let waitingServiceWorker = null;
+
+ function showUpdatePopup(waitingSW) {
if (updatePopup) {
updatePopup.style.display = 'flex';
+ waitingServiceWorker = waitingSW;
}
}
@@ -702,6 +708,9 @@ document.addEventListener('DOMContentLoaded', function () {
if (updateReloadBtn) {
updateReloadBtn.addEventListener('click', () => {
+ if (waitingServiceWorker) {
+ waitingServiceWorker.postMessage({ type: 'SKIP_WAITING' });
+ }
window.location.reload();
});
}
@@ -782,7 +791,7 @@ document.addEventListener('DOMContentLoaded', function () {
// Check if there's already a waiting service worker (update ready)
if (swRegistration.waiting) {
- showUpdatePopup();
+ showUpdatePopup(swRegistration.waiting);
}
// Listen for new service worker updates
@@ -793,7 +802,7 @@ document.addEventListener('DOMContentLoaded', function () {
// When the new worker is installed and waiting, show the update popup
// Only show if there's an existing controller (this is an update, not first install)
if (newWorker.state === 'installed' && navigator.serviceWorker.controller) {
- showUpdatePopup();
+ showUpdatePopup(newWorker);
}
});
}
diff --git a/index.html b/index.html
index 32ba012..cb5d7ae 100644
--- a/index.html
+++ b/index.html
@@ -12,7 +12,7 @@
-
+
@@ -370,7 +370,8 @@
@@ -847,7 +848,7 @@
diff --git a/style.css b/style.css
index 0bc1b40..6295335 100644
--- a/style.css
+++ b/style.css
@@ -400,6 +400,12 @@ body {
transform: scale(0.98);
}
+.preset-btn:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+ pointer-events: none;
+}
+
/* Config tabs */
.config-tabs {
flex-grow: 1;
@@ -1035,30 +1041,35 @@ select {
color: #FFD700;
}
-/* Manual PDF Section */
+/* Manual Section */
.manual-container {
- width: 100%;
- margin-top: 15px;
+ display: flex;
+ align-items: center;
+ gap: 15px;
}
-.manual-pdf {
- width: 100%;
- height: 600px;
- border: 1px solid #333;
+.manual-description {
+ color: #888;
+ font-size: 0.95em;
+ margin: 0;
+}
+
+.manual-open-btn {
+ display: inline-block;
+ padding: 12px 24px;
+ background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
+ border: 1px solid #FFD700;
border-radius: 8px;
- background-color: #1c1c1c;
+ color: #FFD700;
+ font-size: 1em;
+ font-weight: bold;
+ text-decoration: none;
+ transition: all 0.2s ease;
}
-@media (max-width: 768px) {
- .manual-pdf {
- height: 450px;
- }
-}
-
-@media (max-width: 480px) {
- .manual-pdf {
- height: 350px;
- }
+.manual-open-btn:hover {
+ background: linear-gradient(135deg, #333 0%, #222 100%);
+ box-shadow: 0 0 10px rgba(255, 215, 0, 0.3);
}
/* Voices Section */
diff --git a/sw.js b/sw.js
index 784799e..19c3ba2 100644
--- a/sw.js
+++ b/sw.js
@@ -10,7 +10,7 @@ const { Strategy } = workbox.strategies;
const { CacheableResponsePlugin } = workbox.cacheableResponse;
const { RangeRequestsPlugin } = workbox.rangeRequests;
-precacheAndRoute([{"revision":"0338231ebc0aff76ea0b7563cae96530","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"c97d78e159b8bff44d41e56d0aa20220","url":"isle.js"},{"revision":"5f174d45de1e3c5e0abdbccfd64567b6","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"e8a8dd113d9bbfa2a1b81bbafa7b673d","url":"app.js"},{"revision":"debda137e612dedce0d0e7f7b545588f","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"},{"revision":"6899f72755d4e84c707b93ac54a8fb06","url":"debug.js"},{"revision":"7817b36ddda9f07797c05a0ff6cacb21","url":"debug.html"},{"revision":"4ea2aac9446188b8a588811bc593919e","url":"ogel.webp"},{"revision":"c57d24598537443c5b8276c8dd5dbdc9","url":"bonus.webp"},{"revision":"d11c8c893d5525c8842555dc2861c393","url":"callfail.webp"},{"revision":"be9a89fb567b632cf8d4661cbf8afd9e","url":"getinfo.webp"},{"revision":"fe986681f41e96631f39f3288b23e538","url":"sysinfo.webp"},{"revision":"4ec902e0b0ce60ffd9dd565c9ddf40a1","url":"send.webp"},{"revision":"81f3c8fc38b876dc2fcfeefaadad1d1b","url":"congrats.webp"},{"revision":"f906318cb87e09a819e5916676caab2e","url":"register.webp"},{"revision":"c633a7500e6f30162bf1cf4ec4e95a6d","url":"later.webp"},{"revision":"d149d5709ac00fd5e2967ab4f3d74886","url":"comic.pdf"}]);
+precacheAndRoute([{"revision":"56b3874bf39f8fd870f0d1bc208107e1","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"c97d78e159b8bff44d41e56d0aa20220","url":"isle.js"},{"revision":"5f174d45de1e3c5e0abdbccfd64567b6","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"ae9cf89bb78e59232bf16589adfb0cc9","url":"app.js"},{"revision":"3be62bbd2c9dbb1d15c423ebe8da7793","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"},{"revision":"6899f72755d4e84c707b93ac54a8fb06","url":"debug.js"},{"revision":"7817b36ddda9f07797c05a0ff6cacb21","url":"debug.html"},{"revision":"4ea2aac9446188b8a588811bc593919e","url":"ogel.webp"},{"revision":"c57d24598537443c5b8276c8dd5dbdc9","url":"bonus.webp"},{"revision":"d11c8c893d5525c8842555dc2861c393","url":"callfail.webp"},{"revision":"be9a89fb567b632cf8d4661cbf8afd9e","url":"getinfo.webp"},{"revision":"fe986681f41e96631f39f3288b23e538","url":"sysinfo.webp"},{"revision":"4ec902e0b0ce60ffd9dd565c9ddf40a1","url":"send.webp"},{"revision":"81f3c8fc38b876dc2fcfeefaadad1d1b","url":"congrats.webp"},{"revision":"f906318cb87e09a819e5916676caab2e","url":"register.webp"},{"revision":"c633a7500e6f30162bf1cf4ec4e95a6d","url":"later.webp"},{"revision":"d149d5709ac00fd5e2967ab4f3d74886","url":"comic.pdf"}]);
const gameFiles = [
"/LEGO/Scripts/CREDITS.SI", "/LEGO/Scripts/INTRO.SI", "/LEGO/Scripts/NOCD.SI", "/LEGO/Scripts/SNDANIM.SI",