Stop creating a shared global querystring variable

This commit is contained in:
Tom Hughes 2019-07-15 20:27:42 +01:00
parent cc5688a6de
commit 6dd451c7ee
12 changed files with 56 additions and 25 deletions

View file

@ -17,16 +17,15 @@
//= require richtext
//= require querystring
var qs = require("querystring-component");
/*
* Called as the user scrolls/zooms around to maniplate hrefs of the
* view tab and various other links
*/
window.updateLinks = function (loc, zoom, layers, object) {
$(".geolink").each(function (index, link) {
var href = link.href.split(/[?#]/)[0],
args = qs.parse(link.search.substring(1)),
var querystring = require("querystring-component"),
href = link.href.split(/[?#]/)[0],
args = querystring.parse(link.search.substring(1)),
editlink = $(link).hasClass("editlink");
delete args.node;
@ -38,7 +37,7 @@ window.updateLinks = function (loc, zoom, layers, object) {
args[object.type] = object.id;
}
var query = qs.stringify(args);
var query = querystring.stringify(args);
if (query) href += "?" + query;
args = {

View file

@ -1,4 +1,7 @@
//= require querystring
$(document).ready(function () {
var querystring = require("querystring-component");
var id = $("#id-embed");
if (id.data("key")) {
@ -36,7 +39,7 @@ $(document).ready(function () {
params.gpx = hashParams.gpx;
}
id.attr("src", id.data("url") + "#" + qs.stringify(params));
id.attr("src", id.data("url") + "#" + querystring.stringify(params));
} else {
alert(I18n.t("site.edit.id_not_configured"));
}

View file

@ -21,8 +21,11 @@
//= require index/query
//= require router
//= require bowser
//= require querystring
$(document).ready(function () {
var querystring = require("querystring-component");
var loaderTimeout;
var map = new L.OSM.Map("map", {
@ -264,7 +267,7 @@ $(document).ready(function () {
var iframe = $("<iframe>")
.hide()
.appendTo("body")
.attr("src", url + qs.stringify(query))
.attr("src", url + querystring.stringify(query))
.on("load", function () {
$(this).remove();
loaded = true;
@ -309,7 +312,7 @@ $(document).ready(function () {
};
page.load = function () {
var params = qs.parse(location.search.substring(1));
var params = querystring.parse(location.search.substring(1));
if (params.query) {
$("#sidebar .search_form input[name=query]").value(params.query);
}

View file

@ -1,4 +1,8 @@
//= require querystring
OSM.initializeContextMenu = function (map) {
var querystring = require("querystring-component");
map.contextmenu.addItem({
text: I18n.t("javascripts.context.directions_from"),
callback: function directionsFromHere(e) {
@ -7,7 +11,7 @@ OSM.initializeContextMenu = function (map) {
lat = latlng.lat.toFixed(precision),
lng = latlng.lng.toFixed(precision);
OSM.router.route("/directions?" + qs.stringify({
OSM.router.route("/directions?" + querystring.stringify({
from: lat + "," + lng,
to: $("#route_to").val()
}));
@ -22,7 +26,7 @@ OSM.initializeContextMenu = function (map) {
lat = latlng.lat.toFixed(precision),
lng = latlng.lng.toFixed(precision);
OSM.router.route("/directions?" + qs.stringify({
OSM.router.route("/directions?" + querystring.stringify({
from: $("#route_from").val(),
to: lat + "," + lng
}));

View file

@ -1,7 +1,10 @@
//= require_self
//= require_tree ./directions
//= require querystring
OSM.Directions = function (map) {
var querystring = require("querystring-component");
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 chosenEngine;
@ -139,7 +142,7 @@ OSM.Directions = function (map) {
var from = endpoints[0].latlng,
to = endpoints[1].latlng;
OSM.router.route("/directions?" + qs.stringify({
OSM.router.route("/directions?" + querystring.stringify({
from: $("#route_to").val(),
to: $("#route_from").val(),
route: to.lat + "," + to.lng + ";" + from.lat + "," + from.lng
@ -210,7 +213,7 @@ OSM.Directions = function (map) {
var precision = OSM.zoomPrecision(map.getZoom());
OSM.router.replace("/directions?" + qs.stringify({
OSM.router.replace("/directions?" + querystring.stringify({
engine: chosenEngine.id,
route: o.lat.toFixed(precision) + "," + o.lng.toFixed(precision) + ";" +
d.lat.toFixed(precision) + "," + d.lng.toFixed(precision)
@ -367,7 +370,7 @@ OSM.Directions = function (map) {
getRoute(true, true);
});
var params = qs.parse(location.search.substring(1)),
var params = querystring.parse(location.search.substring(1)),
route = (params.route || "").split(";"),
from = route[0] && L.latLng(route[0].split(",")),
to = route[1] && L.latLng(route[1].split(","));

View file

@ -1,4 +1,8 @@
//= require querystring
OSM.NewNote = function (map) {
var querystring = require("querystring-component");
var noteLayer = map.noteLayer,
content = $("#sidebar_content"),
page = {},
@ -107,7 +111,7 @@ OSM.NewNote = function (map) {
map.addLayer(noteLayer);
var params = qs.parse(path.substring(path.indexOf("?") + 1));
var params = querystring.parse(path.substring(path.indexOf("?") + 1));
var markerLatlng;
if (params.lat && params.lon) {

View file

@ -1,6 +1,9 @@
//= require jquery.simulate
//= require querystring
OSM.Query = function (map) {
var querystring = require("querystring-component");
var url = OSM.OVERPASS_URL,
queryButton = $(".control-query .control-button"),
uninterestingTags = ["source", "source_ref", "source:ref", "history", "attribution", "created_by", "tiger:county", "tiger:tlid", "tiger:upload_uuid", "KSJ2:curve_id", "KSJ2:lat", "KSJ2:lon", "KSJ2:coordinate", "KSJ2:filename", "note:ja"],
@ -342,7 +345,7 @@ OSM.Query = function (map) {
};
page.load = function (path, noCentre) {
var params = qs.parse(path.substring(path.indexOf("?") + 1)),
var params = querystring.parse(path.substring(path.indexOf("?") + 1)),
latlng = L.latLng(params.lat, params.lon);
if (!window.location.hash && !noCentre && !map.getBounds().contains(latlng)) {

View file

@ -1,6 +1,9 @@
//= require jquery.simulate
//= require querystring
OSM.Search = function (map) {
var querystring = require("querystring-component");
$(".search_form input[name=query]").on("input", function (e) {
if ($(e.target).val() === "") {
$(".describe_location").fadeIn(100);
@ -120,7 +123,7 @@ OSM.Search = function (map) {
var page = {};
page.pushstate = page.popstate = function (path) {
var params = qs.parse(path.substring(path.indexOf("?") + 1));
var params = querystring.parse(path.substring(path.indexOf("?") + 1));
$(".search_form input[name=query]").val(params.query);
$(".describe_location").hide();
OSM.loadSidebarContent(path, page.load);

View file

@ -1,3 +1,5 @@
//= require querystring
L.extend(L.LatLngBounds.prototype, {
getSize: function () {
return (this._northEast.lat - this._southWest.lat) *
@ -114,8 +116,9 @@ L.OSM.Map = L.Map.extend({
params.mlon = latLng.lng.toFixed(precision);
}
var url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
query = qs.stringify(params),
var querystring = require("querystring-component"),
url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
query = querystring.stringify(params),
hash = OSM.formatHash(this);
if (query) url += "?" + query;
@ -180,7 +183,8 @@ L.OSM.Map = L.Map.extend({
params[this._object.type] = this._object.id;
}
var query = qs.stringify(params);
var querystring = require("querystring-component"),
query = querystring.stringify(params);
if (query) {
str += "?" + query;
}

View file

@ -1,4 +1,8 @@
//= querystring
$(document).ready(function () {
var querystring = require("querystring-component");
// Preserve location hash in referer
if (window.location.hash) {
$("#referer").val($("#referer").val() + window.location.hash);
@ -6,9 +10,9 @@ $(document).ready(function () {
// Attach referer to authentication buttons
$(".auth_button").each(function () {
var params = qs.parse(this.search.substring(1));
var params = querystring.parse(this.search.substring(1));
params.referer = $("#referer").val();
this.search = qs.stringify(params);
this.search = querystring.stringify(params);
});
// Add click handler to show OpenID field
@ -33,7 +37,7 @@ $(document).ready(function () {
if (referer) {
args.referer = referer;
}
window.location = action + "?" + qs.stringify(args);
window.location = action + "?" + querystring.stringify(args);
return false;
});
});

View file

@ -1,5 +1,6 @@
//= depend_on settings.yml
//= depend_on settings.local.yml
//= require querystring
OSM = {
<% if defined?(PIWIK) %>
@ -138,14 +139,15 @@ OSM = {
},
parseHash: function(hash) {
var args = {};
var querystring = require("querystring-component"),
args = {};
var i = hash.indexOf('#');
if (i < 0) {
return args;
}
hash = qs.parse(hash.substr(i + 1));
hash = querystring.parse(hash.substr(i + 1));
var map = (hash.map || '').split('/'),
zoom = parseInt(map[0], 10),