From 259b791672aab86c7452f3c23419216fde391cf3 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Tue, 3 Jun 2014 14:33:24 +0000
Subject: [PATCH] SSDM-335 : JS Movie Player - horizontal/vertical layout -
 bugfix - display an error message when data could not be loaded from the
 server

SVN: 31647
---
 .../imageviewer/ImageViewerWidget.js          | 52 ++++++++++++++++---
 1 file changed, 44 insertions(+), 8 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ImageViewerWidget.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ImageViewerWidget.js
index 9130a1d10fe..f40bde5fa64 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ImageViewerWidget.js
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ImageViewerWidget.js
@@ -1,8 +1,8 @@
-define([ "jquery", "components/common/CallbackManager", "components/imageviewer/AbstractWidget", "components/imageviewer/ImageViewerView",
-		"components/imageviewer/DataSetChooserWidget", "components/imageviewer/ImageParametersWidget", "components/imageviewer/ImageWidget",
-		"components/imageviewer/ImageLoader", "components/imageviewer/ImageData", "components/imageviewer/OpenbisFacade" ], function($,
-		CallbackManager, AbstractWidget, ImageViewerView, DataSetChooserWidget, ImageParametersWidget, ImageWidget, ImageLoader, ImageData,
-		OpenbisFacade) {
+define([ "jquery", "components/common/Logger", "components/common/CallbackManager", "components/imageviewer/AbstractWidget",
+		"components/imageviewer/ImageViewerView", "components/imageviewer/DataSetChooserWidget", "components/imageviewer/ImageParametersWidget",
+		"components/imageviewer/ImageWidget", "components/imageviewer/ImageLoader", "components/imageviewer/ImageData",
+		"components/imageviewer/OpenbisFacade" ], function($, Logger, CallbackManager, AbstractWidget, ImageViewerView, DataSetChooserWidget,
+		ImageParametersWidget, ImageWidget, ImageLoader, ImageData, OpenbisFacade) {
 
 	//
 	// IMAGE VIEWER WIDGET
@@ -26,20 +26,56 @@ define([ "jquery", "components/common/CallbackManager", "components/imageviewer/
 				var thisViewer = this;
 
 				var manager = new CallbackManager(function() {
+					var correctDataSetCodes = [];
+
+					thisViewer.getDataSetCodes().forEach(function(dataSetCode) {
+						var correct = true;
+
+						if (!thisViewer.getDataStoreUrl(dataSetCode)) {
+							Logger.log("Ignoring data set: " + dataSetCode + " - could not get data store url");
+							correct = false;
+						}
+						if (!thisViewer.getImageInfo(dataSetCode)) {
+							Logger.log("Ignoring data set: " + dataSetCode + " - could not get image info");
+							correct = false;
+						}
+						if (!thisViewer.getImageResolutions(dataSetCode)) {
+							Logger.log("Ignoring data set: " + dataSetCode + " - could not get image resolutions");
+							correct = false;
+						}
+
+						if (correct) {
+							correctDataSetCodes.push(dataSetCode);
+						}
+					});
+
+					thisViewer.dataSetCodes = correctDataSetCodes;
 					thisViewer.loaded = true;
 					callback();
 				});
 
 				this.facade.getDataStoreBaseURLs(thisViewer.dataSetCodes, manager.registerCallback(function(response) {
-					thisViewer.dataSetCodeToDataStoreUrlMap = response.result;
+					if (response.error) {
+						alert("Could not load data store urls: " + JSON.stringify(response.error));
+					} else {
+						thisViewer.dataSetCodeToDataStoreUrlMap = response.result;
+					}
 				}));
 
 				this.facade.getImageInfo(thisViewer.dataSetCodes, manager.registerCallback(function(response) {
-					thisViewer.dataSetCodeToImageInfoMap = response.result;
+					if (response.error) {
+						alert("Could not load image info: " + JSON.stringify(response.error));
+					} else {
+						thisViewer.dataSetCodeToImageInfoMap = response.result;
+					}
 				}));
 
 				this.facade.getImageResolutions(thisViewer.dataSetCodes, manager.registerCallback(function(response) {
-					thisViewer.dataSetCodeToImageResolutionsMap = response.result;
+					if (response.error) {
+						alert("Could not load image resolution: " + JSON.stringify(response.error));
+					} else {
+						thisViewer.dataSetCodeToImageResolutionsMap = response.result;
+					}
 				}));
 			}
 		},
-- 
GitLab