From 2e539492fad7d9bfda98f81a59547ef6f77b45b1 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 15 Apr 2014 10:00:31 +0000 Subject: [PATCH] SSDM-109 : Ability to show images on the ELN UI SVN: 31363 --- .../newbrowser/1/as/initialize-master-data.py | 5 +- .../newbrowser/html/img/image_loading.gif | Bin 0 -> 3504 bytes .../newbrowser/html/img/image_unavailable.png | Bin 0 -> 9168 bytes .../newbrowser/html/js/server/ServerFacade.js | 41 ++++++++++++ .../newbrowser/html/js/views/SampleTable.js | 59 +++++++++++++++--- 5 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_loading.gif create mode 100644 plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_unavailable.png diff --git a/plasmid/source/core-plugins/newbrowser/1/as/initialize-master-data.py b/plasmid/source/core-plugins/newbrowser/1/as/initialize-master-data.py index 90d740da575..84c12bedda6 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/initialize-master-data.py +++ b/plasmid/source/core-plugins/newbrowser/1/as/initialize-master-data.py @@ -30,4 +30,7 @@ elnExperimentTypeS.setGeneratedCodePrefix('C') # The default experiment used by the UI, assigned automatically to new samples folderType = tr.getOrCreateNewExperimentType("ELN_FOLDER") -folderType.setDescription("Folder") \ No newline at end of file +folderType.setDescription("Folder") + +# Preview Image +tr.getOrCreateNewDataSetType("ELN_PREVIEW") diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_loading.gif b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf370f3bab7181e92f1ba61b2ada3a7776494f33 GIT binary patch literal 3504 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 literal 0 HcmV?d00001 diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_unavailable.png b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/img/image_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..937697162b18c8f81191e773e418e02c7e6d5cda GIT binary patch literal 9168 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 Tz>6ys6iWBi<n!<S`SRZYFYGW1 literal 0 HcmV?d00001 diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js index c1df34659eb..22d54e9f84b 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js @@ -248,6 +248,47 @@ function ServerFacade(openbisServer) { return result; } + this.searchDataSetsWithTypeForSamples = function(dataSetTypeCode, samplesPermIds, callbackFunction) + { + var sampleMatchClauses = [] + + samplesPermIds.forEach(function(samplesPermId){ + sampleMatchClauses.push({ + "@type":"AttributeMatchClause", + fieldType : "ATTRIBUTE", + attribute : "PERM_ID", + desiredValue : samplesPermId + }); + }); + + var sampleCriteria = { + matchClauses : sampleMatchClauses, + operator : "MATCH_ANY_CLAUSES" + } + + var sampleSubCriteria = { + "@type" : "SearchSubCriteria", + "targetEntityKind" : "SAMPLE", + "criteria" : sampleCriteria + } + + var dataSetMatchClauses = [{ + "@type":"AttributeMatchClause", + fieldType : "ATTRIBUTE", + attribute : "TYPE", + desiredValue : dataSetTypeCode + }] + + var dataSetCriteria = + { + matchClauses : dataSetMatchClauses, + subCriterias : [ sampleSubCriteria ], + operator : "MATCH_ALL_CLAUSES" + }; + + this.openbisServer.searchForDataSets(dataSetCriteria, callbackFunction) + } + this.searchWithUniqueId = function(sampleIdentifier, callbackFunction) { var matchClauses = [ diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js index 9bf3a077438..40ec3d6a0df 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js @@ -145,7 +145,7 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe Util.blockUI(); var localReference = this; this.serverFacade.searchWithType(this.sampleTypeCode, null, function(data) { - localReference.reloadWithSamples(data); + localReference.reloadWithSamples(data); Util.unblockUI(); }); } @@ -205,7 +205,7 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe $("#tableContainer").append("<div class='wrapper' style='clear: both; padding-top: 10px;'>"); var tableTemplate = "<table style='width:100%;' class='table table-hover' id=\"sample-table\"><thead>"; - tableTemplate += "<tr class=\"sample-table-header interactive\"><th sort-attribute='code'>Code</th>"; + tableTemplate += "<tr class=\"sample-table-header interactive\"><th sort-attribute='code'>Code</th><th sort-attribute=''>Preview</th>"; for (var i = 0; i < sampleTypePropertiesDisplayNames.length; i++) { tableTemplate += "<th sort-property='" + sampleTypeProperties[i] + "'>" + sampleTypePropertiesDisplayNames[i]+ "</th>"; } @@ -371,11 +371,10 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe .on("click", onClickFunction) .selectAll("td").data(function(sample) { var tableFields = null; - if(localReference.isSearch) { - tableFields = [sample.code, sample.sampleTypeCode, sample.properties, sample.properties ]; + tableFields = [sample.code, "<img data-preview-loaded='false' id='preview"+sample.identifier.replace(/\//g,'-')+"' src='./img/image_loading.gif' style='height:80px;'></img>", sample.sampleTypeCode, sample.properties, sample.properties ]; } else { - tableFields = [sample.code]; + tableFields = [sample.code, "<img data-preview-loaded='false' id='preview"+sample.identifier.replace(/\//g,'-')+"' src='./img/image_loading.gif' style='height:80px;'></img>"]; for(var i=0; i<sampleTypeProperties.length; i++) { var tableFieldValue = sample.properties[sampleTypeProperties[i]]; if(!tableFieldValue) { @@ -450,7 +449,7 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe .attr("class", "sample-table-data-cell") .html( function(d, index) { - if (localReference.isSearch && index == 2) { + if (localReference.isSearch && index == 3) { if (searchText && searchText.length > 0 && d) { for (propertyName in d) { var propertyValue = d[propertyName]; @@ -473,7 +472,7 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe } } } - } else if (localReference.isSearch && index == 3) { + } else if (localReference.isSearch && index == 4) { if (searchText && searchText.length > 0 && d) { for (propertyName in d) { @@ -745,5 +744,51 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe this._start = start; this._samplesToPaint = this._filteredSamples.slice(this._start, this._start + this._limit); this.repaint(); + this._reloadPreviewImages(); + } + + this._updateLoadingToNotAvailableImage = function() { + var notLoadedImages = $("[data-preview-loaded='false']"); + notLoadedImages.attr('src', "./img/image_unavailable.png"); + } + + this._reloadPreviewImages = function() { + var _this = this; + var previewCallback = function(data) { + var requestChain = []; + data.result.forEach(function(dataset) { requestChain.push( + function() { + var listFilesForDataSetCallback = function(dataFiles) { + var elementId = 'preview'+dataset.sampleIdentifierOrNull.replace(/\//g,'-'); + var downloadUrl = _this.profile.allDataStores[0].downloadUrl + '/' + dataset.code + "/" + dataFiles.result[1].pathInDataSet + "?sessionID=" + _this.serverFacade.getSession(); + + var img = $("#" + elementId); + img.attr('src', downloadUrl); + img.attr('data-preview-loaded', 'true'); + + //Run next + var next = requestChain.pop(); + if (next) { + next(); + } else { + _this._updateLoadingToNotAvailableImage(); + } + }; + _this.serverFacade.listFilesForDataSet(dataset.code, "/", true, listFilesForDataSetCallback); + } + );}); + //Run first + var next = requestChain.pop(); + if (next) { + next(); + } else { + _this._updateLoadingToNotAvailableImage(); + } + }; + + var samplePermIds = []; + this._samplesToPaint.forEach(function(sample) {samplePermIds.push(sample.permId);}); + + this.serverFacade.searchDataSetsWithTypeForSamples("ELN_PREVIEW", samplePermIds, previewCallback); } } -- GitLab