diff --git a/admin.php b/admin.php
index 6da445e..cc01e22 100644
--- a/admin.php
+++ b/admin.php
@@ -1349,7 +1349,20 @@ require_once __DIR__ . '/includes/header.php';
@@ -1495,10 +1508,14 @@ require_once __DIR__ . '/includes/header.php';
-
+
+
+
+
+ 0
+
+
+
+
${statusRowsHtml}
@@ -1293,6 +1473,7 @@ function renderStatusCheckboxes() {
updateStatusCounts();
updateStatusDropdownLabel();
updateProjectStatusDropdownVisibility();
+ updateAssignedPillState();
}
function updateProjectStatusDropdownVisibility() {
@@ -1386,6 +1567,11 @@ function updateStatusCounts() {
projIssues = projIssues.filter(iss => isIssueInQueue(iss, currentProject));
}
+ // Toegewezen aan mij filter per project meenemen in de status tellingen
+ if (isProjectOnlyAssignedActive(currentProject, pKey)) {
+ projIssues = projIssues.filter(iss => isIssueAssignedToMe(iss));
+ }
+
const projTotalEl = document.getElementById(`projTotal_${pKey}`);
if (projTotalEl) {
projTotalEl.innerText = `(${projIssues.length})`;
@@ -1401,6 +1587,8 @@ function updateStatusCounts() {
}
});
});
+
+ updateAssignedPillState();
}
function onStatusCheckboxChange(projectKey) {
@@ -1556,11 +1744,18 @@ function updateStatusDropdownLabel() {
badgeEl.className = "px-1.5 py-0.5 rounded-full text-[10px] font-bold bg-indigo-100 dark:bg-indigo-950/60 text-indigo-700 dark:text-indigo-300";
}
}
+
+ // Toon indicator indien Toegewezen aan mij actief is voor dit project
+ const isAssignedOnly = projectOnlyAssigned.has(pKey) || projectOnlyAssigned.has('ALL');
+ if (isAssignedOnly) {
+ hasAnyCustomFilter = true;
+ labelEl.innerText += " • Mijn";
+ }
});
const btnReset = document.getElementById('btnResetFiltersInline');
if (btnReset) {
- const isCustom = hasAnyCustomFilter || currentProject !== '' || document.getElementById('jiraSearchInput')?.value;
+ const isCustom = hasAnyCustomFilter || currentProject !== '' || projectOnlyAssigned.size > 0 || document.getElementById('jiraSearchInput')?.value;
if (isCustom) btnReset.classList.remove('hidden');
else btnReset.classList.add('hidden');
}
@@ -1628,6 +1823,7 @@ function selectProject(proj) {
closeAllProjectStatusDropdowns();
updateProjectPills();
updateProjectStatusDropdownVisibility();
+ updateAssignedPillState();
updateStatusCounts();
applyFilters();
}
@@ -1942,7 +2138,13 @@ function updateProjectCounts() {
}
const elAll = document.getElementById('projCount_all');
- if (elAll) elAll.innerText = currentList.length;
+ if (elAll) {
+ let allFiltered = currentList;
+ if (projectOnlyAssigned.has('ALL')) {
+ allFiltered = allFiltered.filter(iss => isIssueAssignedToMe(iss));
+ }
+ elAll.innerText = allFiltered.length;
+ }
const pills = document.querySelectorAll('.project-pill');
pills.forEach(p => {
@@ -1950,7 +2152,11 @@ function updateProjectCounts() {
if (!pKey) return;
const el = document.getElementById(`projCount_${pKey}`);
if (el) {
- el.innerText = currentList.filter(iss => isIssueInQueue(iss, pKey)).length;
+ let pList = currentList.filter(iss => isIssueInQueue(iss, pKey));
+ if (projectOnlyAssigned.has(pKey.toUpperCase()) || projectOnlyAssigned.has('ALL')) {
+ pList = pList.filter(iss => isIssueAssignedToMe(iss));
+ }
+ el.innerText = pList.length;
}
});
}
@@ -1995,6 +2201,10 @@ function clearSearch() {
function resetAllFilters() {
currentProject = '';
currentQueue = '';
+ projectOnlyAssigned.clear();
+ try {
+ localStorage.removeItem('fociz_jira_project_only_assigned');
+ } catch (e) {}
closeAllProjectStatusDropdowns();
selectAllStatuses(true);
@@ -2009,6 +2219,7 @@ function resetAllFilters() {
document.getElementById('clearSearchBtn')?.classList.add('hidden');
updateProjectPills();
updateProjectStatusDropdownVisibility();
+ updateAssignedPillState();
updateStatusCounts();
applyFilters();
}
@@ -2048,6 +2259,12 @@ function applyFilters() {
}
}
+ // 3. Toegewezen aan mij (uitvoerder) per project filter
+ const isAssignedFilterActive = isProjectOnlyAssignedActive(projectVal, issPKey);
+ if (isAssignedFilterActive && !isIssueAssignedToMe(iss)) {
+ return false;
+ }
+
// 4. Type filter (uit drawer)
if (typeVal && (iss.issue_type || '').toLowerCase() !== typeVal) {
return false;
|