Commit 87f4af5b authored by ZettaScript's avatar ZettaScript

Add goto param, generate link

parent 91c5abd5
......@@ -36,14 +36,15 @@ Vous pouvez sélectionner une personne en cliquant sur son point. Les certificat
* exemples :
Zoom sur Bordeaux https://zettascript.org/tux/g1/worldwotmap.html?lat=44.82543879996824&lon=-0.5458831787109376&zoom=13
Zoom sur Toulouse https://zettascript.org/tux/g1/worldwotmap.html?lat=43.595559991515586&lon=1.4560317993164065&zoom=12
* **zoom** : Niveau de zoom
* **pubkey** : Clé publique du compte à sélectionner (ne se déplace pas vers lui)
* **only** : Mettre à "_1_" pour n'afficher que les certifications de ce compte
* **only** : Nombre de niveaux de certifications à afficher autour du compte sélectionné. Une valeur numérique supérieure _0_ active ce mode.
* **goto** : Centrer la carte sur le compte sélectionné. La valeur est le niveau de zoom.
* exemple :
Zoom sur _tuxmain_ https://zettascript.org/tux/g1/worldwotmap.html?lat=44.82543879996824&lon=-0.5458831787109376&zoom=13&pubkey=45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ&only=1
Zoom sur _tuxmain_ https://zettascript.org/tux/g1/worldwotmap.html?pubkey=45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ&goto=14
## Contribuer
* Pouvoir afficher uniquement les certifications à _n_ niveaux autour du compte sélectionné. Pouvoir représenter la distance au compte sélectionné en faisant varier la couleur ou l'opacité des lignes.
* Changer d'époque (afficher la wotmap à un temps donné) (à voir avec les données Cesium+)
* Se déplacer vers le compte sélectionné avec un paramètre GET
* Afficher le lien avec les paramètres GET correspondants à côté de la carte
* Vérifier l'utilisation des paramètres GET pour éviter le XSS
......@@ -92,12 +92,14 @@ a, a:visited {
<div id="mapmenu">
<ul>
<li><a href="#header">&#11014; Haut de page &#11014;</a></li>
<li><a id="mapmenu-maplink" href="#map">Lien vers cette vue</a></li>
<li>Bleu&nbsp;: wallet</li>
<li>Rouge&nbsp;: identité</li>
</ul>
<span id="mapmenu-naccounts"></span><hr />
<div id="mapmenu-idcard" class="idcard" style="display: none;">
<input type="button" id="mapmenu-idcard-bt" value="Déselectionner" onclick="" /><br />
<input type="button" id="mapmenu-idcard-bt" value="Déselectionner" onclick="" />
<input type="button" id="mapmenu-idcard-goto" value="Centrer" onclick="map.setView(accounts[active_account].pos);showURL();" /><br />
<strong class="idcard-title"></strong><br />
<span class="idcard-pubkey"></span><hr />
<input type="checkbox" id="mapmenu-idcard-onlycertsofsel" onchange="onlyShowCertsOfSelected();" autocomplete="off" />
......@@ -151,6 +153,7 @@ class Account {
for(var cert in account.certsReceived) {
certs[account.certsReceived[cert]].line.setStyle({color:"#f44", weight:3, opacity:0.6});
}
showURL();
}
}
function mapInactiveAccount(pubkey) {
......@@ -168,6 +171,7 @@ function mapInactiveAccount(pubkey) {
certs[account.certsReceived[cert]].line.setStyle({color:"black", weight:1, opacity:0.3});
}
onlyShowCertsOfSelected();
showURL();
}
function onlyShowCertsOfSelected() {
......@@ -212,6 +216,14 @@ function onlyShowCertsOfSelected() {
// TODO: show certs for n levels around active_account
}
function showURL() {
var pos = map.getCenter();
var url = window.location.pathname + "?lat="+pos.lat+"&lon="+pos.lng+"&zoom="+map.getZoom();
if(active_account != null)
url += "&pubkey="+active_account;
$("#mapmenu-maplink").attr("href", url+"#map");
}
class Cert {
constructor(issuer, receiver, line) {
this.issuer = issuer;
......@@ -238,6 +250,8 @@ var overlayMaps = {
"Certifications": l_certlines
};
L.control.layers({}, overlayMaps).addTo(map);
map.on("moveend", showURL);
map.on("zoomend", showURL);
//$.post("https://g1.data.duniter.fr/user/profile/_search", '{"query":{"bool":{"must":[{"exists":{"field":"geoPoint"}}]}},"from":1000,"size":1000,"_source":["title","geoPoint","avatar._content_type","address","city","description"]}', function(data) {
$.post("https://g1.data.duniter.fr/user/profile/_search", '{"query":{"bool":{"must":[{"exists":{"field":"geoPoint"}}]}},"from":0,"size":0,"_source":[]}', function(data) {
......@@ -284,11 +298,13 @@ $.post("https://g1.data.duniter.fr/user/profile/_search", '{"query":{"bool":{"mu
if(url_account != null && url_account in accounts) {
active_account = url_account;
accounts[active_account].point.fire("popupopen");
if(getParam("only") == 1) {
if(getParam("only", 0) > 0) {
$("#mapmenu-idcard-onlycertsofsel").attr("checked", "checked");
$("#mapmenu-idcard-onlycertsofsel-n").attr("value", "1");
$("#mapmenu-idcard-onlycertsofsel-n").attr("value", getParam("only"));
onlyShowCertsOfSelected();
}
if(getParam("goto", 0) > 0)
map.setView(accounts[active_account].pos, getParam("goto"));
}
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment