mirror of
https://github.com/ellite/Wallos.git
synced 2025-12-30 17:59:54 -06:00
refactor: run linter and cleanup php files fix: not every payment cycle was shown on the calendar feat: also show previous payments on the calendar for the current month
97 lines
3.2 KiB
JavaScript
97 lines
3.2 KiB
JavaScript
let isDropdownOpen = false;
|
|
|
|
function toggleDropdown() {
|
|
const dropdown = document.querySelector('.dropdown');
|
|
dropdown.classList.toggle('is-open');
|
|
isDropdownOpen = !isDropdownOpen;
|
|
}
|
|
|
|
function showErrorMessage(message) {
|
|
const toast = document.querySelector(".toast#errorToast");
|
|
(closeIcon = document.querySelector(".close-error")),
|
|
(errorMessage = document.querySelector(".errorMessage")),
|
|
(progress = document.querySelector(".progress.error"));
|
|
let timer1, timer2;
|
|
errorMessage.textContent = message;
|
|
toast.classList.add("active");
|
|
progress.classList.add("active");
|
|
timer1 = setTimeout(() => {
|
|
toast.classList.remove("active");
|
|
closeIcon.removeEventListener("click", () => { });
|
|
}, 5000);
|
|
|
|
timer2 = setTimeout(() => {
|
|
progress.classList.remove("active");
|
|
}, 5300);
|
|
|
|
closeIcon.addEventListener("click", () => {
|
|
toast.classList.remove("active");
|
|
|
|
setTimeout(() => {
|
|
progress.classList.remove("active");
|
|
}, 300);
|
|
|
|
clearTimeout(timer1);
|
|
clearTimeout(timer2);
|
|
closeIcon.removeEventListener("click", () => { });
|
|
});
|
|
}
|
|
|
|
function showSuccessMessage(message) {
|
|
const toast = document.querySelector(".toast#successToast");
|
|
(closeIcon = document.querySelector(".close-success")),
|
|
(successMessage = document.querySelector(".successMessage")),
|
|
(progress = document.querySelector(".progress.success"));
|
|
let timer1, timer2;
|
|
successMessage.textContent = message;
|
|
toast.classList.add("active");
|
|
progress.classList.add("active");
|
|
timer1 = setTimeout(() => {
|
|
toast.classList.remove("active");
|
|
closeIcon.removeEventListener("click", () => { });
|
|
}, 5000);
|
|
|
|
timer2 = setTimeout(() => {
|
|
progress.classList.remove("active");
|
|
}, 5300);
|
|
|
|
closeIcon.addEventListener("click", () => {
|
|
toast.classList.remove("active");
|
|
|
|
setTimeout(() => {
|
|
progress.classList.remove("active");
|
|
}, 300);
|
|
|
|
clearTimeout(timer1);
|
|
clearTimeout(timer2);
|
|
closeIcon.removeEventListener("click", () => { });
|
|
});
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
if (window.update_theme_settings) {
|
|
const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
const themePreference = prefersDarkMode ? 'dark' : 'light';
|
|
const darkThemeCss = document.querySelector("#dark-theme");
|
|
darkThemeCss.disabled = themePreference === 'light';
|
|
document.body.className = themePreference;
|
|
document.cookie = `inUseTheme=${themePreference}; expires=Fri, 31 Dec 9999 23:59:59 GMT`;
|
|
const themeColorMetaTag = document.querySelector('meta[name="theme-color"]');
|
|
themeColorMetaTag.setAttribute('content', themePreference === 'dark' ? '#222222' : '#FFFFFF');
|
|
}
|
|
|
|
document.addEventListener('mousedown', function (event) {
|
|
var dropdown = document.querySelector('.dropdown');
|
|
var dropdownContent = document.querySelector('.dropdown-content');
|
|
|
|
if (!dropdown.contains(event.target) && isDropdownOpen) {
|
|
dropdown.classList.remove('is-open');
|
|
isDropdownOpen = false;
|
|
}
|
|
});
|
|
|
|
document.querySelector('.dropdown-content').addEventListener('focus', function () {
|
|
isDropdownOpen = true;
|
|
});
|
|
}); |