diff --git a/resources/assets/javascripts/bootstrap/resources.js b/resources/assets/javascripts/bootstrap/resources.js index 07772f0f3dd0e8a19e0b41d70d5c6b7e5ca1854c..bda46dc6513284d58ef92f5b901e581319ca926a 100644 --- a/resources/assets/javascripts/bootstrap/resources.js +++ b/resources/assets/javascripts/bootstrap/resources.js @@ -633,25 +633,18 @@ STUDIP.ready(function () { } function updateViewURL(defaultView) { - var sURLVariables = window.location.href.split(/[?&]/); - var changed = false; - for (var i = 0; i < sURLVariables.length; i++) { - var sParameterName = sURLVariables[i].split('='); - if (sParameterName[0] == "defaultView") { - sParameterName[1] = defaultView; - sURLVariables[i] = sParameterName.join('='); - changed = true; - } - } - if (!changed) { - sURLVariables.push('defaultView=' + defaultView); - } + const url = new URL(window.location.href); + url.searchParams.set('defaultView', defaultView); + + // Push current view url to history + history.pushState({}, null, url.toString()); - let newurl = `${sURLVariables[0]}?${sURLVariables.slice(1).join('&')}`; - history.pushState({}, null, newurl); - var std_day = newurl.replace(/&?allday=\d+/, ''); - $('.booking-plan-std_view').attr('href', std_day); - $('.booking-plan-allday_view').attr('href', std_day + '&allday=1'); + // Set links accordingly + url.searchParams.delete('allday'); + $('.booking-plan-std_view').attr('href', url.toString()); + + url.searchParams.set('allday', 1); + $('.booking-plan-allday_view').attr('href', url.toString()); } function submitDatePicker() { @@ -705,27 +698,25 @@ STUDIP.ready(function () { jQuery(export_action).attr('href', export_url); } - //Now change the URL of the window. + // Now change the URL of the window. var changeddate = STUDIP.Fullcalendar.toRFC3339String(changedmoment).split('T')[0]; - var sURLVariables = window.location.href.split(/[?&]/); - var changed = false; - for (var i = 0; i < sURLVariables.length; i++) { - var sParameterName = sURLVariables[i].split('='); - if (sParameterName[0] == "defaultDate") { - sParameterName[1] = changeddate; - sURLVariables[i] = sParameterName.join('='); - changed = true; - } - } - if (!changed) { - sURLVariables.push('defaultDate=' + changeddate); - } - let newurl = `${sURLVariables[0]}?${sURLVariables.slice(1).join('&')}`; - history.pushState({}, null, newurl); - var std_day = newurl.replace(/&?allday=\d+/, ''); - $('.booking-plan-std_view').attr('href', std_day); - $('.booking-plan-allday_view').attr('href', std_day + '&allday=1'); + + const url = new URL(window.location.href); + url.searchParams.set('defaultDate', changeddate); + + // Update url in history + history.pushState({}, null, url.toString()); + + // Adjust links accordingly + url.searchParams.delete('allday'); + $('.booking-plan-std_view').attr('href', url.toString()); + + url.searchParams.set('allday', 1); + $('.booking-plan-allday_view').attr('href', url.toString()); + + // Update sidebar value $('#booking-plan-jmpdate').val(changedmoment.toLocaleDateString('de-DE')); + //Store the date in the sessionStorage: sessionStorage.setItem('booking_plan_date', changeddate) }