Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m20s
Details
CI/CD / deploy (push) Failing after 2m20s
Details
This commit is contained in:
commit
5af2eec04e
|
|
@ -466,6 +466,59 @@ routes.get("/:room", (c) => {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Minimal mode — full-screen Jitsi without rSpace shell (for scheduled meeting links)
|
||||||
|
if (c.req.query("minimal") === "1" || c.req.query("join") === "1") {
|
||||||
|
const jitsiRoom = encodeURIComponent(room);
|
||||||
|
return c.html(`<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
<title>${escapeHtml(room)} — Meeting</title>
|
||||||
|
<style>
|
||||||
|
*{margin:0;padding:0;box-sizing:border-box}
|
||||||
|
html,body{height:100%;overflow:hidden;background:#111;font-family:system-ui,sans-serif}
|
||||||
|
#jitsi-container{width:100%;height:100%}
|
||||||
|
.loading{display:flex;align-items:center;justify-content:center;height:100%;color:#94a3b8;flex-direction:column;gap:12px}
|
||||||
|
.loading .spinner{width:32px;height:32px;border:3px solid #334155;border-top-color:#6366f1;border-radius:50%;animation:spin 0.8s linear infinite}
|
||||||
|
@keyframes spin{to{transform:rotate(360deg)}}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="jitsi-container">
|
||||||
|
<div class="loading"><div class="spinner"></div><span>Connecting to meeting...</span></div>
|
||||||
|
</div>
|
||||||
|
<script src="${escapeHtml(JITSI_URL)}/external_api.js"></script>
|
||||||
|
<script>
|
||||||
|
const api = new JitsiMeetExternalAPI("${escapeHtml(JITSI_URL.replace(/^https?:\/\//, ""))}", {
|
||||||
|
roomName: "${jitsiRoom}",
|
||||||
|
parentNode: document.getElementById("jitsi-container"),
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
configOverrides: {
|
||||||
|
startWithAudioMuted: false,
|
||||||
|
startWithVideoMuted: false,
|
||||||
|
prejoinPageEnabled: true,
|
||||||
|
disableDeepLinking: true,
|
||||||
|
},
|
||||||
|
interfaceConfigOverrides: {
|
||||||
|
SHOW_JITSI_WATERMARK: false,
|
||||||
|
SHOW_BRAND_WATERMARK: false,
|
||||||
|
SHOW_POWERED_BY: false,
|
||||||
|
TOOLBAR_BUTTONS: [
|
||||||
|
"microphone","camera","closedcaptions","desktop","fullscreen",
|
||||||
|
"fodeviceselection","hangup","chat","recording","livestreaming",
|
||||||
|
"etherpad","settings","raisehand","videoquality","filmstrip",
|
||||||
|
"feedback","shortcuts","tileview","participants-pane",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
api.addEventListener("readyToClose", () => { window.close(); });
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>`);
|
||||||
|
}
|
||||||
|
|
||||||
return c.html(renderShell({
|
return c.html(renderShell({
|
||||||
title: `${room} — rMeets | rSpace`,
|
title: `${room} — rMeets | rSpace`,
|
||||||
moduleId: "rmeets",
|
moduleId: "rmeets",
|
||||||
|
|
|
||||||
|
|
@ -2936,6 +2936,7 @@ for (const mod of getAllModules()) {
|
||||||
|
|
||||||
// Landing page: rspace.online/ → server-rendered main landing
|
// Landing page: rspace.online/ → server-rendered main landing
|
||||||
app.get("/", (c) => {
|
app.get("/", (c) => {
|
||||||
|
c.header("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
return c.html(renderMainLanding(getModuleInfoList()));
|
return c.html(renderMainLanding(getModuleInfoList()));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -3352,7 +3353,7 @@ const server = Bun.serve<WSData>({
|
||||||
redirectUrl = `https://rspace.online/${standaloneModuleId}${remainingPath}`;
|
redirectUrl = `https://rspace.online/${standaloneModuleId}${remainingPath}`;
|
||||||
}
|
}
|
||||||
if (url.search) redirectUrl += url.search;
|
if (url.search) redirectUrl += url.search;
|
||||||
return Response.redirect(redirectUrl, 301);
|
return Response.redirect(redirectUrl, 302);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── WebSocket upgrade ──
|
// ── WebSocket upgrade ──
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue