]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5563'
authorTom Hughes <tom@compton.nu>
Tue, 28 Jan 2025 18:44:07 +0000 (18:44 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 28 Jan 2025 18:44:07 +0000 (18:44 +0000)
1  2 
app/assets/javascripts/index/layers/data.js
app/assets/javascripts/leaflet.map.js

index c10c6ed218d98e71066bc74af2edaaad48be3570,397b38ae20a91b221d3d11845f52786bd81ce3d5..e1246ca6c9d1862141f0189623d8fb2ecb8f9082
@@@ -44,7 -44,7 +44,7 @@@ OSM.initializeDataLayer = function (map
      }
    }
  
 -  function displayFeatureWarning(count, limit, add, cancel) {
 +  function displayFeatureWarning(num_features, add, cancel) {
      $("#browse_status").html(
        $("<div class='p-3'>").append(
          $("<div class='d-flex'>").append(
@@@ -55,7 -55,7 +55,7 @@@
                .attr("aria-label", I18n.t("javascripts.close"))
                .click(cancel))),
          $("<p class='alert alert-warning'>")
 -          .text(I18n.t("browse.start_rjs.feature_warning", { num_features: count, max_features: limit })),
 +          .text(I18n.t("browse.start_rjs.feature_warning", { num_features })),
          $("<input type='submit' class='btn btn-primary d-block mx-auto'>")
            .val(I18n.t("browse.start_rjs.load_data"))
            .click(add)));
  
      /*
       * Modern browsers are quite happy showing far more than 100 features in
 -     * the data browser, so increase the limit to 4000 by default, but keep
 -     * it restricted to 500 for IE8 and 100 for older IEs.
 +     * the data browser, so increase the limit to 4000 by default.
       */
 -    var maxFeatures = 4000;
 -
 -    /*@cc_on
 -      if (navigator.appVersion < 8) {
 -        maxFeatures = 100;
 -      } else if (navigator.appVersion < 9) {
 -        maxFeatures = 500;
 -      }
 -    @*/
 +    const maxFeatures = 4000;
  
      if (dataLoader) dataLoader.abort();
  
      dataLoader = $.ajax({
        url: url,
-       success: function (xml) {
+       dataType: "json",
+       success: function (data) {
          dataLayer.clearLayers();
  
-         var features = dataLayer.buildFeatures(xml);
+         var features = dataLayer.buildFeatures(data);
  
          function addFeatures() {
            $("#browse_status").empty();
          if (features.length < maxFeatures) {
            addFeatures();
          } else {
 -          displayFeatureWarning(features.length, maxFeatures, addFeatures, cancelAddFeatures);
 +          displayFeatureWarning(features.length, addFeatures, cancelAddFeatures);
          }
  
          if (map._objectLayer) {
index 0f4272a65a31c034d551e5c9a9a07d6c5a24e801,92c441b82bef8bd12b3f24a460fb51245f067a74..bdc8532d15a890522734d01ea0c803b1deb65434
@@@ -115,7 -115,8 +115,7 @@@ L.OSM.Map = L.Map.extend(
    },
  
    updateLayers: function (layerParam) {
 -    var layers = layerParam || "M",
 -        layersAdded = "";
 +    var layers = layerParam || "M";
  
      for (let i = this.baseLayers.length - 1; i >= 0; i--) {
        if (layers.indexOf(this.baseLayers[i].options.code) === -1) {
      }
  
      for (let i = this.baseLayers.length - 1; i >= 0; i--) {
 -      if (layers.indexOf(this.baseLayers[i].options.code) >= 0) {
 -        this.addLayer(this.baseLayers[i]);
 -        layersAdded = layersAdded + this.baseLayers[i].options.code;
 -      } else if (i === 0 && layersAdded === "") {
 +      if (layers.indexOf(this.baseLayers[i].options.code) >= 0 || i === 0) {
          this.addLayer(this.baseLayers[i]);
 +        return;
        }
      }
    },
        var map = this;
        this._objectLoader = $.ajax({
          url: OSM.apiUrl(object),
-         dataType: "xml",
-         success: function (xml) {
+         dataType: "json",
+         success: function (data) {
            map._object = object;
  
            map._objectLayer = new L.OSM.DataLayer(null, {
              }
            };
  
-           map._objectLayer.addData(xml);
+           map._objectLayer.addData(data);
            map._objectLayer.addTo(map);
  
            if (callback) callback(map._objectLayer.getBounds());