Snelheid
This commit is contained in:
+50
-43
@@ -127,12 +127,11 @@ if ($isOutlookConnected) {
|
||||
// Synchroniseer / reconcilieer Fociz taken direct met actuele Outlook data
|
||||
// Alleen uitvoeren indien events gewijzigd zijn of bij expliciete refresh om overtollige DB load te voorkomen
|
||||
$eventsHash = md5(json_encode($weekOutlookEvents));
|
||||
$lastReconciledHash = $_SESSION["last_reconciled_{$userId}"] ?? '';
|
||||
$cacheReconcileKey = "last_reconciled_{$userId}";
|
||||
$lastReconciledHash = fociz_cache_get($cacheReconcileKey, '');
|
||||
if ($eventsHash !== $lastReconciledHash || $forceRefresh) {
|
||||
microsoft_reconcile_tasks_with_outlook($userId, $weekStart, $weekEnd, $weekOutlookEvents);
|
||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||
$_SESSION["last_reconciled_{$userId}"] = $eventsHash;
|
||||
}
|
||||
fociz_cache_set($cacheReconcileKey, $eventsHash, 86400);
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
error_log("Outlook synchronisatiefout in planner: " . $e->getMessage());
|
||||
@@ -304,45 +303,7 @@ for ($i = 0; $i < 7; $i++) {
|
||||
];
|
||||
}
|
||||
|
||||
// 5. Haal Jira dashboard data op voor de snelle import widget en wachtrijfiltering
|
||||
$jiraAssignedIssues = [];
|
||||
$jiraTeamIssues = [];
|
||||
$jiraAllIssues = [];
|
||||
$jiraQueueFilters = [];
|
||||
$isJiraLive = false;
|
||||
try {
|
||||
$jiraDashboardData = jira_get_dashboard_data($userId, $forceRefresh);
|
||||
$jiraAssignedIssues = $jiraDashboardData['assigned_issues'] ?? [];
|
||||
$jiraTeamIssues = $jiraDashboardData['team_issues'] ?? [];
|
||||
$jiraQueueFilters = $jiraDashboardData['queue_filters'] ?? [];
|
||||
$isJiraLive = !empty($jiraDashboardData['success']) && empty($jiraDashboardData['is_demo']);
|
||||
|
||||
$seenJiraKeys = [];
|
||||
foreach (array_merge($jiraAssignedIssues, $jiraTeamIssues) as $iss) {
|
||||
if (!empty($iss['key']) && !isset($seenJiraKeys[$iss['key']])) {
|
||||
$seenJiraKeys[$iss['key']] = true;
|
||||
$jiraAllIssues[] = $iss;
|
||||
}
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
error_log("Fout bij ophalen Jira issues in planner: " . $e->getMessage());
|
||||
}
|
||||
$jiraIssues = $jiraAllIssues;
|
||||
|
||||
// 5b. Haal recente e-mails op voor de Outlook E-mail Widget
|
||||
$recentEmails = [];
|
||||
$unreadEmailCount = 0;
|
||||
$mailNeedsReconsent = false;
|
||||
try {
|
||||
$mailData = microsoft_fetch_inbox_messages($userId, 5, false, $forceRefresh);
|
||||
$recentEmails = $mailData['messages'] ?? [];
|
||||
$unreadEmailCount = (int)($mailData['unread_count'] ?? 0);
|
||||
$mailNeedsReconsent = !empty($mailData['needs_reconsent']);
|
||||
} catch (Throwable $e) {
|
||||
error_log("Fout bij ophalen recente e-mails in planner: " . $e->getMessage());
|
||||
}
|
||||
|
||||
// 5c. Widget Catalogus & Raster Indeling (Fociz v2.0)
|
||||
// 5. Widget Catalogus & Raster Indeling (Fociz v2.0)
|
||||
$availableWidgets = [
|
||||
'daily_goal' => ['id' => 'daily_goal', 'title' => 'Dagfocus & Hoofddoel', 'category' => 'Planning', 'icon' => 'target', 'enabled' => true, 'col_span' => 12, 'order' => 1, 'desc' => 'Centraal focusdoel voor de dag met snelle tellers'],
|
||||
'timeline' => ['id' => 'timeline', 'title' => 'Tijdlijn & Dag/Weekoverzicht', 'category' => 'Agenda', 'icon' => 'calendar', 'enabled' => true, 'col_span' => 12, 'order' => 2, 'desc' => 'Gecombineerd weekoverzicht, dagselectie en uren-tijdlijn met time-blocking en AI'],
|
||||
@@ -393,6 +354,52 @@ uasort($userWidgetLayout, function($a, $b) {
|
||||
return strcmp($a['id'] ?? '', $b['id'] ?? '');
|
||||
});
|
||||
|
||||
// 5b. Haal Jira dashboard data op voor de snelle import widget (indien ingeschakeld)
|
||||
$jiraAssignedIssues = [];
|
||||
$jiraTeamIssues = [];
|
||||
$jiraAllIssues = [];
|
||||
$jiraQueueFilters = [];
|
||||
$isJiraLive = false;
|
||||
$isJiraWidgetEnabled = !empty($userWidgetLayout['jira_queue']['enabled']);
|
||||
|
||||
if ($isJiraWidgetEnabled) {
|
||||
try {
|
||||
$jiraDashboardData = jira_get_dashboard_data($userId, $forceRefresh);
|
||||
$jiraAssignedIssues = $jiraDashboardData['assigned_issues'] ?? [];
|
||||
$jiraTeamIssues = $jiraDashboardData['team_issues'] ?? [];
|
||||
$jiraQueueFilters = $jiraDashboardData['queue_filters'] ?? [];
|
||||
$isJiraLive = !empty($jiraDashboardData['success']) && empty($jiraDashboardData['is_demo']);
|
||||
|
||||
$seenJiraKeys = [];
|
||||
foreach (array_merge($jiraAssignedIssues, $jiraTeamIssues) as $iss) {
|
||||
if (!empty($iss['key']) && !isset($seenJiraKeys[$iss['key']])) {
|
||||
$seenJiraKeys[$iss['key']] = true;
|
||||
$jiraAllIssues[] = $iss;
|
||||
}
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
error_log("Fout bij ophalen Jira issues in planner: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
$jiraIssues = $jiraAllIssues;
|
||||
|
||||
// 5c. Haal recente e-mails op voor de Outlook E-mail Widget (indien ingeschakeld)
|
||||
$recentEmails = [];
|
||||
$unreadEmailCount = 0;
|
||||
$mailNeedsReconsent = false;
|
||||
$isMailWidgetEnabled = !empty($userWidgetLayout['outlook_mail']['enabled']);
|
||||
|
||||
if ($isMailWidgetEnabled) {
|
||||
try {
|
||||
$mailData = microsoft_fetch_inbox_messages($userId, 5, false, $forceRefresh);
|
||||
$recentEmails = $mailData['messages'] ?? [];
|
||||
$unreadEmailCount = (int)($mailData['unread_count'] ?? 0);
|
||||
$mailNeedsReconsent = !empty($mailData['needs_reconsent']);
|
||||
} catch (Throwable $e) {
|
||||
error_log("Fout bij ophalen recente e-mails in planner: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Bereken dagstatistieken
|
||||
$completedTasksCount = 0;
|
||||
$pendingTasksCount = 0;
|
||||
|
||||
Reference in New Issue
Block a user