});
OSM.loadSidebarContent = function (path, callback) {
+ var content_path = path;
+
map.setSidebarOverlaid(false);
clearTimeout(loaderTimeout);
// IE<10 doesn't respect Vary: X-Requested-With header, so
// prevent caching the XHR response as a full-page URL.
- if (path.indexOf("?") >= 0) {
- path += "&xhr=1";
+ if (content_path.indexOf("?") >= 0) {
+ content_path += "&xhr=1";
} else {
- path += "?xhr=1";
+ content_path += "?xhr=1";
}
$("#sidebar_content")
.empty();
$.ajax({
- url: path,
+ url: content_path,
dataType: "html",
complete: function (xhr) {
clearTimeout(loaderTimeout);
OSM.Directions = function (map) {
var awaitingGeocode; // true if the user has requested a route, but we're waiting on a geocode result
- var awaitingRoute; // true if we've asked the engine for a route and are waiting to hear back
+ var awaitingRoute; // true if we've asked the engine for a route and are waiting to hear back
var chosenEngine;
var popup = L.popup({ autoPanPadding: [100, 100] });
var engines = OSM.Directions.engines;
engines.sort(function (a, b) {
- a = I18n.t("javascripts.directions.engines." + a.id);
- b = I18n.t("javascripts.directions.engines." + b.id);
- return a.localeCompare(b);
+ var localised_a = I18n.t("javascripts.directions.engines." + a.id),
+ localised_b = I18n.t("javascripts.directions.engines." + b.id);
+ return localised_a.localeCompare(localised_b);
});
var select = $("select.routing_engines");
// Add each row
route.steps.forEach(function (step) {
- var ll = step[0],
- direction = step[1],
+ var ll = step[0],
+ direction = step[1],
instruction = step[2],
- dist = step[3],
- lineseg = step[4];
+ dist = step[3],
+ lineseg = step[4];
if (dist < 5) {
dist = "";
var oe = e.originalEvent;
var dragData = JSON.parse(oe.dataTransfer.getData("text"));
var type = dragData.type;
- var pt = L.DomEvent.getMousePosition(oe, map.getContainer()); // co-ordinates of the mouse pointer at present
+ var pt = L.DomEvent.getMousePosition(oe, map.getContainer()); // co-ordinates of the mouse pointer at present
pt.y += 20;
var ll = map.containerPointToLatLng(pt);
endpoints[type === "from" ? 0 : 1].setLatLng(ll);
topRight = map.project(L.latLng(changeset.bbox.maxlat, changeset.bbox.maxlon)),
width = topRight.x - bottomLeft.x,
height = bottomLeft.y - topRight.y,
- minSize = 20; // Min width/height of changeset in pixels
+ minSize = 20; // Min width/height of changeset in pixels
if (width < minSize) {
bottomLeft.x -= ((minSize - width) / 2);
}
});
- function updateMarker(marker, feature) {
+ function updateMarker(old_marker, feature) {
+ var marker = old_marker;
if (marker) {
marker.setIcon(noteIcons[feature.properties.status]);
} else {
}), featureStyle);
} else if (feature.type === "relation" && feature.members) {
geometry = L.featureGroup(feature.members.map(featureGeometry).filter(function (geometry) {
- return geometry !== undefined;
+ return typeof geometry !== "undefined";
}));
}
},
updateLayers: function (layerParam) {
- layerParam = layerParam || "M";
- var layersAdded = "";
+ var layers = layerParam || "M",
+ layersAdded = "";
for (var i = this.baseLayers.length - 1; i >= 0; i--) {
- if (layerParam.indexOf(this.baseLayers[i].options.code) >= 0) {
+ 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 === "") {
// Called to interlace the bits in x and y, making a Morton code.
function interlace(x, y) {
- x = (x | (x << 8)) & 0x00ff00ff;
- x = (x | (x << 4)) & 0x0f0f0f0f;
- x = (x | (x << 2)) & 0x33333333;
- x = (x | (x << 1)) & 0x55555555;
- y = (y | (y << 8)) & 0x00ff00ff;
- y = (y | (y << 4)) & 0x0f0f0f0f;
- y = (y | (y << 2)) & 0x33333333;
- y = (y | (y << 1)) & 0x55555555;
- return (x << 1) | y;
+ var interlaced_x = x,
+ interlaced_y = y;
+ interlaced_x = (interlaced_x | (interlaced_x << 8)) & 0x00ff00ff;
+ interlaced_x = (interlaced_x | (interlaced_x << 4)) & 0x0f0f0f0f;
+ interlaced_x = (interlaced_x | (interlaced_x << 2)) & 0x33333333;
+ interlaced_x = (interlaced_x | (interlaced_x << 1)) & 0x55555555;
+ interlaced_y = (interlaced_y | (interlaced_y << 8)) & 0x00ff00ff;
+ interlaced_y = (interlaced_y | (interlaced_y << 4)) & 0x0f0f0f0f;
+ interlaced_y = (interlaced_y | (interlaced_y << 2)) & 0x33333333;
+ interlaced_y = (interlaced_y | (interlaced_y << 1)) & 0x55555555;
+ return (interlaced_x << 1) | interlaced_y;
}
var params = {};
move the map without the hash changing.
*/
OSM.Router = function (map, rts) {
- var escapeRegExp = /[-{}[\]+?.,\\^$|#\s]/g;
+ var escapeRegExp = /[-{}[\]+?.,\\^$|#\s]/g;
var optionalParam = /\((.*?)\)/g;
- var namedParam = /(\(\?)?:\w+/g;
- var splatParam = /\*\w+/g;
+ var namedParam = /(\(\?)?:\w+/g;
+ var splatParam = /\*\w+/g;
function Route(path, controller) {
var regexp = new RegExp("^" +
"comma-style": "error",
"computed-property-spacing": "error",
"curly": ["error", "multi-line", "consistent"],
+ "dot-location": ["error", "property"],
"dot-notation": "error",
"eol-last": "error",
"eqeqeq": ["error", "smart"],
"no-alert": "warn",
"no-array-constructor": "error",
"no-caller": "error",
+ "no-console": "warn",
"no-div-regex": "error",
+ "no-eq-null": "error",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-implicit-coercion": "warn",
"no-implicit-globals": "warn",
"no-implied-eval": "error",
+ "no-invalid-this": "error",
"no-iterator": "error",
"no-labels": "error",
"no-label-var": "error",
"no-loop-func": "error",
"no-mixed-operators": "error",
"no-multiple-empty-lines": "error",
+ "no-multi-spaces": "error",
"no-multi-str": "error",
"no-negated-condition": "error",
"no-nested-ternary": "error",
"no-new-object": "error",
"no-new-wrappers": "error",
"no-octal-escape": "error",
+ "no-param-reassign": "error",
"no-process-env": "error",
"no-proto": "error",
"no-script-url": "error",
"no-self-compare": "error",
"no-sequences": "error",
- "no-shadow-restricted-names": "error",
"no-throw-literal": "error",
"no-trailing-spaces": "error",
+ "no-undef-init": "error",
+ "no-undefined": "error",
"no-unmodified-loop-condition": "error",
"no-unneeded-ternary": "error",
"no-unused-expressions": "off",
"no-void": "error",
"no-warning-comments": "warn",
"no-whitespace-before-property": "error",
- "no-with": "error",
"object-curly-newline": ["error", { "consistent": true }],
"object-curly-spacing": ["error", "always"],
"object-property-newline": ["error", { "allowAllPropertiesOnSameLine": true }],