feat(cache): implement centralized caching layer for improved performance and reduced API calls

feat(microsoft-integration): enhance inbox and events fetching with caching support
feat(auth): include theme and notification settings in user data retrieval
feat(profile): improve password visibility toggle functionality
feat(planner): optimize event synchronization with Outlook using caching
fix(notifications): update mail badge handling for mobile and desktop
This commit is contained in:
2026-09-10 15:19:46 +02:00
parent 5310b87fe5
commit 72ad1fb70e
15 changed files with 334 additions and 85 deletions
+9 -7
View File
@@ -471,8 +471,8 @@ require_once __DIR__ . '/includes/header.php';
<span class="text-[10px] text-slate-500">Wordt veilig en versleuteld opgeslagen</span>
</div>
<div class="relative">
<input type="password" id="adminClientSecret" name="client_secret" value="<?= !empty($appConfig['client_secret']) ? '••••••••••••••••' : '' ?>" placeholder="Voer de Secret Value in uit Azure..." class="w-full bg-white dark:bg-[#0c0f17] border border-slate-300 dark:border-slate-800 rounded-xl pl-3.5 pr-10 py-2.5 text-xs text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-600 focus:outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500">
<button type="button" onclick="toggleAdminSecret()" class="absolute inset-y-0 right-0 pr-3 flex items-center text-slate-400 hover:text-slate-600 dark:hover:text-slate-300">
<input type="password" id="adminClientSecret" name="client_secret" value="<?= htmlspecialchars($appConfig['client_secret'] ?? '') ?>" placeholder="Voer de Secret Value in uit Azure..." class="w-full bg-white dark:bg-[#0c0f17] border border-slate-300 dark:border-slate-800 rounded-xl pl-3.5 pr-10 py-2.5 text-xs text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-600 focus:outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500">
<button type="button" onclick="toggleAdminSecret()" id="toggleSecretBtn" title="Toon / verberg secret" class="absolute inset-y-0 right-0 pr-3 flex items-center text-slate-400 hover:text-slate-600 dark:hover:text-slate-300 cursor-pointer">
<i data-lucide="eye" class="w-4 h-4" id="eyeSecretIcon"></i>
</button>
</div>
@@ -1204,16 +1204,18 @@ function copyAdminRedirectUri() {
function toggleAdminSecret() {
const input = document.getElementById('adminClientSecret');
const icon = document.getElementById('eyeSecretIcon');
if (!input || !icon) return;
const btn = document.getElementById('toggleSecretBtn');
if (!input) return;
if (input.type === 'password') {
input.type = 'text';
icon.setAttribute('data-lucide', 'eye-off');
if (btn) btn.innerHTML = '<i data-lucide="eye-off" class="w-4 h-4"></i>';
} else {
input.type = 'password';
icon.setAttribute('data-lucide', 'eye');
if (btn) btn.innerHTML = '<i data-lucide="eye" class="w-4 h-4"></i>';
}
if (window.lucide && typeof lucide.createIcons === 'function') {
lucide.createIcons();
}
if (window.lucide) lucide.createIcons();
}
function toggleAdminGuide() {