58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
let timezone = luxon.DateTime.now().zone.name;
 | 
						|
const browserTimezone = luxon.DateTime.now().zone.name;
 | 
						|
let botTimezone = "UTC";
 | 
						|
 | 
						|
function update_times() {
 | 
						|
    document.querySelectorAll("span.set-timezone").forEach((element) => {
 | 
						|
        element.textContent = timezone;
 | 
						|
    });
 | 
						|
    document.querySelectorAll("span.set-time").forEach((element) => {
 | 
						|
        element.textContent = luxon.DateTime.now().setZone(timezone).toFormat("HH:mm");
 | 
						|
    });
 | 
						|
    document.querySelectorAll("span.browser-timezone").forEach((element) => {
 | 
						|
        element.textContent = browserTimezone;
 | 
						|
    });
 | 
						|
    document.querySelectorAll("span.browser-time").forEach((element) => {
 | 
						|
        element.textContent = luxon.DateTime.now().toFormat("HH:mm");
 | 
						|
    });
 | 
						|
    document.querySelectorAll("span.bot-timezone").forEach((element) => {
 | 
						|
        element.textContent = botTimezone;
 | 
						|
    });
 | 
						|
    document.querySelectorAll("span.bot-time").forEach((element) => {
 | 
						|
        element.textContent = luxon.DateTime.now().setZone(botTimezone).toFormat("HH:mm");
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
window.setInterval(() => {
 | 
						|
    update_times();
 | 
						|
}, 30000);
 | 
						|
 | 
						|
document.getElementById("set-bot-timezone").addEventListener("click", () => {
 | 
						|
    timezone = botTimezone;
 | 
						|
    update_times();
 | 
						|
});
 | 
						|
document.getElementById("set-browser-timezone").addEventListener("click", () => {
 | 
						|
    timezone = browserTimezone;
 | 
						|
    update_times();
 | 
						|
});
 | 
						|
document.getElementById("update-bot-timezone").addEventListener("click", () => {
 | 
						|
    timezone = browserTimezone;
 | 
						|
    fetch("/dashboard/api/user", {
 | 
						|
        method: "PATCH",
 | 
						|
        headers: {
 | 
						|
            Accept: "application/json",
 | 
						|
            "Content-Type": "application/json",
 | 
						|
        },
 | 
						|
        body: JSON.stringify({ timezone: timezone }),
 | 
						|
    })
 | 
						|
        .then((response) => response.json())
 | 
						|
        .then((data) => {
 | 
						|
            if (data.error) {
 | 
						|
                show_error(data.error);
 | 
						|
            } else {
 | 
						|
                botTimezone = browserTimezone;
 | 
						|
                update_times();
 | 
						|
            }
 | 
						|
        });
 | 
						|
});
 |