254 lines
6.2 KiB
PHP
Raw Permalink Normal View History

2021-12-27 07:01:20 +00:00
<?php
session_start();
if (!isset($_SESSION['uid'])) {
header('Location: /admin/login.php');
die;
}
$conn = new mysqli("localhost", "mileslinden", "Daiso@6969", "mileslinden");
$result = $conn->query("SELECT * FROM subscribers");
if (!$result) {
http_response_code(500);
2022-01-09 09:30:44 +00:00
die("Error retrieving subscribers: {$conn->error}");
2021-12-27 07:01:20 +00:00
}
$subscribers = [];
while ($row = $result->fetch_assoc()) {
$subscribers[] = $row;
}
2022-01-09 09:30:44 +00:00
$result = $conn->query("SELECT id, full_name, subject, send_date FROM messages ORDER BY send_date DESC");
if (!$result) {
http_response_code(500);
die("Error retrieving messages: {$conn->error}");
}
$messages = [];
while ($row = $result->fetch_assoc()) {
$messages[] = $row;
}
$result = $conn->query("SELECT * FROM volunteers");
if (!$result) {
http_response_code(500);
die("Error retrieving volunteers: {$conn->error}");
}
$volunteers = [];
while ($row = $result->fetch_assoc()) {
$volunteers[] = $row;
}
$result = $conn->query("SELECT * FROM signs");
if (!$result) {
http_response_code(500);
die("Error retrieving sign requests: {$conn->error}");
}
$signs = [];
while ($row = $result->fetch_assoc()) {
$signs[] = $row;
}
2021-12-27 07:01:20 +00:00
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Miles Linden for San Jose City Council</title>
2022-01-09 09:30:44 +00:00
<style>
.cols {
display: flex;
gap: 4rem;
}
.cols > div {
flex: 1 1 0;
}
.tasks {
display: flex;
gap: 4rem;
}
.message {
display: flex;
justify-content: space-between;
}
</style>
2021-12-27 07:01:20 +00:00
</head>
<body>
<h1>Admin Panel</h1>
2022-01-09 09:30:44 +00:00
<div class="tasks">
<a href="logout.php">Logout</a>
<a href="mail.php">Mail All</a>
2021-12-27 07:01:20 +00:00
</div>
2022-01-09 09:30:44 +00:00
<div class="cols">
<div>
<h2>Subscribers</h2>
<table cellpadding="5">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Phone</th>
<!--<th>Gender</th>-->
<th>Join Date</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
2021-12-27 07:01:20 +00:00
<?php
foreach ($subscribers as $row) {
?>
2022-01-09 09:30:44 +00:00
<tr>
<td><?= htmlspecialchars($row['full_name']) ?></td>
<td>
<a href="mailto:<?= htmlspecialchars($row['email']) ?>"><?= htmlspecialchars($row['email']) ?></a></td>
<td><?= htmlspecialchars($row['phone']) ?></td>
<!--<td><?= htmlspecialchars($row['gender']) ?></td>-->
<td><?= htmlspecialchars($row['join_date']) ?></td>
<td>
<button class="deleteEmail" data-email="<?= htmlspecialchars($row['email']) ?>">Delete</button>
</td>
</tr>
2021-12-27 07:01:20 +00:00
<?php
}
?>
2022-01-09 09:30:44 +00:00
</tbody>
</table>
</div>
<div>
<h2>Messages</h2>
<div class="messages">
<?php
foreach ($messages as $row) {
?>
<div class="message">
<div>
<a href="message.php?id=<?= $row['id'] ?>">
[<?= $row['send_date'] ?>] <?= htmlspecialchars($row['full_name']) ?>: <?= isset($row['subject']) ? htmlspecialchars($row['subject']) : '(no subject)' ?>
</a>
</div>
<div>
<button class="deleteMessage" data-message="<?= $row['id'] ?>">Delete</button>
</div>
</div>
<?php
}
?>
</div>
</div>
<div>
<h2>Volunteers</h2>
<table cellpadding="5">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Phone</th>
<th>Position</th>
<th>Join Date</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php
foreach ($volunteers as $row) {
?>
<tr>
<td><?= htmlspecialchars($row['full_name']) ?></td>
<td>
<a href="mailto:<?= htmlspecialchars($row['email']) ?>"><?= htmlspecialchars($row['email']) ?></a></td>
<td><?= htmlspecialchars($row['phone']) ?></td>
<td><?= htmlspecialchars($row['position']) ?></td>
<td><?= htmlspecialchars($row['join_date']) ?></td>
<td>
<!--<button class="deleteEmail" data-email="<?= htmlspecialchars($row['email']) ?>">Delete</button>-->
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<div>
<h2>Sign Requests</h2>
<table cellpadding="5">
<thead>
<tr>
<th>Address</th>
<th>Quantity</th>
<th>Wire stake?</th>
<th>Fulfilled?</th>
</tr>
</thead>
<tbody>
<?php
foreach ($signs as $row) {
?>
<tr>
<td><?= htmlspecialchars($row['address']) ?></td>
<td><?= $row['quantity'] ?></td>
<td><?= $row['wire_stake'] ?></td>
<td><?= $row['fulfilled'] ?></td>
<td>
<!--<button class="fulfillRequest" data-address="<?= htmlspecialchars($row['address']) ?>">Fulfilled</button>-->
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
2022-01-09 09:30:44 +00:00
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
for (const btn of document.querySelectorAll('button.deleteEmail')) {
btn.addEventListener('click', function (e) {
var email = e.target.dataset.email;
if (confirm(`Are you sure you want to delete ${email}?`)) {
var fd = new FormData();
fd.append('email', email);
fetch('/admin/unsubscribe.php', {
method: 'POST',
body: fd
}).then(function (res) {
if (!res.ok) {
res.text().then(alert);
} else {
window.location.reload();
}
});
}
});
}
for (const btn of document.querySelectorAll('button.deleteMessage')) {
btn.addEventListener('click', function (e) {
var id = e.target.dataset.message;
var message = e.target.parentElement.parentElement.children[0];
var summary = message.innerText;
if (confirm(`Are you sure you want to delete message "${summary}"?`)) {
var fd = new FormData();
fd.append('id', id);
fetch('/admin/deleteMessage.php', {
method: 'POST',
body: fd
}).then(function (res) {
if (!res.ok) {
res.text().then(alert);
} else {
window.location.reload();
}
});
}
});
}
});
</script>
2021-12-27 07:01:20 +00:00
</body>
</html>