diff --git a/_includes/overview.html b/_includes/overview.html index bdce1056870d1c53c4e0ecf2a969d831982c5246..e5c49dbe22f717c801133342e6d6a95e9e488c9d 100644 --- a/_includes/overview.html +++ b/_includes/overview.html @@ -69,6 +69,6 @@ </div> <script> $( document ).ready(function() { - get_distances(); + get_distances_tags(); }); </script> diff --git a/assets/js/script.js b/assets/js/script.js index 90d1d532ef325755ac9681eaaf5ad9a29d4a774c..c7811e0363fdce1b22ec63df94f05f88ce9238ce 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -34,13 +34,40 @@ function get_by_tag(tags){ ); $(tag_class).toggleClass('d-none',false); + + var p=['tag','subtag','lat','long']; + var tag=tags[0]; + var subtag=tags[1]; + var lat=undefined; + var long=undefined; + + var param=[]; + + p.forEach( + function(v){ + if( eval(v) != undefined ){ + var pp=eval(v); + } else { + var pp=getQueryVariable(v); + } + if( pp != undefined ) param.push(v + '='+pp); + } + ); + + ChangeUrl( '', (( param != '' ) ? '?' : '' )+param.join('&') ); } -function get_distances(){ +function get_distances_tags(){ + var url_string = window.location.href; var url = new URL(url_string); var lat = url.searchParams.get('lat'); var long = url.searchParams.get('long'); + + var tag = url.searchParams.get('tag'); + var subtag = url.searchParams.get('subtag'); + get_by_tag([ tag, subtag ]); + if( lat == null || long == null ){ lat=-100; } @@ -58,7 +85,6 @@ function get_distances(){ } ); } - function formInput(obj){ if( $(obj).hasClass('form-decimals') ){ $(obj).toggleClass('is-invalid', ! $.isNumeric( $(obj).val() ) ); @@ -115,3 +141,23 @@ function importYml(){ } ); } + +function getQueryVariable(variable) +{ + var query = window.location.search.substring(1); + var vars = query.split("&"); + for (var i=0;i<vars.length;i++) { + var pair = vars[i].split("="); + if(pair[0] == variable){return pair[1];} + } +} + +function ChangeUrl(page, query ) { + console.log( query ); + if (typeof (history.replaceState) != "undefined") { + var obj = { Page: page, Url: query }; + history.replaceState(obj, obj.Page, obj.Url); + } else { + alert("Browser does not support HTML5."); + } +}