diff --git a/CSS/style.css b/CSS/style.css index 6783bd2..a765309 100644 --- a/CSS/style.css +++ b/CSS/style.css @@ -338,4 +338,19 @@ button.danger { font-size: 0.8em; color: #6A5ACD; display: inline-block; +} + +.style_low { + background-color: darkseagreen; + font-weight: bold; +} + +.style_mid { + background-color: moccasin; + font-weight: bold; +} + +.style_high { + background-color: lightcoral; + font-weight: bold; } \ No newline at end of file diff --git a/Controller/NotesController.php b/Controller/NotesController.php index 1017e56..5c17483 100644 --- a/Controller/NotesController.php +++ b/Controller/NotesController.php @@ -50,7 +50,8 @@ class NotesController $note = $this->notesModel->createNote( $_POST['title'], $_POST['content'], - $_SESSION['user_id'] + $_SESSION['user_id'], + $_POST['priority'] ); if ($note) { @@ -75,7 +76,8 @@ class NotesController $noteId, $_POST['title'], $_POST['content'], - $_SESSION['user_id'] + $_SESSION['user_id'], + $_POST['priority'] ); if ($note) { diff --git a/Model/NotesModel.php b/Model/NotesModel.php index 75eb263..3311ed1 100644 --- a/Model/NotesModel.php +++ b/Model/NotesModel.php @@ -12,7 +12,7 @@ class NotesModel extends Database $erg = array(); // Whitelist of allowed sort columns - $allowedSortColumns = ['id', 'title', 'owner_username', 'updated_at']; + $allowedSortColumns = ['id', 'title', 'owner_username', 'updated_at', 'priority']; $allowedSortOrders = ['ASC', 'DESC']; $sortBy = in_array($sortBy, $allowedSortColumns) ? $sortBy : 'updated_at'; @@ -20,15 +20,17 @@ class NotesModel extends Database try { if ($isAdmin) { - $sql = "SELECT n.*, u.username AS owner_username + $sql = "SELECT n.id, n.title, n.content, n.created_at, n.updated_at, u.username AS owner_username, p.name AS priority FROM notes n - JOIN users u ON n.user_id = u.id + JOIN priority p ON n.priority = p.id + JOIN users u ON n.user_id = u.id ORDER BY {$sortBy} {$sortOrder}"; $stmt = $pdo->prepare($sql); $stmt->execute(); } else { - $sql = "SELECT id, title, content, created_at, updated_at - FROM notes + $sql = "SELECT n.id, n.title, n.content, n.created_at, n.updated_at, p.name AS priority + FROM notes n + JOIN priority p ON n.priority = p.id WHERE user_id = :userid ORDER BY {$sortBy} {$sortOrder}"; $stmt = $pdo->prepare($sql); @@ -93,13 +95,13 @@ class NotesModel extends Database } } - function createNote($title, $content, $userId) { + function createNote($title, $content, $userId, $priority) { $pdo = $this->linkDB(); if (!$pdo) return ['success' => false, 'message' => 'Database error.']; if (empty(trim($title))) return ['success' => false, 'message' => 'Title is required.']; try { - $stmt = $pdo->prepare("INSERT INTO notes (user_id, title, content) VALUES (?, ?, ?)"); - $stmt->execute([$userId, trim($title), $content]); // user_id is current session user + $stmt = $pdo->prepare("INSERT INTO notes (user_id, title, content, priority) VALUES (?, ?, ?, ?)"); + $stmt->execute([$userId, trim($title), $content, $priority]); // user_id is current session user $noteId = $pdo->lastInsertId(); $uploadResult = $this->uploadFiles($noteId); if (!$uploadResult['success']) { @@ -112,17 +114,17 @@ class NotesModel extends Database } } - function editNote($noteId, $title, $content, $userId) { + function editNote($noteId, $title, $content, $userId, $priority) { $pdo = $this->linkDB(); if (!$pdo) return ['success' => false, 'message' => 'Database error.']; if (empty(trim($title))) return ['success' => false, 'message' => 'Title is required.']; try { if ($this->isAdmin()) { // Admin can update any note, user_id for record not changed - $stmt = $pdo->prepare("UPDATE notes SET title = ?, content = ? WHERE id = ?"); - $params = [trim($title), $content, $noteId]; + $stmt = $pdo->prepare("UPDATE notes SET title = ?, content = ?, priority = ? WHERE id = ?"); + $params = [trim($title), $content, $priority, $noteId]; } else { // User can only update their own note - $stmt = $pdo->prepare("UPDATE notes SET title = ?, content = ? WHERE id = ? AND user_id = ?"); - $params = [trim($title), $content, $noteId, $userId]; + $stmt = $pdo->prepare("UPDATE notes SET title = ?, content = ?, priority = ? WHERE id = ? AND user_id = ?"); + $params = [trim($title), $content, $priority, $noteId, $userId]; } $stmt->execute($params); diff --git a/Views/Notes/createNote.phtml b/Views/Notes/createNote.phtml index cbd9d25..6fc2d9e 100644 --- a/Views/Notes/createNote.phtml +++ b/Views/Notes/createNote.phtml @@ -61,6 +61,14 @@ function sanitize($data, $flags = ENT_QUOTES, $encoding = 'UTF-8') { Start typing or drop a file to see preview... +