]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.share.js
divide embed section from share section.
[rails.git] / app / assets / javascripts / leaflet.share.js
index 9388bde658f992812547546cd64ab8034a839ad7..4454f02bbddd917b7bff598f600ad793398e818d 100644 (file)
@@ -34,7 +34,7 @@ L.OSM.share = function (options) {
         $('<h4>')
           .text(I18n.t('javascripts.share.title')));
 
-    // Link / Embed
+    // Link
 
     var $linkSection = $('<div>')
       .attr('class', 'section share-link')
@@ -61,7 +61,19 @@ L.OSM.share = function (options) {
               .bind('change', toggleMarker))
           .append(I18n.t('javascripts.share.include_marker')));
 
-    var $shortLink, $longLink;
+    $('<div>')
+      .attr('class', 'form-row')
+      .appendTo($form)
+      .append(
+        $('<label>')
+          .attr('for', 'center_marker')
+          .append(
+            $('<input>')
+              .attr('id', 'center_marker')
+              .attr('type', 'checkbox')
+              .prop('checked', true)
+              .bind('change', update))
+          .append(I18n.t('javascripts.share.center_marker')));
 
     $('<div>')
       .attr('class', 'form-row')
@@ -93,6 +105,16 @@ L.OSM.share = function (options) {
         .attr('type', 'text')
         .on('click', select));
 
+    // Embed
+
+    var $embedSection = $('<div>')
+      .attr('class', 'section share-embed')
+      .appendTo($ui);
+
+    var $form = $('<form>')
+      .attr('class', 'standard-form')
+      .appendTo($embedSection);
+
     $('<div>')
       .attr('class', 'form-row')
       .appendTo($form)
@@ -245,11 +267,18 @@ L.OSM.share = function (options) {
     }
 
     function update() {
+      if (map.hasLayer(marker) && $('#center_marker').is(':checked')) {
+        map.panTo(marker.getLatLng());
+      }
+
       var bounds = map.getBounds();
 
       $('#link_marker')
         .prop('checked', map.hasLayer(marker));
 
+      $('#center_marker')
+        .prop('disabled', !map.hasLayer(marker));
+
       $('#image_filter')
         .prop('checked', locationFilter.isEnabled());
 
@@ -271,9 +300,9 @@ L.OSM.share = function (options) {
 
       $('#embed_html').val(
         '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="' +
-          'http://' + OSM.SERVER_URL + '/export/embed.html?' + $.param(params) +
+          escapeHTML('http://' + OSM.SERVER_URL + '/export/embed.html?' + $.param(params)) +
           '" style="border: 1px solid black"></iframe><br/>' +
-          '<small><a href="' + map.getUrl(marker) + '</a></small>');
+          '<small><a href="' + escapeHTML(map.getUrl(marker)) + '</a></small>');
 
       // Image