From e4b815d4d6633ba3cd61e2715a630a53013632c2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 10 Jan 2014 22:44:56 +0100 Subject: [PATCH] Add optional URL for logos --- src/ol/control/logocontrol.js | 24 +++++++++++++++++------- src/ol/framestate.js | 2 +- src/ol/renderer/layerrenderer.js | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/ol/control/logocontrol.js b/src/ol/control/logocontrol.js index e1ebaa359a..a25d09ced9 100644 --- a/src/ol/control/logocontrol.js +++ b/src/ol/control/logocontrol.js @@ -90,15 +90,25 @@ ol.control.Logo.prototype.updateElement_ = function(frameState) { } } - var image, logoElement; - for (logo in logos) { - if (!(logo in logoElements)) { + var image, logoElement, logoKey; + for (logoKey in logos) { + if (!(logoKey in logoElements)) { image = new Image(); - image.src = logo; - logoElement = goog.dom.createElement(goog.dom.TagName.LI); - logoElement.appendChild(image); + image.src = logoKey; + var logoValue = logos[logoKey]; + var child; + if (logoValue === '') { + child = image; + } else { + child = goog.dom.createDom(goog.dom.TagName.A, { + 'href': logoValue, + 'target': '_blank' + }); + child.appendChild(image); + } + logoElement = goog.dom.createDom(goog.dom.TagName.LI, undefined, child); goog.dom.appendChild(this.ulElement_, logoElement); - logoElements[logo] = logoElement; + logoElements[logoKey] = logoElement; } } diff --git a/src/ol/framestate.js b/src/ol/framestate.js index b86c897ef9..027ff9ea60 100644 --- a/src/ol/framestate.js +++ b/src/ol/framestate.js @@ -25,7 +25,7 @@ goog.require('ol.layer.LayerState'); * index: number, * layersArray: Array., * layerStates: Object., - * logos: Object., + * logos: Object., * pixelToCoordinateMatrix: goog.vec.Mat4.Number, * postRenderFunctions: Array., * size: ol.Size, diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index bd7ecd8e07..de430d81a8 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -175,7 +175,7 @@ ol.renderer.Layer.prototype.updateAttributions = ol.renderer.Layer.prototype.updateLogos = function(frameState, source) { var logo = source.getLogo(); if (goog.isDef(logo)) { - frameState.logos[logo] = true; + frameState.logos[logo] = ''; } };