Jira bord changes
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user