From 8ee7768f2b8f2319cb7534c219444784589165fa Mon Sep 17 00:00:00 2001 From: temi Date: Thu, 11 Nov 2021 14:50:15 +1100 Subject: [PATCH 1/3] #1360 fixed async download --- build.gradle | 2 +- grails-app/assets/javascripts/activity.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index eff990084..5963d8ebe 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { plugins { id 'war' } -version "5.2.3" +version "5.2.4-SNAPSHOT" group "au.org.ala" diff --git a/grails-app/assets/javascripts/activity.js b/grails-app/assets/javascripts/activity.js index 033a5e83a..9dea6012b 100644 --- a/grails-app/assets/javascripts/activity.js +++ b/grails-app/assets/javascripts/activity.js @@ -219,7 +219,7 @@ var ActivitiesAndRecordsViewModel = function (placeHolder, view, user, ignoreMap var elem = event.target ? event.target : event.srcElement; var asyncDownloadThreshold = DEFAULT_EMAIL_DOWNLOAD_THRESHOLD; if (elem) { - asyncDownloadThreshold = $(elem).attr("dataemailthreshold"); + asyncDownloadThreshold = $(elem).data("email-threshold"); } var url = constructQueryUrl(fcConfig.downloadProjectDataUrl, 0, false); From 5339d3c4eab7848e486de7fc1e12a8a94845d7f0 Mon Sep 17 00:00:00 2001 From: temi Date: Fri, 12 Nov 2021 10:21:12 +1100 Subject: [PATCH 2/3] #1360 fixed network error when downloading file --- .../controllers/au/org/ala/biocollect/DownloadController.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/grails-app/controllers/au/org/ala/biocollect/DownloadController.groovy b/grails-app/controllers/au/org/ala/biocollect/DownloadController.groovy index 90934f5b9..391657577 100644 --- a/grails-app/controllers/au/org/ala/biocollect/DownloadController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/DownloadController.groovy @@ -20,6 +20,7 @@ class DownloadController { } else { String fileExtension = params.fileExtension ?: 'zip' webService.proxyGetRequest(response, "${grailsApplication.config.ecodata.service.url}/search/downloadProjectDataFile/${params.id}?fileExtension=${fileExtension}", true, true) + return null } } From a376a522d0ecaf9c32c64c1db6276d374cc48a22 Mon Sep 17 00:00:00 2001 From: temi Date: Fri, 12 Nov 2021 12:08:46 +1100 Subject: [PATCH 3/3] #1360 added a test case --- .../biocollect/DownloadControllerSpec.groovy | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/test/groovy/au/org/ala/biocollect/DownloadControllerSpec.groovy b/src/test/groovy/au/org/ala/biocollect/DownloadControllerSpec.groovy index a815fff97..3c428ce51 100644 --- a/src/test/groovy/au/org/ala/biocollect/DownloadControllerSpec.groovy +++ b/src/test/groovy/au/org/ala/biocollect/DownloadControllerSpec.groovy @@ -1,5 +1,6 @@ package au.org.ala.biocollect +import au.org.ala.biocollect.merit.WebService import grails.test.mixin.TestFor import org.apache.http.HttpStatus import spock.lang.Specification @@ -17,6 +18,7 @@ class DownloadControllerSpec extends Specification { File hubPath File modelPath File configPath + WebService webService void setup() { @@ -32,6 +34,7 @@ class DownloadControllerSpec extends Specification { configPath.mkdir() controller.grailsApplication.config.app.file.script.path = scriptsPath.getAbsolutePath() + controller.grailsApplication.config.ecodata.service.url = "" // Setup three files, one that should be accessible, and others that should not File validFile = new File(modelPath, "validFile.js") @@ -145,4 +148,24 @@ class DownloadControllerSpec extends Specification { new File("${scriptsPath}${File.separator}${params.hub}${File.separator}${params.model}", params.filename).exists() response.status == HttpStatus.SC_NOT_FOUND } + + def "Data can be downloaded for a created file if id and file extension is provided"(String inputFormat, String expectedOutputFormat) { + setup: + String projectId = 'p1' + controller.webService = webService = Mock(WebService) + + when: + params.id = projectId + params.fileExtension = inputFormat + Map result = controller.downloadProjectDataFile() + + then: + 1 * webService.proxyGetRequest(response, '/search/downloadProjectDataFile/'+projectId+'?fileExtension='+expectedOutputFormat, true, true) + result == null + + where: + inputFormat | expectedOutputFormat + 'zip' | 'zip' + '' | 'zip' + } }