diff --git a/assets/js/main.js b/assets/js/main.js index ad5cb41..5882b26 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1,4 +1,33 @@ document.addEventListener('DOMContentLoaded', function () { - // You can add any interactive scripts here in the future. - // For example, handling view button clicks to show mission details. -}); \ No newline at end of file + + const editMissionModal = document.getElementById('editMissionModal'); + if (editMissionModal) { + editMissionModal.addEventListener('show.bs.modal', function (event) { + // Button that triggered the modal + const button = event.relatedTarget; + + // Extract info from data-* attributes + const missionId = button.getAttribute('data-id'); + const name = button.getAttribute('data-name'); + const drone = button.getAttribute('data-drone'); + const status = button.getAttribute('data-status'); + const date = button.getAttribute('data-date'); + + // Update the modal's content. + const modalTitle = editMissionModal.querySelector('.modal-title'); + const missionIdInput = editMissionModal.querySelector('#edit_mission_id'); + const nameInput = editMissionModal.querySelector('#edit_name'); + const droneInput = editMissionModal.querySelector('#edit_drone'); + const statusInput = editMissionModal.querySelector('#edit_status'); + const dateInput = editMissionModal.querySelector('#edit_mission_date'); + + modalTitle.textContent = 'Edit Mission: ' + name; + missionIdInput.value = missionId; + nameInput.value = name; + droneInput.value = drone; + statusInput.value = status; + dateInput.value = date; + }); + } + +}); diff --git a/index.php b/index.php index d0ad0cb..b8a9e72 100644 --- a/index.php +++ b/index.php @@ -1,35 +1,70 @@ prepare($sql); - $stmt->execute([ - ':name' => $name, - ':drone' => $drone, - ':status' => $status, - ':mission_date' => $mission_date, - ]); - // Redirect to avoid form resubmission - header("Location: index.php"); - exit; - } catch (PDOException $e) { - // For a real app, you'd log this error - die("Error saving mission: " . $e->getMessage()); + try { + switch ($action) { + case 'create': + $name = $_POST['name'] ?? ''; + $drone = $_POST['drone'] ?? ''; + $status = $_POST['status'] ?? ''; + $mission_date = $_POST['mission_date'] ?? ''; + + if ($name && $drone && $status && $mission_date) { + $sql = "INSERT INTO missions (name, drone, status, mission_date) VALUES (:name, :drone, :status, :mission_date)"; + $stmt = $pdo->prepare($sql); + $stmt->execute([ + ':name' => $name, + ':drone' => $drone, + ':status' => $status, + ':mission_date' => $mission_date, + ]); + } + break; + + case 'update': + $id = $_POST['mission_id'] ?? null; + $name = $_POST['name'] ?? ''; + $drone = $_POST['drone'] ?? ''; + $status = $_POST['status'] ?? ''; + $mission_date = $_POST['mission_date'] ?? ''; + + if ($id && $name && $drone && $status && $mission_date) { + $sql = "UPDATE missions SET name = :name, drone = :drone, status = :status, mission_date = :mission_date WHERE id = :id"; + $stmt = $pdo->prepare($sql); + $stmt->execute([ + ':id' => $id, + ':name' => $name, + ':drone' => $drone, + ':status' => $status, + ':mission_date' => $mission_date, + ]); + } + break; + + case 'delete': + $id = $_POST['mission_id'] ?? null; + if ($id) { + $sql = "DELETE FROM missions WHERE id = :id"; + $stmt = $pdo->prepare($sql); + $stmt->execute([':id' => $id]); + } + break; } + // Redirect to avoid form resubmission on refresh + header("Location: index.php"); + exit; + } catch (PDOException $e) { + // For a real app, you'd log this error instead of dying + die("Database error: " . $e->getMessage()); } } -// Fetch all missions +// Fetch all missions for display try { $pdo = db(); $stmt = $pdo->query("SELECT id, name, drone, status, DATE_FORMAT(mission_date, '%Y-%m-%d') as mission_date FROM missions ORDER BY mission_date DESC"); @@ -101,7 +136,7 @@ function getStatusClass($status) { Drone Status Date - Actions + Actions @@ -116,7 +151,28 @@ function getStatusClass($status) { - + + + View + + +
+ + + +
+ @@ -139,13 +195,14 @@ function getStatusClass($status) { @@ -175,14 +232,74 @@ function getStatusClass($status) { + + + - + \ No newline at end of file diff --git a/mission.php b/mission.php new file mode 100644 index 0000000..9f30db9 --- /dev/null +++ b/mission.php @@ -0,0 +1,92 @@ +prepare("SELECT * FROM missions WHERE id = ?"); + $stmt->execute([$mission_id]); + $mission = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$mission) { + $error = "Mission not found."; + } + } catch (PDOException $e) { + $error = "Database error: " . $e->getMessage(); + } +} else { + $error = "No mission ID provided."; +} +?> + + + + + + Mission Details - AgroDrone Control + + + + + + + +
+
+

AgroDrone

+ +
+
+ +
+
+

Mission Details

+ + Back to Dashboard + +
+ + +
+ +
+
+

Mission:

+
+
+
+
+

Drone:

+

Status:

+
+
+

Date:

+

Created At:

+
+
+
+
+ + +
+ + + + + + + + +