Reduce condition complexity

This commit is contained in:
Marwin Hochfelsner 2025-02-08 11:43:54 +01:00
parent e206dd527e
commit a3c45f6ed6
6 changed files with 31 additions and 64 deletions

View file

@ -61,13 +61,9 @@ OSM.Changeset = function (map) {
}); });
content.find("textarea").on("input", function (e) { content.find("textarea").on("input", function (e) {
var form = e.target.form; const form = e.target.form,
disabled = $(e.target).val() === "";
if ($(e.target).val() === "") { form.comment.disabled = disabled;
$(form.comment).prop("disabled", true);
} else {
$(form.comment).prop("disabled", false);
}
}); });
content.find("textarea").val("").trigger("input"); content.find("textarea").val("").trigger("input");

View file

@ -79,13 +79,10 @@ OSM.Directions = function (map) {
}); });
function formatDistance(m) { function formatDistance(m) {
if (m < 1000) { const unitTemplate = "javascripts.directions.distance_";
return I18n.t("javascripts.directions.distance_m", { distance: Math.round(m) }); if (m < 1000) return I18n.t(unitTemplate + "m", { distance: Math.round(m) });
} else if (m < 10000) { if (m < 10000) return I18n.t(unitTemplate + "km", { distance: (m / 1000.0).toFixed(1) });
return I18n.t("javascripts.directions.distance_km", { distance: (m / 1000.0).toFixed(1) }); return I18n.t(unitTemplate + "km", { distance: Math.round(m / 1000) });
} else {
return I18n.t("javascripts.directions.distance_km", { distance: Math.round(m / 1000) });
}
} }
function formatHeight(m) { function formatHeight(m) {
@ -179,28 +176,12 @@ OSM.Directions = function (map) {
// Add each row // Add each row
route.steps.forEach(function (step) { route.steps.forEach(function (step) {
var ll = step[0], const [ll, direction, instruction, dist, lineseg] = step;
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";
}
var row = $("<tr class='turn'/>"); var row = $("<tr class='turn'/>");
row.append("<td class='border-0'><div class='direction i" + direction + "'/></td> "); row.append("<td class='border-0'><div class='direction i" + direction + "'/></td> ");
row.append("<td>" + instruction); 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 () { row.on("click", function () {
popup popup
@ -232,6 +213,14 @@ OSM.Directions = function (map) {
// TODO: collapse width of sidebar back to previous // 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"); var chosenEngineIndex = findEngine("fossgis_osrm_car");

View file

@ -106,9 +106,8 @@ L.OSM.Map = L.Map.extend({
link.attr("target", "_blank"); link.attr("target", "_blank");
} }
return link.prop("outerHTML"); return link.prop("outerHTML");
} else {
return text;
} }
return text;
} }
}, },
@ -169,16 +168,15 @@ L.OSM.Map = L.Map.extend({
getShortUrl: function (marker) { getShortUrl: function (marker) {
var zoom = this.getZoom(), var zoom = this.getZoom(),
latLng = marker && this.hasLayer(marker) ? marker.getLatLng().wrap() : this.getCenter().wrap(), latLng = marker && this.hasLayer(marker) ? marker.getLatLng().wrap() : this.getCenter().wrap(),
str = window.location.hostname.match(/^www\.openstreetmap\.org/i) ? str = window.location.protocol + "//" + window.location.hostname.replace(/^www\.openstreetmap\.org/i, "osm.org") + "/go/",
window.location.protocol + "//osm.org/go/" :
window.location.protocol + "//" + window.location.hostname + "/go/",
char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~", char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~",
x = Math.round((latLng.lng + 180.0) * ((1 << 30) / 90.0)), x = Math.round((latLng.lng + 180.0) * ((1 << 30) / 90.0)),
y = Math.round((latLng.lat + 90.0) * ((1 << 30) / 45.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 // 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 // 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. // 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, digit,
i; i;
@ -313,13 +311,8 @@ L.OSM.Map = L.Map.extend({
}); });
map._objectLayer.interestingNode = function (node, wayNodes, relationNodes) { map._objectLayer.interestingNode = function (node, wayNodes, relationNodes) {
if (object.type === "node") { return object.type === "node" ||
return true; (object.type === "relation" && Boolean(relationNodes[node.id]));
} else if (object.type === "relation") {
return Boolean(relationNodes[node.id]);
} else {
return false;
}
}; };
map._objectLayer.addData(data); map._objectLayer.addData(data);

View file

@ -21,12 +21,8 @@ L.OSM.note = function (options) {
.attr("data-bs-original-title", I18n.t(isDisabled ? .attr("data-bs-original-title", I18n.t(isDisabled ?
"javascripts.site.createnote_disabled_tooltip" : "javascripts.site.createnote_disabled_tooltip" :
"javascripts.site.createnote_tooltip")); "javascripts.site.createnote_tooltip"));
if (isDisabled === wasDisabled) return;
if (isDisabled && !wasDisabled) { link.trigger(isDisabled ? "disabled" : "enabled");
link.trigger("disabled");
} else if (wasDisabled && !isDisabled) {
link.trigger("enabled");
}
} }
update(); update();

View file

@ -13,8 +13,6 @@ L.OSM.query = function (options) {
map.on("zoomend", update); map.on("zoomend", update);
update();
function update() { function update() {
var wasDisabled = link.hasClass("disabled"), var wasDisabled = link.hasClass("disabled"),
isDisabled = map.getZoom() < 14; isDisabled = map.getZoom() < 14;
@ -23,14 +21,12 @@ L.OSM.query = function (options) {
.attr("data-bs-original-title", I18n.t(isDisabled ? .attr("data-bs-original-title", I18n.t(isDisabled ?
"javascripts.site.queryfeature_disabled_tooltip" : "javascripts.site.queryfeature_disabled_tooltip" :
"javascripts.site.queryfeature_tooltip")); "javascripts.site.queryfeature_tooltip"));
if (isDisabled === wasDisabled) return;
if (isDisabled && !wasDisabled) { link.trigger(isDisabled ? "disabled" : "enabled");
link.trigger("disabled");
} else if (wasDisabled && !isDisabled) {
link.trigger("enabled");
}
} }
update();
return $container[0]; return $container[0];
}; };

View file

@ -142,11 +142,8 @@ OSM.Router = function (map, rts) {
}; };
router.stateChange = function (state) { router.stateChange = function (state) {
if (state.center) { const url = state.center ? OSM.formatHash(state) : window.location;
window.history.replaceState(state, document.title, OSM.formatHash(state)); window.history.replaceState(state, document.title, url);
} else {
window.history.replaceState(state, document.title, window.location);
}
}; };
router.updateHash = function () { router.updateHash = function () {