From a2632b70984e4f1ef4fd3d9f69adc77119380d24 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 28 May 2018 11:39:47 +0200
Subject: [PATCH] when adding new data overlay there is checkbox that allows to
 set info about goolge maps consent

---
 frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js     | 8 ++++++++
 .../api/projects/overlays/OverlayController.java          | 5 +++--
 .../mapviewer/api/projects/overlays/OverlayRestImpl.java  | 4 ++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
index b3a1a1a942..a2a207664e 100644
--- a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
@@ -458,6 +458,13 @@ OverlayPanel.prototype.openAddOverlayDialog = function () {
   content.appendChild(contentInput);
   content.appendChild(guiUtils.createNewLine());
 
+  var consentCheckbox = document.createElement("input");
+  consentCheckbox.type = "checkbox";
+  content.appendChild(consentCheckbox);
+  content.appendChild(guiUtils.createLabel("I am aware that this map is displayed under the terms of the <a href='https://cloud.google.com/maps-platform/terms/' target='_blank'>license of Google Maps Platform</a> and I agree to these terms. " +
+    "In particular, I warrant that this dataset does not contain Protected Health Information (as defined in and subject to HIPAA). "));
+
+
   var buttons = [{
     text: "UPLOAD",
     click: function () {
@@ -477,6 +484,7 @@ OverlayPanel.prototype.openAddOverlayDialog = function () {
           name: nameInput.value,
           description: descriptionInput.value,
           content: fileContent,
+          googleLicenseConsent: consentCheckbox.checked,
           filename: fileInput.value
         };
         GuiConnector.showProcessing();
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
index c2ac91b71f..61db38733a 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
@@ -100,10 +100,11 @@ public class OverlayController extends BaseController {
 			@RequestParam(value = "name") String name, //
 			@RequestParam(value = "description") String description, //
 			@RequestParam(value = "content") String content, //
-			@RequestParam(value = "filename") String filename, //
+            @RequestParam(value = "filename") String filename, //
+            @RequestParam(value = "googleLicenseConsent") String googleLicenseConsent, //			
 			@RequestParam(value = "type", defaultValue = "") String type //
 	) throws SecurityException, QueryException, IOException {
-		return overlayRestImp.addOverlay(token, projectId, name, description, content, filename, type);
+		return overlayRestImp.addOverlay(token, projectId, name, description, content, filename, type, googleLicenseConsent);
 	}
 
 	@RequestMapping(value = "/projects/{projectId}/overlays/{overlayId}", method = { RequestMethod.DELETE }, produces = { MediaType.APPLICATION_JSON_VALUE })
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
index 6afdfab064..596b9b41ca 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
@@ -212,7 +212,7 @@ public class OverlayRestImpl extends BaseRestImpl {
 		this.layoutDao = layoutDao;
 	}
 
-	public LayoutView addOverlay(String token, String projectId, String name, String description, String content, String filename, String type)
+	public LayoutView addOverlay(String token, String projectId, String name, String description, String content, String filename, String type, String googleLicenseConsent)
 			throws SecurityException, QueryException, IOException {
 		AuthenticationToken authenticationToken = getUserService().getToken(token);
 		User user = getUserService().getUserByToken(token);
@@ -239,7 +239,7 @@ public class OverlayRestImpl extends BaseRestImpl {
 			LayoutView layout = layoutService.createLayout(
 					new CreateLayoutParams()
 							.async(false).colorInputStream(stream).description(description).layoutFileName(filename).model(model).name(name).user(user)
-							.colorSchemaType(colorSchemaType).directory("."));
+							.colorSchemaType(colorSchemaType).directory(".").googleLicenseConsent(googleLicenseConsent.equalsIgnoreCase("true")));
 			return layoutService.getLayoutById(model, Integer.valueOf(layout.getIdObject()), authenticationToken);
 		} catch (InvalidColorSchemaException e) {
 			throw new QueryException(e.getMessage(), e);
-- 
GitLab