Skip to content

Commit

Permalink
Added onlink handler to openlayers overlay layer
Browse files Browse the repository at this point in the history
  • Loading branch information
mbarto committed Feb 27, 2018
1 parent 283d06f commit f97994c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
32 changes: 32 additions & 0 deletions web/client/components/map/openlayers/__tests__/Layer-test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,38 @@ describe('Openlayers layer', () => {
expect(closed).toBe(true);
});

it('creates and overlay layer for openlayers map with onLink support', () => {
let container = document.createElement('div');
container.id = 'ovcontainer';
document.body.appendChild(container);

let element = document.createElement('div');
element.id = 'overlay-1';
let linkElement = document.createElement('a');
linkElement.className = 'link';
element.appendChild(linkElement);
document.body.appendChild(element);
let clicked = false;
let options = {
id: 'overlay-1',
position: [13, 43],
onLink: () => {
clicked = true;
}
};
// create layers
let layer = ReactDOM.render(
<OpenlayersLayer type="overlay"
options={options} map={map} />, document.getElementById('ovcontainer'));

expect(layer).toExist();
const overlayElement = document.getElementById('overlay-1-overlay');
expect(overlayElement).toExist();
const link = overlayElement.getElementsByClassName('link')[0];
link.click();
expect(clicked).toBe(true);
});

it('creates and overlay layer for openlayers map with no data-reactid attributes', () => {
let container = document.createElement('div');
container.id = 'ovcontainer';
Expand Down
6 changes: 6 additions & 0 deletions web/client/components/map/openlayers/plugins/OverlayLayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ const cloneOriginalOverlay = (original, options) => {
};
eventListener.add(close, 'click', onClose);
}
if (options.onLink) {
let links = cloned.getElementsByTagName('a');
for (let i = 0; i < links.length; i++) {
eventListener.add(links[i], 'click', options.onLink);
}
}
return cloned;
};

Expand Down

0 comments on commit f97994c

Please sign in to comment.