Add share button to map
This commit is contained in:
parent
7f749e9b18
commit
36fac06bd5
5 changed files with 65 additions and 0 deletions
|
@ -14,6 +14,7 @@
|
|||
//= require map
|
||||
//= require menu
|
||||
//= require sidebar
|
||||
//= require leaflet.share
|
||||
//= require richtext
|
||||
//= require resize
|
||||
//= require geocoder
|
||||
|
|
|
@ -21,9 +21,12 @@ $(document).ready(function () {
|
|||
|
||||
OSM.mapUI().addTo(map);
|
||||
|
||||
L.control.share().addTo(map);
|
||||
|
||||
L.control.locate({
|
||||
position: 'topright'
|
||||
}).addTo(map);
|
||||
|
||||
L.control.scale().addTo(map);
|
||||
|
||||
map.attributionControl.setPrefix(permalinks);
|
||||
|
|
51
app/assets/javascripts/leaflet.share.js
Normal file
51
app/assets/javascripts/leaflet.share.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
//= require templates/map/share
|
||||
|
||||
L.Control.Share = L.Control.extend({
|
||||
options: {
|
||||
position: 'topright',
|
||||
title: 'Share'
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
var className = 'leaflet-control-locate',
|
||||
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);
|
||||
|
||||
L.DomEvent
|
||||
.on(link, 'click', L.DomEvent.stopPropagation)
|
||||
.on(link, 'click', L.DomEvent.preventDefault)
|
||||
.on(link, 'click', this.toggle, this)
|
||||
.on(link, 'dblclick', L.DomEvent.stopPropagation);
|
||||
|
||||
return container;
|
||||
},
|
||||
|
||||
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"]());
|
||||
controlContainer.css({paddingRight: '200px'});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
L.control.share = function(options) {
|
||||
return new L.Control.Share(options);
|
||||
};
|
7
app/assets/javascripts/templates/map/share.jst.ejs
Normal file
7
app/assets/javascripts/templates/map/share.jst.ejs
Normal file
|
@ -0,0 +1,7 @@
|
|||
<h2><%- I18n.t('javascripts.share.title') %></h2>
|
||||
|
||||
<input type='text' id='share-coordinates' />
|
||||
|
||||
<button id='cancel'>
|
||||
<%- I18n.t('javascripts.share.cancel') %>
|
||||
</button>
|
|
@ -2039,6 +2039,9 @@ en:
|
|||
last_changed: "Last changed"
|
||||
ago_html: "%{when} ago"
|
||||
javascripts:
|
||||
share:
|
||||
title: "Share"
|
||||
cancel: "Cancel"
|
||||
map:
|
||||
base:
|
||||
standard: Standard
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue