From fc58251524d520a9b3024771d62ff6c3ebf7723e Mon Sep 17 00:00:00 2001 From: sal153 Date: Sun, 5 Jan 2025 21:00:19 +1100 Subject: [PATCH 1/7] commit add remove image button #1646 --- ...es Turtle Incubation and Emergence Survey v1.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/forms/hub/agnesTurtleMonitoring/Agnes Turtle Incubation and Emergence Survey v1.json b/forms/hub/agnesTurtleMonitoring/Agnes Turtle Incubation and Emergence Survey v1.json index a743819d7..9eb0d420b 100644 --- a/forms/hub/agnesTurtleMonitoring/Agnes Turtle Incubation and Emergence Survey v1.json +++ b/forms/hub/agnesTurtleMonitoring/Agnes Turtle Incubation and Emergence Survey v1.json @@ -234,8 +234,11 @@ "dataType": "text", "name": "eventRemarks", "description": "", - "dwcAttribute": "eventRemarks", - "jsMain": "https://biocollect.ala.org.au/download/getScriptFile?hub=ala&filename=clearImageDateTimeHandler.js&model=agnesWaterTurtleNestMonitoring" + "dwcAttribute": "eventRemarks" + }, + { + "jsMain": "https://biocollect.ala.org.au/download/getScriptFile?hub=ala&filename=clearImageDateTimeHandler.js&model=agnesWaterTurtleNestMonitoring", + "type": "jsMain" } ], "viewModel": [ @@ -279,7 +282,10 @@ "source": "observationPhoto", "css": "img-responsive", "showMetadata": "false", - "preLabel": "Attach photos" + "preLabel": "Attach photos", + "displayOptions": { + "showRemoveButtonWithImage": true + } } ] }, From 3a333ff126119096fb1c99e1198dac8a3db5cd1b Mon Sep 17 00:00:00 2001 From: sal153 Date: Mon, 20 Jan 2025 12:42:05 +1100 Subject: [PATCH 2/7] commit progress update #1659 --- .../ala/biocollect/BioActivityController.groovy | 14 ++++++++++++-- .../swagger/model/BioCollectModels.groovy | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index 718c9ebc7..615f91eab 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -1820,6 +1820,12 @@ class BioActivityController { in = ParameterIn.PATH, required = true, description = "Activity id" + ), + @Parameter( + name = "includeSiteData", + in = ParameterIn.PATH, + description = "Include site data", + schema = @Schema(type = "boolean", defaultValue = "false") ) ], responses = [ @@ -1854,8 +1860,8 @@ class BioActivityController { ], security = @SecurityRequirement(name="auth") ) - @Path("ws/bioactivity/data/simplified/{id}") - def getOutputForActivitySimplified(String id){ + @Path("ws/bioactivity/data/simplified/{id}/{includeSiteData}") + def getOutputForActivitySimplified(String id, boolean includeSiteData){ String userId = userService.getCurrentUserId() def activity = activityService.get(id) String projectId = activity?.projectId @@ -1872,6 +1878,10 @@ class BioActivityController { model.error = "No project associated with the activity" } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { model = [activity: activity] + if (includeSiteData) { + model = activityAndOutputModel(activity, activity.projectId) + } + } else { response.status = 401 model.error = "Access denied: User is not an owner of this activity ${activity?.activityId}" diff --git a/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy b/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy index a057a2e2f..e087d9f16 100644 --- a/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy +++ b/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy @@ -310,7 +310,7 @@ class ProjectSearchResponse { List facets } -// classes for "ws/bioactivity/data/simplified/{id} +// classes for "ws/bioactivity/data/simplified/{id}/{includeSiteData} @JsonIgnoreProperties('metaClass') class GetOutputForActivitySimplifiedResponse { Map activity From 2cc3859ed6867dfcb03875b9afd93a61e0199352 Mon Sep 17 00:00:00 2001 From: sal153 Date: Wed, 22 Jan 2025 11:18:44 +1100 Subject: [PATCH 3/7] commit progress update #1659 --- .../au/org/ala/biocollect/BioActivityController.groovy | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index 615f91eab..c645ba856 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -1823,7 +1823,7 @@ class BioActivityController { ), @Parameter( name = "includeSiteData", - in = ParameterIn.PATH, + in = ParameterIn.QUERY, description = "Include site data", schema = @Schema(type = "boolean", defaultValue = "false") ) @@ -1862,6 +1862,9 @@ class BioActivityController { ) @Path("ws/bioactivity/data/simplified/{id}/{includeSiteData}") def getOutputForActivitySimplified(String id, boolean includeSiteData){ + log.debug("id = ${id}") + log.debug("includeSiteData = ${includeSiteData}") + String userId = userService.getCurrentUserId() def activity = activityService.get(id) String projectId = activity?.projectId @@ -1879,7 +1882,7 @@ class BioActivityController { } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { model = [activity: activity] if (includeSiteData) { - model = activityAndOutputModel(activity, activity.projectId) + model.site = model.activity?.siteId ? siteService.get(model.activity.siteId, [view:'brief']) : null } } else { From 4ddc279eaa9bd141a7a5f555a610282eb30f2ec8 Mon Sep 17 00:00:00 2001 From: sal153 Date: Wed, 22 Jan 2025 14:14:00 +1100 Subject: [PATCH 4/7] commit progress update #1659 --- .../au/org/ala/biocollect/BioActivityController.groovy | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index c645ba856..0456d4849 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -1860,7 +1860,7 @@ class BioActivityController { ], security = @SecurityRequirement(name="auth") ) - @Path("ws/bioactivity/data/simplified/{id}/{includeSiteData}") + @Path("ws/bioactivity/data/simplified/{id}") def getOutputForActivitySimplified(String id, boolean includeSiteData){ log.debug("id = ${id}") log.debug("includeSiteData = ${includeSiteData}") @@ -1882,7 +1882,13 @@ class BioActivityController { } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { model = [activity: activity] if (includeSiteData) { - model.site = model.activity?.siteId ? siteService.get(model.activity.siteId, [view:'brief']) : null + model.site = siteService.get(activity.siteId).collect { + [ + siteId: it.siteId, + name : it.name, + geoJson: it.geoIndex + ] + } } } else { From b46ac0d6b855d8b7712e7a53c3915e83f31c8c44 Mon Sep 17 00:00:00 2001 From: sal153 Date: Wed, 22 Jan 2025 18:09:52 +1100 Subject: [PATCH 5/7] commit progress update #1659 --- .../au/org/ala/biocollect/BioActivityController.groovy | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index 0456d4849..c8af3dfbc 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -1882,13 +1882,8 @@ class BioActivityController { } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { model = [activity: activity] if (includeSiteData) { - model.site = siteService.get(activity.siteId).collect { - [ - siteId: it.siteId, - name : it.name, - geoJson: it.geoIndex - ] - } + def activitySite = siteService.get(model.activity.siteId, [view: 'brief']) + model.site = [siteId: activitySite.siteId, name:activitySite.name, geoJson:activitySite.geoIndex] } } else { From 06ba46738cbe6dd283dff79cfce81141612da70c Mon Sep 17 00:00:00 2001 From: sal153 Date: Fri, 24 Jan 2025 09:34:33 +1100 Subject: [PATCH 6/7] commit progress update #1659 --- .../au/org/ala/biocollect/BioActivityController.groovy | 10 +++++----- .../au/org/ala/biocollect/merit/ActivityService.groovy | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index c8af3dfbc..7bff8e927 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -27,6 +27,7 @@ import org.apache.commons.io.FilenameUtils import org.apache.http.HttpStatus import org.apache.http.entity.ContentType import org.grails.web.json.JSONArray +import org.grails.web.json.JSONObject import org.springframework.context.MessageSource import org.springframework.web.multipart.MultipartFile @@ -1866,7 +1867,7 @@ class BioActivityController { log.debug("includeSiteData = ${includeSiteData}") String userId = userService.getCurrentUserId() - def activity = activityService.get(id) + def activity = activityService.get(id, null, userId, false,includeSiteData) String projectId = activity?.projectId def model = [:] @@ -1880,12 +1881,11 @@ class BioActivityController { } else if (!projectId) { model.error = "No project associated with the activity" } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { - model = [activity: activity] if (includeSiteData) { - def activitySite = siteService.get(model.activity.siteId, [view: 'brief']) - model.site = [siteId: activitySite.siteId, name:activitySite.name, geoJson:activitySite.geoIndex] + activity.site = new JSONObject([siteId:activity.site.siteId, name:activity.site.name, geoJson:activity.site.geoIndex]) + activity.remove('siteId') } - + model = [activity: activity] } else { response.status = 401 model.error = "Access denied: User is not an owner of this activity ${activity?.activityId}" diff --git a/grails-app/services/au/org/ala/biocollect/merit/ActivityService.groovy b/grails-app/services/au/org/ala/biocollect/merit/ActivityService.groovy index 336769fc2..7c52675d5 100644 --- a/grails-app/services/au/org/ala/biocollect/merit/ActivityService.groovy +++ b/grails-app/services/au/org/ala/biocollect/merit/ActivityService.groovy @@ -77,7 +77,7 @@ class ActivityService { webService.getJson(grailsApplication.config.ecodata.service.url + '/activity/getDistinctSitesForProject/'+ id) } - def get(id, version = null, userId = null, hideMemberOnlyFlds = false) { + def get(id, version = null, userId = null, hideMemberOnlyFlds = false, includeSiteData = false) { def params = '?hideMemberOnlyFlds=' + hideMemberOnlyFlds if (version) { params += '&version=' + version @@ -85,6 +85,9 @@ class ActivityService { if (userId) { params += '&userId=' + userId } + if (includeSiteData) { + params += '&view=site' + } def activity = webService.getJson(grailsApplication.config.ecodata.service.url + '/activity/' + id + params) activity From 82b6d575083d8fddd854b3742d801062dff63387 Mon Sep 17 00:00:00 2001 From: sal153 Date: Fri, 24 Jan 2025 13:02:39 +1100 Subject: [PATCH 7/7] commit review updates #1659 --- .../au/org/ala/biocollect/BioActivityController.groovy | 1 - .../au/org/ala/biocollect/swagger/model/BioCollectModels.groovy | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy index 7bff8e927..0f8ae23e8 100644 --- a/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy +++ b/grails-app/controllers/au/org/ala/biocollect/BioActivityController.groovy @@ -1883,7 +1883,6 @@ class BioActivityController { } else if (projectService.isUserAdminForProject(userId, projectId) || activityService.isUserOwnerForActivity(userId, activity?.activityId)) { if (includeSiteData) { activity.site = new JSONObject([siteId:activity.site.siteId, name:activity.site.name, geoJson:activity.site.geoIndex]) - activity.remove('siteId') } model = [activity: activity] } else { diff --git a/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy b/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy index e087d9f16..a057a2e2f 100644 --- a/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy +++ b/src/main/groovy/au/org/ala/biocollect/swagger/model/BioCollectModels.groovy @@ -310,7 +310,7 @@ class ProjectSearchResponse { List facets } -// classes for "ws/bioactivity/data/simplified/{id}/{includeSiteData} +// classes for "ws/bioactivity/data/simplified/{id} @JsonIgnoreProperties('metaClass') class GetOutputForActivitySimplifiedResponse { Map activity