From dc6957b7cf1abffaaa42d9ba83eccaaca9b8f36e Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 20 Nov 2018 16:11:30 +0100 Subject: [PATCH] when adding/editing overlay hide checkbox with google maps consent if it's not necessary --- .../src/main/js/gui/AddOverlayDialog.js | 21 +++-- .../src/main/js/gui/leftPanel/OverlayPanel.js | 22 +++-- .../src/test/js/gui/AddOverlayDialog-test.js | 42 ++++++++-- .../js/gui/leftPanel/OverlayPanel-test.js | 83 ++++++++++++------- 4 files changed, 115 insertions(+), 53 deletions(-) diff --git a/frontend-js/src/main/js/gui/AddOverlayDialog.js b/frontend-js/src/main/js/gui/AddOverlayDialog.js index 1754a7c1ed..8a978010b5 100644 --- a/frontend-js/src/main/js/gui/AddOverlayDialog.js +++ b/frontend-js/src/main/js/gui/AddOverlayDialog.js @@ -107,15 +107,20 @@ AddOverlayDialog.prototype.createGui = function () { content.appendChild(contentInput); content.appendChild(guiUtils.createNewLine()); - var consentCheckbox = Functions.createElement({type: "input", name: "overlay-google-consent"}); - consentCheckbox.type = "checkbox"; - content.appendChild(consentCheckbox); - content.appendChild(guiUtils.createLabel("I am aware that if this map is displayed using Google Maps API, " + - "it falls under their license <a href='https://cloud.google.com/maps-platform/terms/' target='_blank'>" + - "https://cloud.google.com/maps-platform/terms/</a>, to which I agree. I warrant that this dataset contains no " + - "Protected Health Information (as defined in and subject to HIPAA).")); + if (self.getProject().getMapCanvasType() === "GOOGLE_MAPS_API") { + var consentCheckbox = Functions.createElement({ + type: "input", + name: "overlay-google-consent", + inputType: "checkbox" + }); + content.appendChild(consentCheckbox); + content.appendChild(guiUtils.createLabel("I am aware that if this map is displayed using Google Maps API, " + + "it falls under their license <a href='https://cloud.google.com/maps-platform/terms/' target='_blank'>" + + "https://cloud.google.com/maps-platform/terms/</a>, to which I agree. I warrant that this dataset contains no " + + "Protected Health Information (as defined in and subject to HIPAA).")); - content.appendChild(guiUtils.createNewLine()); + content.appendChild(guiUtils.createNewLine()); + } self.getElement().appendChild(content); }; diff --git a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js index 53bf6d32b6..6409037991 100644 --- a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js +++ b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js @@ -355,15 +355,19 @@ OverlayPanel.prototype.openEditOverlayDialog = function (overlay) { row = guiUtils.createTableRow([guiUtils.createLabel("Description: "), descriptionInput]); content.appendChild(row); - var consentCheckbox = document.createElement("input"); - consentCheckbox.type = "checkbox"; - consentCheckbox.checked = overlay.isGoogleLicenseConsent(); - - row = guiUtils.createTableRow([guiUtils.createLabel("I am aware that if this map is displayed using Google Maps API, " + - "it falls under their license <a href='https://cloud.google.com/maps-platform/terms/' target='_blank'>" + - "https://cloud.google.com/maps-platform/terms/</a>, to which I agree. I warrant that this dataset contains no " + - "Protected Health Information (as defined in and subject to HIPAA)."), consentCheckbox]); - content.appendChild(row); + var consentCheckbox = Functions.createElement({ + type: "input", + name: "overlay-google-consent", + inputType: "checkbox" + }); + + if (self.getProject().getMapCanvasType() === "GOOGLE_MAPS_API") { + row = guiUtils.createTableRow([guiUtils.createLabel("I am aware that if this map is displayed using Google Maps API, " + + "it falls under their license <a href='https://cloud.google.com/maps-platform/terms/' target='_blank'>" + + "https://cloud.google.com/maps-platform/terms/</a>, to which I agree. I warrant that this dataset contains no " + + "Protected Health Information (as defined in and subject to HIPAA)."), consentCheckbox]); + content.appendChild(row); + } var buttons = [{ text: "SAVE", diff --git a/frontend-js/src/test/js/gui/AddOverlayDialog-test.js b/frontend-js/src/test/js/gui/AddOverlayDialog-test.js index c823a62672..509a417300 100644 --- a/frontend-js/src/test/js/gui/AddOverlayDialog-test.js +++ b/frontend-js/src/test/js/gui/AddOverlayDialog-test.js @@ -14,13 +14,7 @@ describe('AddOverlayDialog', function () { it('addOverlay', function () { var dialog; return ServerConnector.getProject().then(function (project) { - dialog = new AddOverlayDialog({ - element: testDiv, - project: project, - customMap: null, - configuration: helper.getConfiguration(), - serverConnector: ServerConnector - }); + dialog = createDialog(project); dialog.setFileContent("s1\n"); assert.equal(0, logger.getWarnings().length); @@ -28,4 +22,38 @@ describe('AddOverlayDialog', function () { }); }); + /** + * + * @param {Project} project + * @returns {AddOverlayDialog} + */ + function createDialog(project) { + return new AddOverlayDialog({ + element: testDiv, + project: project, + customMap: null, + configuration: helper.getConfiguration(), + serverConnector: ServerConnector + }); + } + + describe('constructor', function () { + it('hide consent checkbox for non google maps api project', function () { + var dialog; + return ServerConnector.getProject().then(function (project) { + project.setMapCanvasType("OPEN_LAYERS"); + dialog = createDialog(project); + assert.equal(0, $("[name='overlay-google-consent']", dialog.getElement()).length); + }); + }); + it('hide consent checkbox for non google maps api project', function () { + var dialog; + return ServerConnector.getProject().then(function (project) { + project.setMapCanvasType("GOOGLE_MAPS_API"); + dialog = createDialog(project); + assert.ok($("[name='overlay-google-consent']", dialog.getElement()).length > 0); + }); + }); + }); + }); diff --git a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js index e36f55db5a..b6a96eef7b 100644 --- a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js @@ -149,47 +149,72 @@ describe('OverlayPanel', function () { describe('openAddOverlayDialog', function () { it('open', function () { - var map = helper.createCustomMap(); + it('open', function () { + var map = helper.createCustomMap(); - var panel = createOverlayPanel(map); + var panel = createOverlayPanel(map); - return panel.openAddOverlayDialog().then(function () { - return panel.destroy(); + return panel.openAddOverlayDialog().then(function () { + return panel.destroy(); + }); }); - }); - it('trigger onAddOverlay event handler', function () { - var map = helper.createCustomMap(); - var panel = createOverlayPanel(map); + it('trigger onAddOverlay event handler', function () { + var map = helper.createCustomMap(); + var panel = createOverlayPanel(map); + + return panel.init().then(function () { + return panel.openAddOverlayDialog(); + }).then(function () { + var overlay = helper.createOverlay(panel.getProject().getModels()[0]); + return panel._addOverlayDialog.callListeners("onAddOverlay", overlay); + }).then(function () { + return panel.destroy(); + }); + }); + }); + }); - return panel.init().then(function () { - return panel.openAddOverlayDialog(); + describe('openEditOverlayDialog', function () { + it('open for map with Google Maps Api', function () { + helper.loginAsAdmin(); + var panel; + return ServerConnector.getProject().then(function (project) { + project.setMapCanvasType("GOOGLE_MAPS_API"); + panel = new OverlayPanel({ + element: testDiv, + customMap: helper.createCustomMap(project) + }); + return panel.init(); }).then(function () { - var overlay = helper.createOverlay(panel.getProject().getModels()[0]); - return panel._addOverlayDialog.callListeners("onAddOverlay", overlay); + var backgroundLink = $("[name='editButton']", panel.getElement())[0]; + assert.ok($(backgroundLink).attr("data")); + return helper.triggerJqueryEvent(backgroundLink, "click"); }).then(function () { + assert.equal(1, $("[name='overlay-google-consent']").length); return panel.destroy(); }); }); - }); - it('openEditOverlayDialog', function () { - helper.loginAsAdmin(); - var panel; - return ServerConnector.getProject().then(function (project) { - panel = new OverlayPanel({ - element: testDiv, - customMap: helper.createCustomMap(project) + it('open for map without Google Maps Api', function () { + helper.loginAsAdmin(); + var panel; + return ServerConnector.getProject().then(function (project) { + project.setMapCanvasType("OPEN_LAYERS"); + panel = new OverlayPanel({ + element: testDiv, + customMap: helper.createCustomMap(project) + }); + return panel.init(); + }).then(function () { + var backgroundLink = $("[name='editButton']", panel.getElement())[0]; + assert.ok($(backgroundLink).attr("data")); + return helper.triggerJqueryEvent(backgroundLink, "click"); + }).then(function () { + assert.equal(0, $("[name='overlay-google-consent']").length); + return panel.destroy(); }); - return panel.init(); - }).then(function () { - var backgroundLink = $("[name='editButton']", panel.getElement())[0]; - assert.ok($(backgroundLink).attr("data")); - return helper.triggerJqueryEvent(backgroundLink, "click"); - }).then(function () { - return panel.destroy(); }); - }); - + }); }); -- GitLab