Enhance local viewer: implement centralized hide functionality and improve close handling for resource overlays
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Viewer</title>
|
<title>Viewer</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body, html
|
body, html
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
position:absolute; left: 0; right: 0; bottom: 0; top: 0px;
|
position:absolute; left: 0; right: 0; bottom: 0; top: 0px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p>Awating load request</p>
|
<p>Awating load request</p>
|
||||||
This page will display series when loaded from other pages.
|
This page will display series when loaded from other pages.
|
||||||
<div id="viewerContainer" style="width:100%; height:100%; position:relative;">
|
<div id="viewerContainer" style="width:100%; height:100%; position:relative;">
|
||||||
@@ -169,6 +169,8 @@
|
|||||||
bc.onmessage = (event) => {
|
bc.onmessage = (event) => {
|
||||||
console.log("message received");
|
console.log("message received");
|
||||||
console.log(event);
|
console.log(event);
|
||||||
|
// Always hide any existing resource overlay on a new load
|
||||||
|
try { hideResource(); } catch (e) { /* ignore if not available */ }
|
||||||
if (event.data.type == "open") {
|
if (event.data.type == "open") {
|
||||||
// If URL looks like an image/video/embed, render in the resource panel
|
// If URL looks like an image/video/embed, render in the resource panel
|
||||||
if (event.data.url && isMediaUrl(event.data.url)) {
|
if (event.data.url && isMediaUrl(event.data.url)) {
|
||||||
@@ -183,5 +185,5 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -86,7 +86,14 @@
|
|||||||
document.title = "Case: {{current_case.title}}";
|
document.title = "Case: {{current_case.title}}";
|
||||||
console.log('ready');
|
console.log('ready');
|
||||||
const bc = new BroadcastChannel("viva_load");
|
const bc = new BroadcastChannel("viva_load");
|
||||||
|
|
||||||
|
// Centralized hide helper and delegated close handling for local viewer
|
||||||
|
function hideResourceLocal(){ const disp=document.getElementById('resourceDisplay'); const inner=document.getElementById('resourceInner'); if(disp) disp.style.display='none'; if(inner) inner.innerHTML=''; }
|
||||||
|
(function(){ const disp=document.getElementById('resourceDisplay'); if(!disp) return; disp.addEventListener('click', function(e){ const close = e.target.closest && e.target.closest('#resourceClose'); if (close) hideResourceLocal(); }); })();
|
||||||
|
|
||||||
bc.onmessage = (event) => {
|
bc.onmessage = (event) => {
|
||||||
|
// Ensure any existing overlay is closed on new load
|
||||||
|
try { hideResourceLocal(); } catch(_) {}
|
||||||
console.log("message received");
|
console.log("message received");
|
||||||
console.log(event);
|
console.log(event);
|
||||||
if (event.data.type == "open") {
|
if (event.data.type == "open") {
|
||||||
@@ -144,9 +151,7 @@
|
|||||||
disp.style.display='flex'; return true;
|
disp.style.display='flex'; return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Centralized hide helper and delegated close handling
|
|
||||||
function hideResourceLocal(){ const disp=document.getElementById('resourceDisplay'); const inner=document.getElementById('resourceInner'); if(disp) disp.style.display='none'; if(inner) inner.innerHTML=''; }
|
|
||||||
(function(){ const disp=document.getElementById('resourceDisplay'); if(!disp) return; disp.addEventListener('click', function(e){ const close = e.target.closest && e.target.closest('#resourceClose'); if (close) hideResourceLocal(); }); })();
|
|
||||||
|
|
||||||
if (event.data.url && isMediaUrl(event.data.url)) {
|
if (event.data.url && isMediaUrl(event.data.url)) {
|
||||||
// show resource overlay and do not attempt to mount DICOM viewer
|
// show resource overlay and do not attempt to mount DICOM viewer
|
||||||
|
|||||||
Reference in New Issue
Block a user