]> git.openstreetmap.org Git - rails.git/commitdiff
Reduce condition complexity
authorMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Sat, 8 Feb 2025 10:43:54 +0000 (11:43 +0100)
committerMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Sun, 9 Feb 2025 05:51:56 +0000 (06:51 +0100)
app/assets/javascripts/index/changeset.js
app/assets/javascripts/index/directions.js
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.note.js
app/assets/javascripts/leaflet.query.js
app/assets/javascripts/router.js

index caf40f6b6e7322ce5923e3f8b201a6a41ac73d42..39b4abde15bd7fc836e641733bfec9af1dd8ee14 100644 (file)
@@ -61,13 +61,9 @@ OSM.Changeset = function (map) {
     });
 
     content.find("textarea").on("input", function (e) {
-      var form = e.target.form;
-
-      if ($(e.target).val() === "") {
-        $(form.comment).prop("disabled", true);
-      } else {
-        $(form.comment).prop("disabled", false);
-      }
+      const form = e.target.form,
+            disabled = $(e.target).val() === "";
+      form.comment.disabled = disabled;
     });
 
     content.find("textarea").val("").trigger("input");
index 681479e52aaf05da13fdbd7b4891aea4c2e17809..356dc6271d041878883417ded8025a607fad36c3 100644 (file)
@@ -79,13 +79,10 @@ OSM.Directions = function (map) {
   });
 
   function formatDistance(m) {
-    if (m < 1000) {
-      return I18n.t("javascripts.directions.distance_m", { distance: Math.round(m) });
-    } else if (m < 10000) {
-      return I18n.t("javascripts.directions.distance_km", { distance: (m / 1000.0).toFixed(1) });
-    } else {
-      return I18n.t("javascripts.directions.distance_km", { distance: Math.round(m / 1000) });
-    }
+    const unitTemplate = "javascripts.directions.distance_";
+    if (m < 1000) return I18n.t(unitTemplate + "m", { distance: Math.round(m) });
+    if (m < 10000) return I18n.t(unitTemplate + "km", { distance: (m / 1000.0).toFixed(1) });
+    return I18n.t(unitTemplate + "km", { distance: Math.round(m / 1000) });
   }
 
   function formatHeight(m) {
@@ -179,28 +176,12 @@ OSM.Directions = function (map) {
 
       // Add each row
       route.steps.forEach(function (step) {
-        var ll = step[0],
-            direction = step[1],
-            instruction = step[2],
-            dist = step[3],
-            lineseg = step[4];
-
-        if (dist < 5) {
-          dist = "";
-        } else if (dist < 200) {
-          dist = String(Math.round(dist / 10) * 10) + "m";
-        } else if (dist < 1500) {
-          dist = String(Math.round(dist / 100) * 100) + "m";
-        } else if (dist < 5000) {
-          dist = String(Math.round(dist / 100) / 10) + "km";
-        } else {
-          dist = String(Math.round(dist / 1000)) + "km";
-        }
+        const [ll, direction, instruction, dist, lineseg] = step;
 
         var row = $("<tr class='turn'/>");
         row.append("<td class='border-0'><div class='direction i" + direction + "'/></td> ");
         row.append("<td>" + instruction);
-        row.append("<td class='distance text-body-secondary text-end'>" + dist);
+        row.append("<td class='distance text-body-secondary text-end'>" + getDistText(dist));
 
         row.on("click", function () {
           popup
@@ -232,6 +213,14 @@ OSM.Directions = function (map) {
         // TODO: collapse width of sidebar back to previous
       });
     });
+
+    function getDistText(dist) {
+      if (dist < 5) return "";
+      if (dist < 200) return String(Math.round(dist / 10) * 10) + "m";
+      if (dist < 1500) return String(Math.round(dist / 100) * 100) + "m";
+      if (dist < 5000) return String(Math.round(dist / 100) / 10) + "km";
+      return String(Math.round(dist / 1000)) + "km";
+    }
   }
 
   var chosenEngineIndex = findEngine("fossgis_osrm_car");
index 6e42d4ac103e88f45259870aba389b104da82aad..1324532d3bb592d8272e5d5b6bcce302603899a8 100644 (file)
@@ -106,9 +106,8 @@ L.OSM.Map = L.Map.extend({
           link.attr("target", "_blank");
         }
         return link.prop("outerHTML");
-      } else {
-        return text;
       }
+      return text;
     }
   },
 
@@ -169,16 +168,15 @@ L.OSM.Map = L.Map.extend({
   getShortUrl: function (marker) {
     var zoom = this.getZoom(),
         latLng = marker && this.hasLayer(marker) ? marker.getLatLng().wrap() : this.getCenter().wrap(),
-        str = window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
-          window.location.protocol + "//osm.org/go/" :
-          window.location.protocol + "//" + window.location.hostname + "/go/",
+        str = window.location.protocol + "//" + window.location.hostname.replace(/^www\.openstreetmap\.org/i, "osm.org") + "/go/",
         char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~",
         x = Math.round((latLng.lng + 180.0) * ((1 << 30) / 90.0)),
         y = Math.round((latLng.lat + 90.0) * ((1 << 30) / 45.0)),
         // JavaScript only has to keep 32 bits of bitwise operators, so this has to be
         // done in two parts. each of the parts c1/c2 has 30 bits of the total in it
         // and drops the last 4 bits of the full 64 bit Morton code.
-        c1 = interlace(x >>> 17, y >>> 17), c2 = interlace((x >>> 2) & 0x7fff, (y >>> 2) & 0x7fff),
+        c1 = interlace(x >>> 17, y >>> 17),
+        c2 = interlace((x >>> 2) & 0x7fff, (y >>> 2) & 0x7fff),
         digit,
         i;
 
@@ -313,13 +311,8 @@ L.OSM.Map = L.Map.extend({
           });
 
           map._objectLayer.interestingNode = function (node, wayNodes, relationNodes) {
-            if (object.type === "node") {
-              return true;
-            } else if (object.type === "relation") {
-              return Boolean(relationNodes[node.id]);
-            } else {
-              return false;
-            }
+            return object.type === "node" ||
+                   (object.type === "relation" && Boolean(relationNodes[node.id]));
           };
 
           map._objectLayer.addData(data);
index 19fc9392c0af65497bf686f8e0c24020cdba3050..801c6e6dbb0e721d66ad67d19770be32dd5c6c06 100644 (file)
@@ -21,12 +21,8 @@ L.OSM.note = function (options) {
         .attr("data-bs-original-title", I18n.t(isDisabled ?
           "javascripts.site.createnote_disabled_tooltip" :
           "javascripts.site.createnote_tooltip"));
-
-      if (isDisabled && !wasDisabled) {
-        link.trigger("disabled");
-      } else if (wasDisabled && !isDisabled) {
-        link.trigger("enabled");
-      }
+      if (isDisabled === wasDisabled) return;
+      link.trigger(isDisabled ? "disabled" : "enabled");
     }
 
     update();
index 00292b74dbfbb3ef6262dd50e949ad50bbc63d32..87f45ce9970aa2a0250038836b1d023f6afae4a5 100644 (file)
@@ -13,8 +13,6 @@ L.OSM.query = function (options) {
 
     map.on("zoomend", update);
 
-    update();
-
     function update() {
       var wasDisabled = link.hasClass("disabled"),
           isDisabled = map.getZoom() < 14;
@@ -23,14 +21,12 @@ L.OSM.query = function (options) {
         .attr("data-bs-original-title", I18n.t(isDisabled ?
           "javascripts.site.queryfeature_disabled_tooltip" :
           "javascripts.site.queryfeature_tooltip"));
-
-      if (isDisabled && !wasDisabled) {
-        link.trigger("disabled");
-      } else if (wasDisabled && !isDisabled) {
-        link.trigger("enabled");
-      }
+      if (isDisabled === wasDisabled) return;
+      link.trigger(isDisabled ? "disabled" : "enabled");
     }
 
+    update();
+
     return $container[0];
   };
 
index 30a71e0f179d6dd1bd3fc0c0f228ab675573cce6..63a320c6a9d76e6a2810289d4f105e448d788a72 100644 (file)
@@ -142,11 +142,8 @@ OSM.Router = function (map, rts) {
   };
 
   router.stateChange = function (state) {
-    if (state.center) {
-      window.history.replaceState(state, document.title, OSM.formatHash(state));
-    } else {
-      window.history.replaceState(state, document.title, window.location);
-    }
+    const url = state.center ? OSM.formatHash(state) : window.location;
+    window.history.replaceState(state, document.title, url);
   };
 
   router.updateHash = function () {