From 5aa7d1440cadfd8a6065518165a9de9700b59d19 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 16 Oct 2019 12:17:23 +0200 Subject: [PATCH] general overlays are always above user overlays --- .../src/main/js/map/window/AliasInfoWindow.js | 10 ++++++ .../js/map/window/AliasInfoWindow-test.js | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/frontend-js/src/main/js/map/window/AliasInfoWindow.js b/frontend-js/src/main/js/map/window/AliasInfoWindow.js index b4ba0dfea8..2d36ce0f75 100644 --- a/frontend-js/src/main/js/map/window/AliasInfoWindow.js +++ b/frontend-js/src/main/js/map/window/AliasInfoWindow.js @@ -114,6 +114,16 @@ AliasInfoWindow.prototype.createChartDiv = function (params) { var promises = []; var self = this; + overlays.sort(function (overlayA, overlayB) { + if (overlayA.getPublicOverlay() !== overlayB.getPublicOverlay()) { + if (overlayA.getPublicOverlay()) { + return -1; + } + return 1; + } + return overlayA.getOrder() - overlayB.getOrder(); + }); + overlays.forEach(function (overlay, i) { promises.push(overlay.getFullAliasById(self.getAlias().getId()).then(function (data) { var rowDiv = document.createElement("div"); diff --git a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js index 34d5f2d2bd..121874a5f0 100644 --- a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js +++ b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js @@ -427,6 +427,37 @@ describe('AliasInfoWindow', function () { assert.ok(div); }); }); + + it("overlay order", function () { + var map = helper.createCustomMap(); + var alias = helper.createAlias(map); + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map, + marker: helper.createMarker({element: alias, map: map}) + }); + var overlay1 = helper.createOverlay(); + overlay1.setOrder(2); + var overlay2 = helper.createOverlay(); + overlay2.setPublicOverlay(true); + overlay2.setOrder(10); + var overlay3 = helper.createOverlay(); + overlay3.setPublicOverlay(true); + overlay3.setOrder(9); + var overlay4 = helper.createOverlay(); + overlay4.setOrder(1); + var overlays = [overlay1, overlay2, overlay3, overlay4]; + + return aliasWindow.createChartDiv({overlays: overlays}).then(function (htmlDiv) { + var overlay1Position = htmlDiv.innerHTML.indexOf(overlay1.getName()); + var overlay2Position = htmlDiv.innerHTML.indexOf(overlay2.getName()); + var overlay3Position = htmlDiv.innerHTML.indexOf(overlay3.getName()); + var overlay4Position = htmlDiv.innerHTML.indexOf(overlay4.getName()); + assert.ok(overlay3Position < overlay2Position); + assert.ok(overlay2Position < overlay4Position); + assert.ok(overlay4Position < overlay1Position); + }); + }); }); it("createVcfString ", function () { -- GitLab