From b16ed5f4eb67e4c1a1896d62f14551a8dc6a6773 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Fri, 11 Mar 2016 10:47:12 +0000 Subject: [PATCH] SSDM-3288 : ELN: DSS errors detection and show image preview when click on an image file. SVN: 35879 --- .../widgets/DatasetViewerController.js | 17 --------- .../DataSetForm/widgets/DatasetViewerModel.js | 30 +++++++++++++++ .../DataSetForm/widgets/DatasetViewerView.js | 38 +++++++++++-------- 3 files changed, 53 insertions(+), 32 deletions(-) diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js index 7d8874328ee..69411a0a3fc 100644 --- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js +++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js @@ -32,23 +32,6 @@ function DataSetViewerController(containerId, profile, sample, serverFacade, dat this._datasetViewerModel = new DataSetViewerModel(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableOpenDataset); this._datasetViewerView = new DataSetViewerView(this, this._datasetViewerModel); - this._isPreviewable = function(file) { - if(!file.isDirectory) { - var haveExtension = file.pathInDataSet.lastIndexOf("."); - if( haveExtension !== -1 && (haveExtension + 1 < file.pathInDataSet.length)) { - var extension = file.pathInDataSet.substring(haveExtension + 1, file.pathInDataSet.length).toLowerCase(); - - return extension === "svg" || - extension === "jpg" || extension === "jpeg" || - extension === "png" || - extension === "gif" || - extension === "html" || - extension === "pdf"; - } - } - return false; - } - this.init = function() { // Loading the datasets if(this._datasetViewerModel.datasets) { diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js index be299450846..92aeff36b94 100644 --- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js +++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js @@ -54,4 +54,34 @@ function DataSetViewerModel(containerId, profile, sample, serverFacade, datastor return $link; } + this._isPreviewableImage = function(pathInDataSet) { + var haveExtension = pathInDataSet.lastIndexOf("."); + if( haveExtension !== -1 && (haveExtension + 1 < pathInDataSet.length)) { + var extension = pathInDataSet.substring(haveExtension + 1, pathInDataSet.length).toLowerCase(); + + return extension === "svg" || + extension === "jpg" || extension === "jpeg" || + extension === "png" || + extension === "gif" || + extension === "html" || + extension === "pdf"; + } + return false; + } + + this.getPreviewLink = function(datasetCode, datasetFile) { + var previewLink = null; + if(this._isPreviewableImage(datasetFile.pathInDataSet)) { + var imageURLAsString = profile.getDefaultDataStoreURL() + "/" + datasetCode + "/" + datasetFile.pathInDataSet + "?sessionID=" + mainController.serverFacade.getSession(); + var onclick = "Util.showImage(\"" + imageURLAsString + "\");" + previewLink = "<span onclick='" + onclick + "' class='glyphicon glyphicon-search'></span>"; +// previewLink = FormUtil.getButtonWithIcon("glyphicon-search", function() { +// var imageURL = profile.getDefaultDataStoreURL() + '/' + datasetCode + "/" + datasetFile.pathInDataSet + "?sessionID=" + mainController.serverFacade.getSession(); +// Util.showImage(imageURL); +// event.stopPropagation(); +// }); + } + return previewLink; + } + } \ No newline at end of file diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js index b3479b2480c..593e6522dfe 100644 --- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js +++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js @@ -86,7 +86,7 @@ function DataSetViewerView(dataSetViewerController, dataSetViewerModel) { } }; - var onClick = function(event, data){ + var onClick = function(event, data) { }; @@ -98,21 +98,29 @@ function DataSetViewerView(dataSetViewerController, dataSetViewerModel) { var parentDatasetCode = data.node.data.datasetCode; var repaintEvent = function(code, files) { - var results = []; - for(var fIdx = 0; fIdx < files.result.length; fIdx++) { - var file = files.result[fIdx]; - - var titleValue = null; - if(file.isDirectory) { - titleValue = file.pathInListing; - } else { - var $fileLink = _this._dataSetViewerModel.getDownloadLink(code, file, true); - titleValue = $fileLink[0].outerHTML; - } - results.push({ title : titleValue, key : file.pathInDataSet, folder : file.isDirectory, lazy : file.isDirectory, datasetCode : parentDatasetCode }); + if(!files.result) { + Util.showError("Files can't be found, most probably the DSS is down, contact your admin."); + } else { + var results = []; + for(var fIdx = 0; fIdx < files.result.length; fIdx++) { + var file = files.result[fIdx]; + + var titleValue = null; + if(file.isDirectory) { + titleValue = file.pathInListing; + } else { + var $fileLink = _this._dataSetViewerModel.getDownloadLink(code, file, true); + titleValue = $fileLink[0].outerHTML; + var previewLink = _this._dataSetViewerModel.getPreviewLink(code, file); + if(previewLink) { + titleValue = previewLink + " " + titleValue; + } + } + results.push({ title : titleValue, key : file.pathInDataSet, folder : file.isDirectory, lazy : file.isDirectory, datasetCode : parentDatasetCode }); + } + + dfd.resolve(results); } - - dfd.resolve(results); }; _this.updateDirectoryView(parentDatasetCode, pathToLoad, true, repaintEvent); -- GitLab