X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/36fac06bd5ae1b9c26e44945c41053e0ce6829f1..c75d725893c78175f27af02804e69e181df47ad7:/app/assets/javascripts/leaflet.share.js diff --git a/app/assets/javascripts/leaflet.share.js b/app/assets/javascripts/leaflet.share.js index 9c3d94218..eced07a7c 100644 --- a/app/assets/javascripts/leaflet.share.js +++ b/app/assets/javascripts/leaflet.share.js @@ -3,7 +3,10 @@ L.Control.Share = L.Control.extend({ options: { position: 'topright', - title: 'Share' + title: 'Share', + url: function(map) { + return ''; + } }, onAdd: function (map) { @@ -11,36 +14,38 @@ L.Control.Share = L.Control.extend({ classNames = className + ' leaflet-control-zoom leaflet-bar leaflet-control', container = L.DomUtil.create('div', classNames); - var self = this; - this._layer = new L.LayerGroup(); - this._layer.addTo(map); - this._event = undefined; - var link = L.DomUtil.create('a', 'leaflet-bar-part leaflet-bar-part-single', container); link.href = '#'; link.title = this.options.title; this._uiPane = L.DomUtil.create('div', 'leaflet-map-ui', map._container); + this._linkInput = L.DomUtil.create('input', '', this._uiPane); L.DomEvent .on(link, 'click', L.DomEvent.stopPropagation) .on(link, 'click', L.DomEvent.preventDefault) - .on(link, 'click', this.toggle, this) + .on(link, 'click', this._toggle, this) .on(link, 'dblclick', L.DomEvent.stopPropagation); + map.on('moveend layeradd layerremove', this._update, this); + return container; }, - toggle: function() { + _update: function (e) { + var center = map.getCenter().wrap(); + var layers = getMapLayers(); + this._linkInput.value = this.options.getUrl(map); + }, + + _toggle: function() { var controlContainer = $('.leaflet-control-container .leaflet-top.leaflet-right'); if ($(this._uiPane).is(':visible')) { $(this._uiPane).hide(); controlContainer.css({paddingRight: '0'}); } else { - $(this._uiPane) - .show() - .html(JST["templates/map/share"]()); + $(this._uiPane).show(); controlContainer.css({paddingRight: '200px'}); } }