a
This commit is contained in:
54
admin.php
54
admin.php
@@ -13,7 +13,7 @@ if (!isset($_SESSION['user']) || !in_array($_SESSION['user']['username'], $confi
|
|||||||
$message = '';
|
$message = '';
|
||||||
$members = get_group_members('APP_LootjesTrekken');
|
$members = get_group_members('APP_LootjesTrekken');
|
||||||
|
|
||||||
// --- Afmelden knop ---
|
// --- Uitloggen ---
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['logout'])) {
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['logout'])) {
|
||||||
log_action($pdo, $_SESSION['user']['username'], 'Uitloggen via admin', 'Admin pagina');
|
log_action($pdo, $_SESSION['user']['username'], 'Uitloggen via admin', 'Admin pagina');
|
||||||
session_unset();
|
session_unset();
|
||||||
@@ -35,7 +35,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_round'])) {
|
|||||||
$stmt->execute([$rondeNaam]);
|
$stmt->execute([$rondeNaam]);
|
||||||
$ronde_id = $pdo->lastInsertId();
|
$ronde_id = $pdo->lastInsertId();
|
||||||
|
|
||||||
// Shuffle algoritme: geen enkel persoon mag zichzelf trekken
|
|
||||||
$gevers = $members;
|
$gevers = $members;
|
||||||
$ontvangers = $members;
|
$ontvangers = $members;
|
||||||
$maxRetries = 1000;
|
$maxRetries = 1000;
|
||||||
@@ -51,18 +50,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['start_round'])) {
|
|||||||
}
|
}
|
||||||
$retry++;
|
$retry++;
|
||||||
if ($retry > $maxRetries) {
|
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);
|
} while (!$valid);
|
||||||
|
|
||||||
// Opslaan in database
|
|
||||||
$stmtInsert = $pdo->prepare("INSERT INTO lootjes (ronde_id, gever, ontvanger) VALUES (?, ?, ?)");
|
$stmtInsert = $pdo->prepare("INSERT INTO lootjes (ronde_id, gever, ontvanger) VALUES (?, ?, ?)");
|
||||||
for ($i = 0; $i < count($gevers); $i++) {
|
for ($i = 0; $i < count($gevers); $i++) {
|
||||||
$stmtInsert->execute([$ronde_id, $gevers[$i], $ontvangers[$i]]);
|
$stmtInsert->execute([$ronde_id, $gevers[$i], $ontvangers[$i]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdo->commit();
|
$pdo->commit();
|
||||||
|
|
||||||
log_action($pdo, $_SESSION['user']['username'], "Nieuwe ronde gestart: $rondeNaam", "Admin pagina");
|
log_action($pdo, $_SESSION['user']['username'], "Nieuwe ronde gestart: $rondeNaam", "Admin pagina");
|
||||||
$message = "✅ Nieuwe ronde '$rondeNaam' succesvol gestart!";
|
$message = "✅ Nieuwe ronde '$rondeNaam' succesvol gestart!";
|
||||||
} catch (Exception $e) {
|
} 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 {
|
try {
|
||||||
$stmt = $pdo->query("SELECT * FROM lootjes_rondes ORDER BY created_at DESC");
|
$stmt = $pdo->query("SELECT * FROM lootjes_rondes ORDER BY created_at DESC");
|
||||||
$rondes = $stmt->fetchAll();
|
$rondes = $stmt->fetchAll();
|
||||||
@@ -166,18 +177,10 @@ button {
|
|||||||
button:hover {
|
button:hover {
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
}
|
}
|
||||||
button.logout {
|
button.logout { background: white; color: var(--primary); }
|
||||||
background: white;
|
button.close { background: #e67e22; color: white; }
|
||||||
color: var(--primary);
|
button.start { background: var(--accent); color: white; }
|
||||||
}
|
button.rename { background: #8e44ad; color: white; }
|
||||||
button.close {
|
|
||||||
background: #e67e22;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
button.start {
|
|
||||||
background: var(--accent);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
.message {
|
.message {
|
||||||
margin: 15px 0;
|
margin: 15px 0;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -192,6 +195,11 @@ footer {
|
|||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
padding-bottom: 20px;
|
padding-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
input.rename-input {
|
||||||
|
padding: 4px 6px;
|
||||||
|
width: 200px;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -222,7 +230,13 @@ footer {
|
|||||||
<?php foreach ($rondes as $r): ?>
|
<?php foreach ($rondes as $r): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $r['id'] ?></td>
|
<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><?= htmlspecialchars($r['status']) ?></td>
|
||||||
<td>
|
<td>
|
||||||
<?php if ($r['status'] === 'open'): ?>
|
<?php if ($r['status'] === 'open'): ?>
|
||||||
@@ -236,7 +250,7 @@ footer {
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
// Toon lootjes alleen als de ronde is afgerond
|
// Toon lootjes alleen als ronde is afgerond
|
||||||
if ($r['status'] === 'afgerond') {
|
if ($r['status'] === 'afgerond') {
|
||||||
$stmtLootjes = $pdo->prepare("SELECT gever, ontvanger FROM lootjes WHERE ronde_id=?");
|
$stmtLootjes = $pdo->prepare("SELECT gever, ontvanger FROM lootjes WHERE ronde_id=?");
|
||||||
$stmtLootjes->execute([$r['id']]);
|
$stmtLootjes->execute([$r['id']]);
|
||||||
|
|||||||
Reference in New Issue
Block a user