This commit is contained in:
2024-02-05 21:22:17 +01:00
8 changed files with 147 additions and 14 deletions

View File

@@ -20,6 +20,39 @@ function doAccountAction(requestData, successMessage, failureMessage, silent=fal
});
}
function handlePageResponse(data){
if(data.Navigation){
document.getElementById("navbar").innerHTML = data.Navigation;
}
if(data.Page){
document.getElementById("pagearea").innerHTML = data.Page;
if(data.PageLocation){
history.pushState({}, "", data.PageLocation);
}
}
}
function doPageAction(requestData){
return fetch('/page', {
method: 'POST',
body: requestData,
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
return response.json();
})
.then(data => {
handlePageResponse(data);
})
.catch((error) => {
console.error('Error:', error);
});
}
function displayList(data, element_id, delete_function=null) {
const tableContainer = document.getElementById(element_id);
tableContainer.innerHTML = ""; // Clear previous content
@@ -86,13 +119,47 @@ function handleResponse(data, SuccessMessage, failureMessage) {
}, 3000);
}
function navigateTo(site, page){
const data = new URLSearchParams();
data.append("action", "getPage");
data.append("site", site);
data.append("page", page);
doPageAction(data);
}
function refreshNavbar(){
const data = new URLSearchParams();
data.append("action", "getNavigation");
doPageAction(data);
}
function logout() {
const data = new URLSearchParams();
data.append("action", "logout");
doAccountAction(data, "Logout Successful!", "Logout failed.").then(() => {
location.reload();
refreshNavbar();
navigateTo("", pageData.defaultPage);
// Expected output: "Success!"
});
}
let links = document.querySelectorAll('.navsite_link, .navpage_link');
// Add click event listener to each link
links.forEach(function(link) {
link.addEventListener('click', function(e) {
e.preventDefault();
// Get page and site information
let page = this.closest('.navpage_item').dataset.page;
let site = this.closest('.navsite_item').dataset.site;
if(site && page){
navigateTo(site, page);
}
// You can use this information to update the URL or perform other actions
});
});