This commit is contained in:
2025-11-12 15:28:40 +01:00
parent 8b3e41926a
commit fd933b82d9

View File

@@ -13,7 +13,7 @@ if (!isset($_SESSION['user']) || !in_array($_SESSION['user']['username'], $confi
$message = '';
$members = get_group_members('APP_LootjesTrekken');
// --- Afmelden knop ---
// --- Uitloggen ---
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['logout'])) {
log_action($pdo, $_SESSION['user']['username'], 'Uitloggen via admin', 'Admin pagina');
session_unset();
@@ -35,7 +35,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_round'])) {
$stmt->execute([$rondeNaam]);
$ronde_id = $pdo->lastInsertId();
// Shuffle algoritme: geen enkel persoon mag zichzelf trekken
$gevers = $members;
$ontvangers = $members;
$maxRetries = 1000;
@@ -51,18 +50,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_round'])) {
}
$retry++;
if ($retry > $maxRetries) {
throw new Exception("Kan geen geldige lootjes toewijzen na $maxRetries pogingen.");
throw new Exception("Kon geen geldige trekking genereren na $maxRetries pogingen.");
}
} while (!$valid);
// Opslaan in database
$stmtInsert = $pdo->prepare("INSERT INTO lootjes (ronde_id, gever, ontvanger) VALUES (?, ?, ?)");
for ($i = 0; $i < count($gevers); $i++) {
$stmtInsert->execute([$ronde_id, $gevers[$i], $ontvangers[$i]]);
}
$pdo->commit();
log_action($pdo, $_SESSION['user']['username'], "Nieuwe ronde gestart: $rondeNaam", "Admin pagina");
$message = "✅ Nieuwe ronde '$rondeNaam' succesvol gestart!";
} catch (Exception $e) {
@@ -83,7 +80,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['close_round'])) {
}
}
// --- Huidige rondes ophalen ---
// --- Ronde hernoemen ---
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['rename_round'])) {
$ronde_id = $_POST['round_id'] ?? 0;
$new_name = trim($_POST['new_name'] ?? '');
if ($ronde_id && $new_name !== '') {
$stmt = $pdo->prepare("UPDATE lootjes_rondes SET naam=? WHERE id=?");
$stmt->execute([$new_name, $ronde_id]);
log_action($pdo, $_SESSION['user']['username'], "Ronde $ronde_id hernoemd naar '$new_name'", "Admin pagina");
$message = "Naam van ronde aangepast naar: " . htmlspecialchars($new_name);
} else {
$message = "❌ Ongeldige naam opgegeven.";
}
}
// --- Alle rondes ophalen ---
try {
$stmt = $pdo->query("SELECT * FROM lootjes_rondes ORDER BY created_at DESC");
$rondes = $stmt->fetchAll();
@@ -166,18 +177,10 @@ button {
button:hover {
opacity: 0.9;
}
button.logout {
background: white;
color: var(--primary);
}
button.close {
background: #e67e22;
color: white;
}
button.start {
background: var(--accent);
color: white;
}
button.logout { background: white; color: var(--primary); }
button.close { background: #e67e22; color: white; }
button.start { background: var(--accent); color: white; }
button.rename { background: #8e44ad; color: white; }
.message {
margin: 15px 0;
padding: 10px;
@@ -192,6 +195,11 @@ footer {
margin-top: 30px;
padding-bottom: 20px;
}
input.rename-input {
padding: 4px 6px;
width: 200px;
font-size: 0.9em;
}
</style>
</head>
<body>
@@ -222,7 +230,13 @@ footer {
<?php foreach ($rondes as $r): ?>
<tr>
<td><?= $r['id'] ?></td>
<td><?= htmlspecialchars($r['naam']) ?></td>
<td>
<form method="post" style="display:flex; gap:6px; align-items:center;">
<input type="hidden" name="round_id" value="<?= $r['id'] ?>">
<input type="text" name="new_name" class="rename-input" value="<?= htmlspecialchars($r['naam']) ?>">
<button type="submit" name="rename_round" class="rename">💾 Opslaan</button>
</form>
</td>
<td><?= htmlspecialchars($r['status']) ?></td>
<td>
<?php if ($r['status'] === 'open'): ?>
@@ -236,7 +250,7 @@ footer {
</td>
<td>
<?php
// Toon lootjes alleen als de ronde is afgerond
// Toon lootjes alleen als ronde is afgerond
if ($r['status'] === 'afgerond') {
$stmtLootjes = $pdo->prepare("SELECT gever, ontvanger FROM lootjes WHERE ronde_id=?");
$stmtLootjes->execute([$r['id']]);