diff --git a/website/app.js b/website/app.js index ba1b763..7ff5c90 100644 --- a/website/app.js +++ b/website/app.js @@ -46,7 +46,53 @@ document.addEventListener('DOMContentLoaded', () => { // Invite Detection & Bridge const checkInvite = () => { - const isJoinPage = window.location.pathname.includes('join.html'); + const isJoinPage = window.location.pathname.includes('join'); + + // Dev Simulation Mode via URL Search Parameter (?dev=success) or Hash (#dev=success / #devsuccess) + const urlParams = new URLSearchParams(window.location.search); + let devMode = urlParams.get('dev'); + + if (!devMode) { + const hashClean = window.location.hash.startsWith('#') ? window.location.hash.substring(1) : window.location.hash; + const hashParams = new URLSearchParams(hashClean); + devMode = hashParams.get('dev'); + } + + if (!devMode) { + if (window.location.hash.includes('devsuccess') || window.location.search.includes('devsuccess')) devMode = 'success'; + if (window.location.hash.includes('devfailure') || window.location.search.includes('devfailure')) devMode = 'failure'; + } + + if (isJoinPage && devMode) { + setTimeout(() => { + const displayRoom = document.getElementById('display-room-id'); + const actions = document.getElementById('join-actions'); + if (displayRoom) displayRoom.textContent = 'DEV-ROOM'; + + if (actions) { + actions.innerHTML = ` +
+
+
+ Simulating connection (DEV)...Verbindung wird simuliert (DEV)... +
+

+ Simulating status event in 1.5 seconds.Status-Event wird in 1,5 Sekunden simuliert. +

+
+ `; + setTimeout(() => { + window.dispatchEvent(new CustomEvent('KOALASYNC_STATUS', { + detail: { + success: devMode === 'success', + message: devMode === 'failure' ? 'Simulated Connection Timeout!' : '' + } + })); + }, 1500); + } + }, 600); + return; + } // Use a short timeout to let the bridge script initialize its dataset attribute setTimeout(() => { @@ -182,7 +228,7 @@ document.addEventListener('DOMContentLoaded', () => { // Listen for status from Extension window.addEventListener('KOALASYNC_STATUS', (e) => { const { success, message } = e.detail; - const isJoinPage = window.location.pathname.includes('join.html'); + const isJoinPage = window.location.pathname.includes('join'); if (isJoinPage) { const icon = document.getElementById('join-status-icon'); @@ -192,10 +238,13 @@ document.addEventListener('DOMContentLoaded', () => { const ring = document.getElementById('status-ring'); if (success) { - if (ring) ring.classList.remove('active-pulse'); + if (ring) { + ring.classList.remove('active-pulse'); + ring.style.display = 'none'; + } if (icon) { - icon.textContent = '✅'; - icon.style.transform = 'scale(1.2)'; + icon.innerHTML = 'Success'; + icon.style.transform = 'scale(1)'; } const isDE = document.documentElement.classList.contains('lang-de'); title.textContent = isDE ? 'Erfolgreich!' : 'Success!'; @@ -222,10 +271,13 @@ document.addEventListener('DOMContentLoaded', () => { `; } else { - if (ring) ring.classList.remove('active-pulse'); + if (ring) { + ring.classList.remove('active-pulse'); + ring.style.display = 'none'; + } if (icon) { - icon.textContent = '❌'; - icon.style.transform = 'scale(1.2)'; + icon.innerHTML = 'Error'; + icon.style.transform = 'scale(1)'; } const isDE = document.documentElement.classList.contains('lang-de'); title.textContent = isDE ? 'Fehler' : 'Error'; @@ -405,7 +457,7 @@ document.addEventListener('DOMContentLoaded', () => { // Update titles dynamically based on page var path = window.location.pathname; var isIndex = path === '/' || path.endsWith('index.html') || path.split('/').pop() === ''; - var isJoin = path.endsWith('join.html'); + var isJoin = path.includes('join'); if (isIndex) { const titles = { diff --git a/website/assets/KoalaThumbsDown.webp b/website/assets/KoalaThumbsDown.webp new file mode 100644 index 0000000..ac07452 Binary files /dev/null and b/website/assets/KoalaThumbsDown.webp differ diff --git a/website/assets/KoalaThumbsUp.webp b/website/assets/KoalaThumbsUp.webp new file mode 100644 index 0000000..4712ba5 Binary files /dev/null and b/website/assets/KoalaThumbsUp.webp differ diff --git a/website/lang-init.js b/website/lang-init.js index fd07b20..a74c38a 100644 --- a/website/lang-init.js +++ b/website/lang-init.js @@ -8,7 +8,7 @@ // Update titles dynamically based on page var path = window.location.pathname; var isIndex = path === '/' || path.endsWith('index.html') || path.split('/').pop() === ''; - var isJoin = path.endsWith('join.html'); + var isJoin = path.includes('join'); if (isIndex) { var titles = { diff --git a/website/style.css b/website/style.css index dc62bbc..f2e3890 100644 --- a/website/style.css +++ b/website/style.css @@ -1745,12 +1745,20 @@ html.lang-de [lang="en"] { .join-status-visual { margin-bottom: 2rem; position: relative; - height: 110px; + height: 200px; display: flex; align-items: center; justify-content: center; } +.join-status-mascot { + display: block; + width: 140px; + height: auto; + z-index: 2; + filter: drop-shadow(0 4px 12px rgba(0,0,0,0.15)); +} + .status-ring { position: absolute; width: 90px;