From 42fa8304ddb811b0f725f245130f70c0f5e86a6c Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 04 Nov 2025 06:12:02 +0000
Subject: [PATCH] =Refactored LoginManager to be more extensible and configurable, as well as an AjaxRateLimiter
---
assets/js/dash/UtilityFunctions.js | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/assets/js/dash/UtilityFunctions.js b/assets/js/dash/UtilityFunctions.js
index ec64aac..4c337dd 100644
--- a/assets/js/dash/UtilityFunctions.js
+++ b/assets/js/dash/UtilityFunctions.js
@@ -420,7 +420,22 @@
window.showToast = function(message, type='success', actions={}){
window.jvbNotifications.showToast(message, type, actions);
}
+window.dateFormatter = new Intl.DateTimeFormat('en-CA', {
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit',
+ timeZoneName: 'short'
+ });
+window.formatDate = function(date) {
+ if (!(date instanceof Date && !isNaN(date))) {
+ date = new Date(date);
+ }
+ return window.dateFormatter.format(date);
+}
/**
* Outputs the set text as if a typewriter were writing it
@@ -801,8 +816,6 @@
schedule(key, callback, delay = 1000) {
this.cancel(key);
- console.log('Scheduling action: ', key);
- console.log('With callback', callback);
this.timeouts.set(key, setTimeout(() => {
callback();
this.timeouts.delete(key);
@@ -811,7 +824,6 @@
cancel(key) {
if (this.timeouts.has(key)) {
- console.log('Cancelling ', key);
clearTimeout(this.timeouts.get(key));
this.timeouts.delete(key);
}
@@ -819,7 +831,6 @@
cleanup() {
for (let timeout of this.timeouts.values()) {
- console.log('clearing timeout: ', timeout);
clearTimeout(timeout);
}
this.timeouts.clear();
--
Gitblit v1.10.0