From 710265af07f84e6921728520293f1e8965c650a3 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Thu, 11 Aug 2016 10:22:16 +0200 Subject: [PATCH] Fix layoutManager bug --- .../client/components/toolbarSection/toolbarSection.js | 2 +- .../viewer/imageViewerViewport/imageViewerViewport.js | 6 +++++- .../client/components/viewer/viewerMain/viewerMain.js | 2 ++ Packages/viewerbase/lib/helpers/isDisplaySetActive.js | 6 +++--- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Packages/lesiontracker/client/components/toolbarSection/toolbarSection.js b/Packages/lesiontracker/client/components/toolbarSection/toolbarSection.js index d93f930f7..794d5c801 100644 --- a/Packages/lesiontracker/client/components/toolbarSection/toolbarSection.js +++ b/Packages/lesiontracker/client/components/toolbarSection/toolbarSection.js @@ -11,7 +11,7 @@ Template.toolbarSection.helpers({ return; } - return layoutManager.viewportData.length > 1; + return window.layoutManager.viewportData.length > 1; }, leftSidebarToggleButtonData() { diff --git a/Packages/viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js b/Packages/viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js index faf52bf96..0b1f345b6 100644 --- a/Packages/viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js +++ b/Packages/viewerbase/client/components/viewer/imageViewerViewport/imageViewerViewport.js @@ -25,7 +25,7 @@ function loadDisplaySetIntoViewport(data, templateData) { var element = data.element; var viewportIndex = $('.imageViewerViewport').index(element); - layoutManager = layoutManager || window.layoutManager; + let layoutManager = window.layoutManager; layoutManager.viewportData = layoutManager.viewportData || {}; layoutManager.viewportData[viewportIndex] = layoutManager.viewportData[viewportIndex] || {}; layoutManager.viewportData[viewportIndex].viewportIndex = viewportIndex; @@ -253,6 +253,10 @@ function loadDisplaySetIntoViewport(data, templateData) { function onImageRendered(e, eventData) { log.info('imageViewerViewport onImageRendered'); + if (!layoutManager.viewportData[viewportIndex]) { + log.warn("onImageRendered: LayoutManager has no viewport data for this viewport index?: " + viewportIndex); + } + // Use Session to trigger reactive updates in the viewportOverlay helper functions // This lets the viewport overlay always display correct window / zoom values Session.set('CornerstoneImageRendered' + viewportIndex, Random.id()); diff --git a/Packages/viewerbase/client/components/viewer/viewerMain/viewerMain.js b/Packages/viewerbase/client/components/viewer/viewerMain/viewerMain.js index e0b8cc864..33b5d775c 100644 --- a/Packages/viewerbase/client/components/viewer/viewerMain/viewerMain.js +++ b/Packages/viewerbase/client/components/viewer/viewerMain/viewerMain.js @@ -21,6 +21,8 @@ Template.viewerMain.onRendered(() => { }); Template.viewerMain.onDestroyed(() => { + log.info('viewerMain onDestroyed'); + // Remove the Window resize listener $(window).off('resize', handleResize); diff --git a/Packages/viewerbase/lib/helpers/isDisplaySetActive.js b/Packages/viewerbase/lib/helpers/isDisplaySetActive.js index 36bca06da..6f9050e4f 100644 --- a/Packages/viewerbase/lib/helpers/isDisplaySetActive.js +++ b/Packages/viewerbase/lib/helpers/isDisplaySetActive.js @@ -6,7 +6,7 @@ Template.registerHelper('isDisplaySetActive', (displaySetInstanceUid, viewportIn Session.get('LayoutManagerUpdated'); // Stop here if layoutManager is not defined yet - if (!layoutManager) { + if (!window.layoutManager) { return; } @@ -26,7 +26,7 @@ Template.registerHelper('isDisplaySetActive', (displaySetInstanceUid, viewportIn // Loop through the viewport data up until the currently displayed // number of viewports - let viewportData = layoutManager.viewportData; + let viewportData = window.layoutManager.viewportData; for (let i = 0; i < currentNumberOfViewports; i++) { const data = viewportData[i]; @@ -37,7 +37,7 @@ Template.registerHelper('isDisplaySetActive', (displaySetInstanceUid, viewportIn } } } else { - const data = layoutManager.viewportData[viewportIndex]; + const data = window.layoutManager.viewportData[viewportIndex]; // If the display set is displayed in this viewport, stop here if (data && data.displaySetInstanceUid === displaySetInstanceUid) {