From: Tom Hughes Date: Sun, 12 Feb 2017 15:04:50 +0000 (+0000) Subject: Merge remote-tracking branch 'openstreetmap/pull/1030' into next X-Git-Tag: live~3604^2~4 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/043d29fd7eb72048cf5d07edfbc20ec5c25af708?hp=-c Merge remote-tracking branch 'openstreetmap/pull/1030' into next --- 043d29fd7eb72048cf5d07edfbc20ec5c25af708 diff --combined Vendorfile index 361f2c843,6826e8e16..93ad74c7b --- a/Vendorfile +++ b/Vendorfile @@@ -11,22 -11,27 +11,27 @@@ folder 'vendor/assets' d end folder 'leaflet' do - file 'leaflet.js', 'http://cdn.leafletjs.com/leaflet-0.7.3/leaflet-src.js' - file 'leaflet.css', 'http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css' + file 'leaflet.js', 'https://unpkg.com/leaflet@1.0.3/dist/leaflet-src.js' + file 'leaflet.css', 'https://unpkg.com/leaflet@1.0.3/dist/leaflet.css' [ 'layers.png', 'layers-2x.png', 'marker-icon.png', 'marker-icon-2x.png', 'marker-shadow.png' ].each do |image| - file "images/#{image}", "http://cdn.leafletjs.com/leaflet-0.7.3/images/#{image}" + file "images/#{image}", "https://unpkg.com/leaflet@1.0.3/dist/images/#{image}" end + from 'git://github.com/aratcliffe/Leaflet.contextmenu.git' do + file 'leaflet.contextmenu.js', 'dist/leaflet.contextmenu.js' + file 'leaflet.contextmenu.css', 'dist/leaflet.contextmenu.css' + end + from 'git://github.com/kajic/leaflet-locationfilter.git' do file 'leaflet.locationfilter.css', 'src/locationfilter.css' file 'leaflet.locationfilter.js', 'src/locationfilter.js' folder 'img', 'src/img' end - from 'git://github.com/domoritz/leaflet-locatecontrol.git' do + from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.54.0' do file 'leaflet.locate.js', 'src/L.Control.Locate.js' end @@@ -34,7 -39,7 +39,7 @@@ file 'leaflet.osm.js', 'leaflet-osm.js' end - from 'git://github.com/jieter/Leaflet.encoded.git' do + from 'git://github.com/jieter/Leaflet.encoded.git', :tag => '0.0.8' do file 'leaflet.polyline.js', 'Polyline.encoded.js' end end @@@ -49,24 -54,12 +54,24 @@@ from 'git://github.com/openstreetmap/iD', :branch => 'release' do folder 'iD/img', 'dist/img' folder 'iD/locales', 'dist/locales' + folder 'iD/traffico', 'dist/traffico' + folder 'iD/mapillary-js', 'dist/mapillary-js' + file 'iD.css.erb', 'dist/iD.css' do |path| - rewrite(path) { |content| content.gsub(/url\('?(img\/[^')]+)'?\)/, 'url(<%= asset_path("iD/\1") %>)') } + rewrite(path) do |content| + content.gsub(/url\('?(img\/[^')]+)'?\)/, 'url(<%= asset_path("iD/\1") %>)') + end + end + + file 'iD/traffico/stylesheets/traffico.css.erb', 'dist/traffico/stylesheets/traffico.css' do |path| + rewrite(path) do |content| + content.gsub(/url\("?\.\.\/([^#?")]+)([^"]*)"?\)/, 'url(<%= asset_path("iD/traffico/\1") %>\2)') + end end + + File.delete('vendor/assets/iD/iD/traffico/stylesheets/traffico.css') + file 'iD.js', 'dist/iD.js' - file 'presets.js', 'dist/presets.js' - file 'imagery.js', 'dist/imagery.js' end end diff --combined app/assets/javascripts/index.js index 9d7122e4d,684685d51..096290806 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@@ -7,6 -7,8 +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 @@@ -75,9 -77,42 +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(''); @@@ -95,25 -130,14 +130,25 @@@ L.OSM.zoom({position: position}) .addTo(map); - L.control.locate({ + var locate = L.control.locate({ position: position, + icon: 'icon geolocate', + iconLoading: 'icon geolocate', strings: { title: I18n.t('javascripts.map.locate.title'), popup: I18n.t('javascripts.map.locate.popup') } }).addTo(map); + var locateContainer = locate.getContainer(); + + $(locateContainer) + .removeClass('leaflet-control-locate leaflet-bar') + .addClass('control-locate') + .children("a") + .removeClass('leaflet-bar-part leaflet-bar-part-single') + .addClass('control-button'); + var sidebar = L.OSM.sidebar('#map-ui') .addTo(map); @@@ -157,10 -181,6 +192,10 @@@ if (params.layers.indexOf(map.dataLayer.options.code) >= 0) { map.addLayer(map.dataLayer); } + + if (params.layers.indexOf(map.gpsLayer.options.code) >= 0) { + map.addLayer(map.gpsLayer); + } } var placement = $('html').attr('dir') === 'rtl' ? 'right' : 'left'; @@@ -176,29 -196,17 +211,29 @@@ map.getLayersCode(), map._object); - $.removeCookie("_osm_location"); - $.cookie("_osm_location", OSM.locationCookie(map), { expires: expiry, path: "/" }); + $.removeCookie('_osm_location'); + $.cookie('_osm_location', OSM.locationCookie(map), { expires: expiry, path: '/' }); }); if ($.cookie('_osm_welcome') === 'hide') { $('.welcome').hide(); } - $('.welcome .close').on('click', function() { + $('.welcome .close-wrap').on('click', function() { $('.welcome').hide(); - $.cookie("_osm_welcome", 'hide', { expires: expiry }); + $.cookie('_osm_welcome', 'hide', { expires: expiry, path: '/' }); + }); + + var bannerExpiry = new Date(); + bannerExpiry.setYear(bannerExpiry.getFullYear() + 1); + + $('#banner .close-wrap').on('click', function(e) { + var cookieId = e.target.id; + $('#banner').hide(); + e.preventDefault(); + if (cookieId) { + $.cookie(cookieId, 'hide', { expires: bannerExpiry, path: '/' }); + } }); if (OSM.PIWIK) { @@@ -219,8 -227,10 +254,8 @@@ map.setView([params.lat, params.lon], params.zoom); } - var marker = L.marker([0, 0], {icon: OSM.getUserIcon()}); - if (params.marker) { - marker.setLatLng([params.mlat, params.mlon]).addTo(map); + L.marker([params.mlat, params.mlon]).addTo(map); } $("#homeanchor").on("click", function(e) { @@@ -230,7 -240,7 +265,7 @@@ center = L.latLng(data.lat, data.lon); map.setView(center, data.zoom); - marker.setLatLng(center).addTo(map); + L.marker(center, {icon: OSM.getUserIcon()}).addTo(map); }); function remoteEditHandler(bbox, object) {