aboutsummaryrefslogtreecommitdiff
path: root/web/simple
diff options
context:
space:
mode:
authorKristian Kraljic <(none)>2020-04-19 15:22:21 +0200
committerKristian Kraljic <(none)>2020-04-19 19:39:38 +0200
commit1b38178d0fb79ae82a51f5754ddf51f3c1c09a5c (patch)
treec45b17b0af9a55ec65ec29d4e1b13bf65aff1f9b /web/simple
parent3973030c9d7795779e6b3d309e6788f5b7077ecb (diff)
downloadtrackermap-web-1b38178d0fb79ae82a51f5754ddf51f3c1c09a5c.tar.gz
trackermap-web-1b38178d0fb79ae82a51f5754ddf51f3c1c09a5c.tar.bz2
trackermap-web-1b38178d0fb79ae82a51f5754ddf51f3c1c09a5c.zip
Add long./lat./zoom URI parameters to simple UI
Instead of reading the longitude, latitude and zoom options from the user / server configuration, one could use the new longitude=, latitude= and zoom= URI parameters, in order to define the launch map view. This is especially useful, in case you would like to embed multiple maps with different views into e.g. another website.
Diffstat (limited to 'web/simple')
-rw-r--r--web/simple/app.js12
1 files changed, 8 insertions, 4 deletions
diff --git a/web/simple/app.js b/web/simple/app.js
index ed889f19..0c44bae5 100644
--- a/web/simple/app.js
+++ b/web/simple/app.js
@@ -29,8 +29,12 @@ if (!Array.prototype.find) {
});
}
+var getQueryParameter = function(name) {
+ return (window.location.search.match('[?&]' + name + '=([^&]*)') || [])[1];
+};
+
var url = window.location.protocol + '//' + window.location.host;
-var token = (window.location.search.match(/token=([^&#]+)/) || [])[1];
+var token = getQueryParameter('token');
var style = function (label) {
return new ol.style.Style({
@@ -98,10 +102,10 @@ ajax('GET', url + '/api/server', function(server) {
ajax('GET', url + '/api/session?token=' + token, function(user) {
map.getView().setCenter(ol.proj.fromLonLat([
- user.longitude || server.longitude || 0.0,
- user.latitude || server.latitude || 0.0
+ parseFloat(getQueryParameter('longitude')) || user.longitude || server.longitude || 0.0,
+ parseFloat(getQueryParameter('latitude')) || user.latitude || server.latitude || 0.0
]));
- map.getView().setZoom(user.zoom || server.zoom || 2);
+ map.getView().setZoom(parseFloat(getQueryParameter('zoom')) || user.zoom || server.zoom || 2);
ajax('GET', url + '/api/devices', function(devices) {