dodatki
This commit is contained in:
@@ -26,26 +26,26 @@ const footerHtml = `
|
||||
`;
|
||||
|
||||
function getCurrentTheme() {
|
||||
return document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light';
|
||||
return document.documentElement.getAttribute("data-theme") === "dark" ? "dark" : "light";
|
||||
}
|
||||
|
||||
function updateToggleState(theme) {
|
||||
const icon = document.getElementById('toggle-icon');
|
||||
const toggleButton = document.getElementById('theme-toggle');
|
||||
const icon = document.getElementById("toggle-icon");
|
||||
const toggleButton = document.getElementById("theme-toggle");
|
||||
|
||||
if (!icon || !toggleButton) {
|
||||
return;
|
||||
}
|
||||
|
||||
icon.textContent = theme === 'dark' ? '🌙' : '☀';
|
||||
toggleButton.setAttribute('aria-pressed', theme === 'dark' ? 'true' : 'false');
|
||||
toggleButton.setAttribute('aria-label', theme === 'dark' ? 'Svetli način' : 'Temni način');
|
||||
icon.textContent = theme === "dark" ? "🌙" : "☀";
|
||||
toggleButton.setAttribute("aria-pressed", theme === "dark" ? "true" : "false");
|
||||
toggleButton.setAttribute("aria-label", theme === "dark" ? "Svetli način" : "Temni način");
|
||||
}
|
||||
|
||||
function logout() {
|
||||
// Odstrani cookie tako, da ga nastaviš z max-age=0
|
||||
document.cookie = 'token=; max-age=0; path=/; secure; samesite=strict';
|
||||
document.cookie = 'username=; max-age=0; path=/; secure; samesite=strict';
|
||||
document.cookie = "token=; max-age=0; path=/; secure; samesite=strict";
|
||||
document.cookie = "username=; max-age=0; path=/; secure; samesite=strict";
|
||||
window.location.href = "/";
|
||||
}
|
||||
|
||||
@@ -59,23 +59,23 @@ document.addEventListener("DOMContentLoaded", function() {
|
||||
}
|
||||
|
||||
// Dodaj gumb za prijavo, če uporabnik ni prijavljen
|
||||
const isLoggedIn = document.cookie.split(';').some(cookie => cookie.trim().startsWith('token='));
|
||||
const isLoggedIn = document.cookie.split(";").some(cookie => cookie.trim().startsWith("token="));
|
||||
if (!isLoggedIn) {
|
||||
const navRight = document.querySelector('.nav-right');
|
||||
const navRight = document.querySelector(".nav-right");
|
||||
if (navRight) {
|
||||
const loginBtn = `<a class="nav-btn nav-btn-primary" href="/login.html">Prijava</a>`;
|
||||
// Najdi zadnji <a> element in dodaj gumb za njim
|
||||
const lastLink = navRight.querySelector('a:last-child');
|
||||
const lastLink = navRight.querySelector("a:last-child");
|
||||
document.getElementById("nav-login-holder").innerHTML = loginBtn;
|
||||
}
|
||||
} else {
|
||||
const navRight = document.querySelector('.nav-right');
|
||||
const navRight = document.querySelector(".nav-right");
|
||||
if (navRight) {
|
||||
const logoutBtn = `<a class="nav-btn nav-btn-primary" href="/">Odjava</a>`;
|
||||
// Najdi zadnji <a> element in dodaj gumb za njim
|
||||
const lastLink = navRight.querySelector('a:last-child');
|
||||
const lastLink = navRight.querySelector("a:last-child");
|
||||
document.getElementById("nav-login-holder").innerHTML = logoutBtn;
|
||||
document.querySelector('.nav-btn-primary').addEventListener('click', logout);
|
||||
document.querySelector(".nav-btn-primary").addEventListener("click", logout);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,20 +84,45 @@ document.addEventListener("DOMContentLoaded", function() {
|
||||
}
|
||||
|
||||
updateToggleState(getCurrentTheme());
|
||||
|
||||
// Univerzalne funkcionalnosti, ki so potrebne na več straneh
|
||||
const galleryImages = document.querySelectorAll(".page-gallery-image");
|
||||
galleryImages.forEach(image => {
|
||||
image.addEventListener("click", () => {
|
||||
const src = image.getAttribute("src");
|
||||
const alt = image.getAttribute("alt");
|
||||
const modalHtml = `
|
||||
<div class="modal" id="image-modal">
|
||||
<div class="modal-content">
|
||||
<span class="close">×</span>
|
||||
<img src="${src}" alt="${alt}" class="image-modal-img">
|
||||
<p>${alt}</p>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
document.body.insertAdjacentHTML("beforeend", modalHtml);
|
||||
const modal = document.getElementById("image-modal");
|
||||
modal.style.visibility = "visible";
|
||||
|
||||
modal.querySelector(".close").addEventListener("click", () => {
|
||||
modal.remove();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function toggleTheme() {
|
||||
const current = getCurrentTheme();
|
||||
const next = current === 'dark' ? 'light' : 'dark';
|
||||
document.documentElement.setAttribute('data-theme', next);
|
||||
localStorage.setItem('theme', next);
|
||||
const next = current === "dark" ? "light" : "dark";
|
||||
document.documentElement.setAttribute("data-theme", next);
|
||||
localStorage.setItem("theme", next);
|
||||
updateToggleState(next);
|
||||
}
|
||||
|
||||
matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
|
||||
if (!localStorage.getItem('theme')) {
|
||||
const theme = e.matches ? 'dark' : 'light';
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (e) => {
|
||||
if (!localStorage.getItem("theme")) {
|
||||
const theme = e.matches ? "dark" : "light";
|
||||
document.documentElement.setAttribute("data-theme", theme);
|
||||
updateToggleState(theme);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user