132 lines
5.5 KiB
JavaScript
132 lines
5.5 KiB
JavaScript
import { hideElement, showElement } from "./methods.js";
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
const navLinks = document.querySelectorAll(".sidebar .nav-item .nav-link");
|
|
const currentUrl = window.location.href.split('#')[0]; // Base URL without hash
|
|
|
|
navLinks.forEach((link) => {
|
|
const linkUrl = link.href.split('#')[0]; // Base URL of the link without hash
|
|
const linkHash = link.href.split('#')[1]; // Extract the hash (if present) from the link
|
|
|
|
// Compare base URLs to set active class for different pages
|
|
if (currentUrl === linkUrl) {
|
|
// If there is no hash (e.g., home link), mark it active
|
|
if (!window.location.hash && !linkHash) {
|
|
link.classList.add("active");
|
|
}
|
|
|
|
// Check if the current URL hash matches the link's hash
|
|
if (window.location.hash && window.location.hash.substring(1) === linkHash) {
|
|
link.classList.add("active");
|
|
}
|
|
}
|
|
|
|
// Handle click events to update the active class
|
|
link.addEventListener("click", function () {
|
|
navLinks.forEach((nav) => nav.classList.remove("active"));
|
|
link.classList.add("active");
|
|
});
|
|
});
|
|
});
|
|
document.getElementById("sidebarToggle").addEventListener("click", function () {
|
|
const sidebar = document.getElementById("accordionSidebar");
|
|
const contentWrapper = document.getElementById("content-wrapper");
|
|
|
|
// Toggle minimized class for sidebar
|
|
sidebar.classList.toggle("minimized");
|
|
|
|
// Adjust content based on sidebar state
|
|
if (sidebar.classList.contains("minimized")) {
|
|
contentWrapper.classList.add("collapsed");
|
|
contentWrapper.classList.remove("expanded");
|
|
} else {
|
|
contentWrapper.classList.add("expanded");
|
|
contentWrapper.classList.remove("collapsed");
|
|
}
|
|
});
|
|
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
const datasetButtons = document.querySelectorAll(".btn-dataset");
|
|
|
|
datasetButtons.forEach((button) => {
|
|
button.addEventListener("click", function () {
|
|
// Remove "active" class from all buttons
|
|
datasetButtons.forEach((btn) => btn.classList.remove("active"));
|
|
|
|
// Add "active" class to the clicked button
|
|
this.classList.add("active");
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
if (document.getElementById("backToDatasetButton")) {
|
|
document.getElementById("backToDatasetButton").addEventListener("click", function () {
|
|
// Redirect to the dataset selection section
|
|
window.location.href = "/#dataset_selection"; // Replace with the actual URL
|
|
});
|
|
}
|
|
|
|
if (document.getElementById("viewCounterfactualsButton")) {
|
|
document.getElementById("viewCounterfactualsButton").addEventListener("click", function () {
|
|
// Redirect to the counterfactuals view section
|
|
window.location.href = "/counterfactuals.html"; // Replace with the actual URL
|
|
});
|
|
}
|
|
|
|
if (document.getElementById("viewPreTrainedButton")) {
|
|
document.getElementById("viewPreTrainedButton").addEventListener("click", function () {
|
|
// Redirect to the counterfactuals view section
|
|
window.location.href = "/charts.html"; // Replace with the actual URL
|
|
});
|
|
}
|
|
|
|
// JavaScript to handle delete functionality
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
document.getElementById("radio_buttons").addEventListener("click", function (event) {
|
|
// Identify if the click originated from the button or its child span
|
|
let targetButton = event.target.closest(".delete-file-icon");
|
|
// Only proceed if a delete-file-icon button was clicked
|
|
if (targetButton) {
|
|
// Get the filename from the data-file attribute
|
|
const fileName = targetButton.getAttribute("data-file");
|
|
|
|
const fileNameValue = targetButton.getAttribute("data-file-value");
|
|
|
|
let index = -1
|
|
|
|
const currentUrl = window.location.pathname;
|
|
if (currentUrl.includes("counterfactuals.html")) {
|
|
index = targetButton.getAttribute("id");
|
|
document.getElementById("confirmDeleteButton").setAttribute("value", index);
|
|
}
|
|
// Set the file name in the modal for display
|
|
document.getElementById("fileToDeleteName").innerText = fileName;
|
|
|
|
// Set the filename in the confirm button for reference during deletion
|
|
document.getElementById("confirmDeleteButton").setAttribute("data-file", fileName);
|
|
|
|
document.getElementById("confirmDeleteButton").setAttribute("data-file-value", fileNameValue);
|
|
|
|
// Show the delete confirmation modal
|
|
$('#deleteFileModal').modal('show');
|
|
|
|
// Check if #cancel_delete_buttons_modal_delete has display: none
|
|
const cancelDeleteElement = document.getElementById("cancel_delete_buttons_modal_delete");
|
|
if (cancelDeleteElement && cancelDeleteElement.style.display === "none") {
|
|
showElement(cancelDeleteElement); // Replace with your show logic
|
|
}
|
|
|
|
// Check if #success-message-modal-delete has display: none
|
|
const successMessageElement = document.getElementById("success-message-modal-delete");
|
|
if (successMessageElement) {
|
|
if (successMessageElement.style.display === "none") {
|
|
console.log("Element #success-message-modal-delete is hidden (display: none)");
|
|
} else {
|
|
hideElement(successMessageElement); // Replace with your hide logic
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}); |