Jira bord changes

This commit is contained in:
2026-09-10 13:50:31 +02:00
parent 03c7fb3067
commit 25c2ffeef8
6 changed files with 1402 additions and 228 deletions
+101
View File
@@ -272,6 +272,107 @@ try {
exit;
}
// 5a. Jira Wachtrijfilters Ophalen
if ($action === 'get_jira_queue_filters') {
$onlyActive = !isset($_GET['all']) && !isset($_POST['all']);
$filters = jira_get_queue_filters($onlyActive);
echo json_encode(['success' => true, 'filters' => $filters]);
exit;
}
// 5b. Jira Wachtrijfilter Opslaan / Wijzigen (Alleen Beheerders)
if ($action === 'save_jira_queue_filter') {
if (($user['role'] ?? '') !== 'ADMIN') {
echo json_encode(['error' => 'Alleen beheerders mogen wachtrijfilters aanpassen.']);
exit;
}
$input = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$id = (int)($input['id'] ?? 0);
$filterCode = strtoupper(trim($input['filter_code'] ?? ''));
$filterName = trim($input['filter_name'] ?? '');
$projectKey = strtoupper(trim($input['project_key'] ?? ''));
$jqlClause = trim($input['jql_clause'] ?? '');
$description = trim($input['description'] ?? '');
$isActive = isset($input['is_active']) ? (int)$input['is_active'] : 1;
$sortOrder = (int)($input['sort_order'] ?? 0);
if (empty($filterCode) || empty($filterName) || empty($jqlClause)) {
echo json_encode(['error' => 'Code, naam en JQL-clausule zijn verplicht.']);
exit;
}
if ($id > 0) {
$stmt = $db->prepare("
UPDATE jira_queue_filters
SET filter_code = ?, filter_name = ?, project_key = ?, jql_clause = ?, description = ?, is_active = ?, sort_order = ?, updated_at = NOW()
WHERE id = ?
");
$stmt->execute([$filterCode, $filterName, $projectKey ?: null, $jqlClause, $description, $isActive, $sortOrder, $id]);
} else {
$stmt = $db->prepare("
INSERT INTO jira_queue_filters (filter_code, filter_name, project_key, jql_clause, description, is_active, sort_order)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
filter_name = VALUES(filter_name),
project_key = VALUES(project_key),
jql_clause = VALUES(jql_clause),
description = VALUES(description),
is_active = VALUES(is_active),
sort_order = VALUES(sort_order),
updated_at = NOW()
");
$stmt->execute([$filterCode, $filterName, $projectKey ?: null, $jqlClause, $description, $isActive, $sortOrder]);
}
echo json_encode(['success' => true, 'message' => "Wachtrijfilter '{$filterName}' is succesvol opgeslagen."]);
exit;
}
// 5c. Jira Wachtrijfilter Verwijderen (Alleen Beheerders)
if ($action === 'delete_jira_queue_filter') {
if (($user['role'] ?? '') !== 'ADMIN') {
echo json_encode(['error' => 'Alleen beheerders mogen wachtrijfilters verwijderen.']);
exit;
}
$input = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$id = (int)($input['id'] ?? 0);
$filterCode = trim($input['filter_code'] ?? '');
if ($id > 0) {
$stmt = $db->prepare("DELETE FROM jira_queue_filters WHERE id = ?");
$stmt->execute([$id]);
} elseif (!empty($filterCode)) {
$stmt = $db->prepare("DELETE FROM jira_queue_filters WHERE filter_code = ?");
$stmt->execute([$filterCode]);
} else {
echo json_encode(['error' => 'Filter ID of code ontbreekt.']);
exit;
}
echo json_encode(['success' => true, 'message' => 'Wachtrijfilter is verwijderd.']);
exit;
}
// 5d. Standaard Wachtrijfilter Toewijzen aan Gebruiker (Beheerders of Gebruiker zelf)
if ($action === 'set_user_jira_filter') {
$input = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$targetUserId = (int)($input['user_id'] ?? $user['id']);
$filterCode = trim($input['filter_code'] ?? '');
if ($targetUserId !== (int)$user['id'] && ($user['role'] ?? '') !== 'ADMIN') {
echo json_encode(['error' => 'Geen toestemming om instellingen van andere gebruikers te wijzigen.']);
exit;
}
$stmt = $db->prepare("UPDATE users SET default_jira_filter_code = ? WHERE id = ?");
$stmt->execute([$filterCode ?: null, $targetUserId]);
echo json_encode(['success' => true, 'message' => 'Wachtrijvoorkeur is succesvol bijgewerkt.']);
exit;
}
echo json_encode(['error' => 'Onbekende actie']);
} catch (Exception $e) {
http_response_code(500);