From 5267ed0bd130fa5a85db3ae813910e66d327cde2 Mon Sep 17 00:00:00 2001 From: TonyFord <tonyford@strategy-investor.de> Date: Fri, 28 Feb 2020 14:15:22 +0100 Subject: [PATCH] add changing url parameter in browser for bookmark or copy link feature. --- _includes/overview.html | 2 +- assets/js/script.js | 50 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/_includes/overview.html b/_includes/overview.html index bdce105..e5c49db 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 90d1d53..c7811e0 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."); + } +} -- GitLab