2023-06-02 20:15:10 +01:00
|
|
|
function updateFavoritesDropdown() {
|
2024-02-16 22:49:06 +01:00
|
|
|
var dropdown = document.querySelector("#favoritesDropdown");
|
2024-02-11 11:47:00 -05:00
|
|
|
|
2024-02-16 22:49:06 +01:00
|
|
|
if (!dropdown) {
|
|
|
|
console.error('Dropdown element with ID "favoritesDropdown" not found!');
|
2024-10-14 22:34:41 +01:00
|
|
|
return;
|
2024-02-16 22:49:06 +01:00
|
|
|
}
|
2024-10-14 22:34:41 +01:00
|
|
|
dropdown.innerHTML = "";
|
2023-06-02 20:15:10 +01:00
|
|
|
|
2024-02-16 22:49:06 +01:00
|
|
|
var hasFavorites = false;
|
2024-10-14 22:34:41 +01:00
|
|
|
var addedFeatures = new Set();
|
2023-06-02 20:15:10 +01:00
|
|
|
|
2024-02-16 22:49:06 +01:00
|
|
|
for (var i = 0; i < localStorage.length; i++) {
|
|
|
|
var key = localStorage.key(i);
|
2024-10-14 22:34:41 +01:00
|
|
|
var value = localStorage.getItem(key);
|
|
|
|
|
|
|
|
if (value === "favorite") {
|
2024-02-16 22:49:06 +01:00
|
|
|
var navbarEntry = document.querySelector(`a[href='${key}']`);
|
|
|
|
if (navbarEntry) {
|
2024-10-14 22:34:41 +01:00
|
|
|
var featureName = navbarEntry.textContent.trim();
|
|
|
|
|
|
|
|
if (!addedFeatures.has(featureName)) {
|
|
|
|
var dropdownItem = document.createElement("div");
|
|
|
|
dropdownItem.className = "dropdown-item d-flex justify-content-between align-items-center";
|
|
|
|
|
|
|
|
// Create a wrapper for the original content
|
|
|
|
var contentWrapper = document.createElement("div");
|
|
|
|
contentWrapper.className = "d-flex align-items-center flex-grow-1";
|
|
|
|
contentWrapper.style.textDecoration = "none";
|
|
|
|
contentWrapper.style.color = "inherit";
|
|
|
|
|
|
|
|
// Clone the original content
|
|
|
|
var originalContent = navbarEntry.querySelector('div').cloneNode(true);
|
|
|
|
contentWrapper.appendChild(originalContent);
|
|
|
|
|
|
|
|
// Create the remove button
|
|
|
|
var removeButton = document.createElement("button");
|
|
|
|
removeButton.className = "btn btn-sm btn-link p-0 ml-2";
|
|
|
|
removeButton.innerHTML = '<i class="material-symbols-rounded close-icon" style="font-size: 18px;">close</i>';
|
|
|
|
removeButton.onclick = function(itemKey, event) {
|
|
|
|
event.preventDefault();
|
|
|
|
event.stopPropagation();
|
|
|
|
localStorage.removeItem(itemKey);
|
|
|
|
updateFavoritesSection();
|
|
|
|
updateFavoritesDropdown();
|
|
|
|
filterCards();
|
|
|
|
}.bind(null, key);
|
|
|
|
|
|
|
|
// Add click event to the content wrapper
|
|
|
|
contentWrapper.onclick = function(itemHref, event) {
|
|
|
|
event.preventDefault();
|
|
|
|
window.location.href = itemHref;
|
|
|
|
}.bind(null, navbarEntry.href);
|
|
|
|
|
|
|
|
dropdownItem.appendChild(contentWrapper);
|
|
|
|
dropdownItem.appendChild(removeButton);
|
|
|
|
dropdown.appendChild(dropdownItem);
|
|
|
|
hasFavorites = true;
|
|
|
|
addedFeatures.add(featureName);
|
|
|
|
}
|
2024-02-16 22:49:06 +01:00
|
|
|
} else {
|
|
|
|
console.warn(`Navbar entry not found for key: ${key}`);
|
|
|
|
}
|
2023-08-22 23:03:21 +01:00
|
|
|
}
|
2024-02-16 22:49:06 +01:00
|
|
|
}
|
2023-06-02 20:15:10 +01:00
|
|
|
|
2024-02-16 22:49:06 +01:00
|
|
|
if (!hasFavorites) {
|
|
|
|
var defaultItem = document.createElement("a");
|
|
|
|
defaultItem.className = "dropdown-item";
|
2024-10-14 22:34:41 +01:00
|
|
|
defaultItem.textContent = noFavourites || "No favorites added";
|
2024-02-16 22:49:06 +01:00
|
|
|
dropdown.appendChild(defaultItem);
|
|
|
|
}
|
2023-06-02 20:15:10 +01:00
|
|
|
}
|