Work on Admin page
This commit is contained in:
14
action.php
14
action.php
@@ -84,6 +84,7 @@ function opCancel() {
|
||||
$sql = "UPDATE submitted SET status = 'CANCELED' where id = " . $_GET['id'];
|
||||
$result = $conn->query($sql);
|
||||
logJournal($conn, $_GET['id'], "Marked Canceled");
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
function opLanded() {
|
||||
@@ -91,6 +92,15 @@ function opLanded() {
|
||||
$sql = "UPDATE submitted SET status = 'LANDED', landed_dt = NOW() where id = " . $_GET['id'];
|
||||
$result = $conn->query($sql);
|
||||
logJournal($conn, $_GET['id'], "Marked Landed");
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
function opDelete() {
|
||||
$conn = connectDb();
|
||||
$sql = "UPDATE submitted SET status = 'DELETED' where id = " . $_GET['id'];
|
||||
$result = $conn->query($sql);
|
||||
logJournal($conn, $_GET['id'], "Marked Deleted");
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
function opDetail() {
|
||||
@@ -128,6 +138,7 @@ function opDetail() {
|
||||
echo "No details found for the given ID.";
|
||||
|
||||
}
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
switch($_GET['op']) {
|
||||
@@ -137,6 +148,9 @@ switch($_GET['op']) {
|
||||
case "landed":
|
||||
opLanded();
|
||||
break;
|
||||
case "delete":
|
||||
opDelete();
|
||||
break;
|
||||
case "detail":
|
||||
opDetail();
|
||||
break;
|
||||
|
||||
246
admin.php
Normal file
246
admin.php
Normal file
@@ -0,0 +1,246 @@
|
||||
<?php
|
||||
include("functions.php");
|
||||
require_db_auth();
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="300">
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
let rows = document.querySelectorAll("table tbody tr");
|
||||
|
||||
rows.forEach(row => {
|
||||
let fuelCell = row.cells[3]; // Get the "Fuel" cell (index 3)
|
||||
|
||||
if (fuelCell.textContent == "100LL") {
|
||||
row.classList.add("highlight100LL"); // Add the class
|
||||
} else if (fuelCell.textContent == "JET A1") {
|
||||
row.classList.add("highlightJET"); // Add the class
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Swansea Daily PPR</title>
|
||||
<style>
|
||||
|
||||
/* Styling for the table */
|
||||
table {
|
||||
width: 90%;
|
||||
border-collapse: collapse;
|
||||
margin: 20px 0;
|
||||
margin-left: auto; /* Automatically adjusts left margin */
|
||||
margin-right: auto; /* Automatically adjusts right margin */
|
||||
|
||||
}
|
||||
table, th, td {
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
th {
|
||||
padding: 2px;
|
||||
text-align: center;
|
||||
}
|
||||
td {
|
||||
padding: 2px;
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
}
|
||||
th {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
tr:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
tr:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.highlight100LL {
|
||||
background-color: #ADD8E6 !important;
|
||||
#font-weight: bold;
|
||||
}
|
||||
|
||||
.highlightJET {
|
||||
background-color: yellow !important; /* Allow it to override the odd/even shading */
|
||||
#font-weight: bold;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px 20px;
|
||||
font-size: 1rem;
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
select {
|
||||
padding: 10px;
|
||||
font-size: 16px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script>
|
||||
function markLanded(id) {
|
||||
page="action.php?op=landed&id=" + id;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", page, false); // 'false' makes the request synchronous
|
||||
xhr.send();
|
||||
window.location.reload(true);
|
||||
}
|
||||
function markCancel(id) {
|
||||
page="action.php?op=cancel&id=" + id;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", page, false); // 'false' makes the request synchronous
|
||||
xhr.send();
|
||||
window.location.reload(true);
|
||||
}
|
||||
function deletePpr(id) {
|
||||
page="action.php?op=delete&id=" + id;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", page, false); // 'false' makes the request synchronous
|
||||
xhr.send();
|
||||
window.location.reload(true);
|
||||
}
|
||||
function openDetail(id) {
|
||||
page="action.php?op=detail&id=" + id;
|
||||
var popupWindow = window.open(page, "PopupWindow", "toolbar=no, location=no, directories=no,status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=yes, width=600, height=1100");
|
||||
popupWindow.onload = function () {
|
||||
var contentHeight = popupWindow.document.body.scrollHeight;
|
||||
var contentWidth = popupWindow.document.body.scrollWidth;
|
||||
popupWindow.resizeTo(contentWidth + 20, contentHeight + 180); // Adding padding to prevent clipping
|
||||
};
|
||||
|
||||
}
|
||||
</script>
|
||||
<center><h2>Swansea Inbound PPR ADMIN</h2></center>
|
||||
|
||||
<div class="container">
|
||||
<h2>Select a Month</h2>
|
||||
<select id="monthSelect">
|
||||
<option value="01">January</option>
|
||||
<option value="02">February</option>
|
||||
<option value="03">March</option>
|
||||
<option value="04">April</option>
|
||||
<option value="05">May</option>
|
||||
<option value="06">June</option>
|
||||
<option value="07">July</option>
|
||||
<option value="08">August</option>
|
||||
<option value="09">September</option>
|
||||
<option value="10">October</option>
|
||||
<option value="11">November</option>
|
||||
<option value="12">December</option>
|
||||
</select>
|
||||
<select id="yearSelect"></select>
|
||||
<button onclick="selectMonthYear()">Submit</button>
|
||||
<p id="output"></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function populateYearDropdown() {
|
||||
let yearSelect = document.getElementById("yearSelect");
|
||||
let currentYear = new Date().getFullYear();
|
||||
let startYear = currentYear;
|
||||
let endYear = currentYear - 10; // Last 10 years
|
||||
|
||||
for (let year = startYear; year >= endYear; year--) { // Descending order
|
||||
let option = document.createElement("option");
|
||||
option.value = year;
|
||||
option.textContent = year;
|
||||
if (year === currentYear) {
|
||||
option.selected = true; // Set default to current year
|
||||
}
|
||||
yearSelect.appendChild(option);
|
||||
}
|
||||
}
|
||||
|
||||
function selectMonthYear() {
|
||||
let month = document.getElementById("monthSelect").value;
|
||||
let year = document.getElementById("yearSelect").value;
|
||||
document.getElementById("output").innerText = `You selected: ${month}-${year}`;
|
||||
}
|
||||
|
||||
populateYearDropdown();
|
||||
|
||||
</script>
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Create connection
|
||||
$conn = new mysqli($host, $username, $password, $database);
|
||||
|
||||
// Check connection
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM submitted WHERE status != 'DELETED' ORDER BY eta ASC;"; // Replace with your table name
|
||||
$result = $conn->query($sql);
|
||||
|
||||
// Check if there are results
|
||||
if ($result->num_rows > 0) {
|
||||
// Start HTML table
|
||||
echo '<table border="1">
|
||||
<thead>
|
||||
<tr>';
|
||||
|
||||
// Output table headers (assuming column names are known)
|
||||
$fields = $result->fetch_fields();
|
||||
foreach ($fields as $field) {
|
||||
if ($field->name != 'id') {
|
||||
echo '<th>' . htmlspecialchars($field->name ?? '') . '</th>';
|
||||
}
|
||||
|
||||
}
|
||||
// echo '<th>actions</th>';
|
||||
|
||||
echo ' </tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
// Output table rows
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
echo '<tr onclick="openDetail(' . $row['id'] . ')">';
|
||||
foreach ($row as $key => $value) {
|
||||
if ($key != 'id') {
|
||||
echo '<td>' . htmlspecialchars($value ?? '') . '</td>';
|
||||
}
|
||||
}
|
||||
// echo '<td><img src="cancel-icon.webp" title="Cancel PPR" style="width: 25px; height: auto;" onclick="markCancel(' . $row['id'] . ')"><img src="cancel-icon.webp" title="DELETE PPR" style="width: 25px; height: auto;" onclick="deletePpr(' . $row['id'] . ')"><img src="land.webp" title="Mark Landed" style="width: 30px; height: auto;" onclick="markLanded(' . $row['id'] . ')"></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
echo ' </tbody></table>';
|
||||
} else {
|
||||
echo "No results found.";
|
||||
}
|
||||
|
||||
// Close the database connection
|
||||
$conn->close();
|
||||
|
||||
?>
|
||||
|
||||
<center><button onclick="openPopup()">Log New PPR</button></center>
|
||||
|
||||
<script>
|
||||
function openPopup() {
|
||||
window.open("input.html", "PopupWindow", "toolbar=no, location=no, directories=no,status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=yes, width=600, height=1100");
|
||||
}
|
||||
</script>
|
||||
@@ -6,6 +6,16 @@ $username = 'ppruser'; // Replace with your database username
|
||||
$password = 'iJ8kN*5[g6P3jaqN'; // Replace with your database password
|
||||
$database = 'pprdevdb'; // Replace with your database name
|
||||
|
||||
function getUserIP() {
|
||||
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
||||
return $_SERVER['HTTP_CLIENT_IP'];
|
||||
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
} else {
|
||||
return $_SERVER['REMOTE_ADDR'];
|
||||
}
|
||||
}
|
||||
|
||||
function connectDb() {
|
||||
|
||||
// Create connection
|
||||
@@ -22,8 +32,8 @@ function connectDb() {
|
||||
|
||||
function logJournal($conn, $id, $message) {
|
||||
|
||||
$stmt = $conn->prepare("INSERT INTO journal (ppr_id, entry, user) VALUES (?, ?, ?)");
|
||||
$stmt->bind_param("iss", $id, $message, $_SERVER['PHP_AUTH_USER']);
|
||||
$stmt = $conn->prepare("INSERT INTO journal (ppr_id, entry, user, ip) VALUES (?, ?, ?, ?)");
|
||||
$stmt->bind_param("isss", $id, $message, $_SERVER['PHP_AUTH_USER'], getUserIP());
|
||||
$stmt->execute();
|
||||
$stmt->close();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user