X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/11af8512489b43c794d003e3cae945bb5793943e..6b0451124c0fe1cb7275ce973a069a125386558e:/app/assets/javascripts/index.js diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 9e386d54b..684685d51 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -7,6 +7,8 @@ //= require leaflet.share //= require leaflet.polyline //= require leaflet.query +//= require leaflet.contextmenu +//= require index/contextmenu //= require index/search //= require index/browse //= require index/export @@ -54,7 +56,7 @@ $(document).ready(function () { if (xhr.getResponseHeader('X-Page-Title')) { var title = xhr.getResponseHeader('X-Page-Title'); - document.title = decodeURIComponent(escape(title)); + document.title = decodeURIComponent(title); } $('head') @@ -75,9 +77,42 @@ $(document).ready(function () { var params = OSM.mapParams(); + // TODO internationalisation of the context menu strings var map = new L.OSM.Map("map", { zoomControl: false, - layerControl: false + layerControl: false, + contextmenu: true, + contextmenuWidth: 140, + contextmenuItems: [{ + text: 'Directions from here', + callback: function(e){ context_directionsfrom(e, map); } + }, { + text: 'Directions to here', + callback: function(e){ context_directionsto(e, map); } + }, '-', { + text: 'Add a note here', + callback: function(e){ context_addnote(e, map); } + }, { + text: 'Show address', + callback: function(e){ context_describe(e, map); } + }, { + text: 'Query features', + callback: function(e){ context_queryhere(e, map); } + }, { + text: 'Centre map here', + callback: function(e){ context_centrehere(e, map); } + }] + }); + + $(document).on('mousedown', function(e){ + if(e.shiftKey){ + map.contextmenu.disable(); // on firefox, shift disables our contextmenu. we explicitly do this for all browsers. + }else{ + map.contextmenu.enable(); + // we also decide whether to disable some options that only like high zoom + map.contextmenu.setDisabled(3, map.getZoom() < 12); + map.contextmenu.setDisabled(5, map.getZoom() < 14); + } }); map.attributionControl.setPrefix(''); @@ -148,7 +183,8 @@ $(document).ready(function () { } } - $('.leaflet-control .control-button').tooltip({placement: 'left', container: 'body'}); + var placement = $('html').attr('dir') === 'rtl' ? 'right' : 'left'; + $('.leaflet-control .control-button').tooltip({placement: placement, container: 'body'}); var expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10);