Merge pull request 'Jira aanpassingen' (#82) from dev into main
Reviewed-on: #82
This commit was merged in pull request #82.
This commit is contained in:
+56
-23
@@ -162,6 +162,8 @@ function ensure_tables_exist(PDO $pdo): void {
|
||||
"ALTER TABLE board_card_schedules ADD UNIQUE KEY uk_sched_card (card_id)",
|
||||
"CREATE TABLE IF NOT EXISTS `password_resets` (`id` INT AUTO_INCREMENT PRIMARY KEY, `email` VARCHAR(191) NOT NULL, `token` VARCHAR(64) NOT NULL UNIQUE, `expires_at` DATETIME NOT NULL, `used_at` DATETIME NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, INDEX (`email`), INDEX (`token`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci",
|
||||
"CREATE TABLE IF NOT EXISTS `jira_queue_filters` (`id` INT AUTO_INCREMENT PRIMARY KEY, `filter_code` VARCHAR(50) NOT NULL UNIQUE, `filter_name` VARCHAR(120) NOT NULL, `project_key` VARCHAR(50) NULL, `jql_clause` TEXT NOT NULL, `description` VARCHAR(255) NULL, `is_active` TINYINT(1) NOT NULL DEFAULT 1, `sort_order` INT NOT NULL DEFAULT 0, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci",
|
||||
// Jira: Meerdere wachtrijfilters per teamlid
|
||||
"ALTER TABLE users ADD COLUMN default_jira_filter_codes TEXT NULL AFTER default_jira_filter_code",
|
||||
// V2.0: Subtaken & Checklists
|
||||
"CREATE TABLE IF NOT EXISTS `task_subtasks` (`id` INT AUTO_INCREMENT PRIMARY KEY, `task_id` INT NOT NULL, `user_id` INT NOT NULL, `title` VARCHAR(255) NOT NULL, `is_completed` TINYINT(1) NOT NULL DEFAULT 0, `position` INT NOT NULL DEFAULT 0, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX (`task_id`, `position`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci",
|
||||
// Beveiliging: IP tracking & locatie-verificatie
|
||||
@@ -191,30 +193,61 @@ function ensure_tables_exist(PDO $pdo): void {
|
||||
}
|
||||
}
|
||||
|
||||
// Zorg dat de standaard Jira Servicedesk wachtrijfilters (DX en SD) aanwezig zijn
|
||||
// Zorg dat de standaard Jira wachtrijfilters (SD, IN, AAN, GEN, DX) aanwezig zijn
|
||||
try {
|
||||
$filterCount = (int)$pdo->query("SELECT COUNT(*) FROM jira_queue_filters")->fetchColumn();
|
||||
if ($filterCount === 0) {
|
||||
$insertFilterStmt = $pdo->prepare("
|
||||
INSERT INTO jira_queue_filters (filter_code, filter_name, project_key, jql_clause, description, is_active, sort_order)
|
||||
VALUES (?, ?, ?, ?, ?, 1, ?)
|
||||
");
|
||||
$insertFilterStmt->execute([
|
||||
'DX',
|
||||
'DX — Koppelingen, SSO & Migratie',
|
||||
'SD',
|
||||
'"Onderwerp logging[dropdown]" in (Koppelingen, SSO-koppeling, Rest-endpoints, Datadump, UWV-koppeling, Migratie)',
|
||||
'Servicedesk tickets met betrekking tot koppelingen, endpoints en datamigraties.',
|
||||
1
|
||||
]);
|
||||
$insertFilterStmt->execute([
|
||||
'SD',
|
||||
'SD — Regulier Servicedesk',
|
||||
'SD',
|
||||
'("Onderwerp logging[Dropdown]" = EMPTY OR "Onderwerp logging[Dropdown]" != Koppelingen AND "Onderwerp logging[Dropdown]" != Migratie AND "Onderwerp logging[Dropdown]" != SSO-koppeling AND "Onderwerp logging[Dropdown]" != UWV-koppeling AND "Onderwerp logging[Dropdown]" != Rest-endpoints AND "Onderwerp logging[Dropdown]" != Datadump)',
|
||||
'Reguliere servicedesk incidenten, algemene meldingen en gebruikersvragen.',
|
||||
2
|
||||
]);
|
||||
$existingCodes = $pdo->query("SELECT filter_code FROM jira_queue_filters")->fetchAll(PDO::FETCH_COLUMN) ?: [];
|
||||
$defaultFilters = [
|
||||
[
|
||||
'code' => 'SD',
|
||||
'name' => 'SD — Servicedesk',
|
||||
'project' => 'SD',
|
||||
'jql' => 'project = "SD"',
|
||||
'desc' => 'Servicedesk supportvragen en operationele meldingen.',
|
||||
'order' => 1
|
||||
],
|
||||
[
|
||||
'code' => 'IN',
|
||||
'name' => 'IN — Interfaces',
|
||||
'project' => 'IN',
|
||||
'jql' => 'project = "IN"',
|
||||
'desc' => 'Interface-koppelingen, API-endpoints en data-uitwisselingen.',
|
||||
'order' => 2
|
||||
],
|
||||
[
|
||||
'code' => 'AAN',
|
||||
'name' => 'AAN — Aanvragen',
|
||||
'project' => 'AAN',
|
||||
'jql' => 'project = "AAN"',
|
||||
'desc' => 'Klant- en gebruikersaanvragen en wijzigingsverzoeken.',
|
||||
'order' => 3
|
||||
],
|
||||
[
|
||||
'code' => 'GEN',
|
||||
'name' => 'GEN — General',
|
||||
'project' => 'GEN',
|
||||
'jql' => 'project = "GEN"',
|
||||
'desc' => 'Algemene taken, organisatie en platformprojecten.',
|
||||
'order' => 4
|
||||
],
|
||||
[
|
||||
'code' => 'DX',
|
||||
'name' => 'DX — Koppelingen & SSO',
|
||||
'project' => 'SD',
|
||||
'jql' => '"Onderwerp logging[dropdown]" in (Koppelingen, SSO-koppeling, Rest-endpoints, Datadump, UWV-koppeling, Migratie)',
|
||||
'desc' => 'Servicedesk tickets specifiek voor koppelingen en migraties.',
|
||||
'order' => 5
|
||||
]
|
||||
];
|
||||
$insertFilterStmt = $pdo->prepare("
|
||||
INSERT INTO jira_queue_filters (filter_code, filter_name, project_key, jql_clause, description, is_active, sort_order)
|
||||
VALUES (?, ?, ?, ?, ?, 1, ?)
|
||||
");
|
||||
foreach ($defaultFilters as $df) {
|
||||
if (!in_array($df['code'], $existingCodes)) {
|
||||
$insertFilterStmt->execute([
|
||||
$df['code'], $df['name'], $df['project'], $df['jql'], $df['desc'], $df['order']
|
||||
]);
|
||||
}
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
// Stil negeren indien tabel nog in opbouw is
|
||||
|
||||
Reference in New Issue
Block a user