EIANotesApp/Controller/NotesController.php
2025-06-23 10:48:57 +02:00

89 lines
2.6 KiB
PHP

<?php
namespace ppa\Controller;
use ppa\Model\NotesModel;
use ppa\Library\View;
class NotesController
{
private $notesModel;
protected $view;
public function __construct($view)
{
$this->notesModel = new NotesModel();
$this->view = $view;
}
public function showNotes()
{
$sortBy = $_GET['sort_by'] ?? 'updated_at';
$sortOrder = strtoupper($_GET['sort_order'] ?? 'DESC');
$isAdmin = $_SESSION['role'] === 'admin';
$userid = $_SESSION['user_id'];
$this->view->setVars([
"notes" => $this->notesModel->selectNotesForUser($userid, $isAdmin, $sortBy, $sortOrder)
]);
}
public function showNoteDetails()
{
$noteId = $_GET['id'];
$note = $this->notesModel->getNoteById($noteId);
$this->view->setVars([
"note" => $note
]);
}
public function createNote()
{
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process form submission
$note = $this->notesModel->createNote(
$_POST['title'],
$_POST['content'],
$_SESSION['user_id']
);
if ($note) {
// Redirect to show notes page after successful creation
header('Location: ?controller=NotesController&page=showNotes');
exit();
} else {
// If creation failed, show error message and stay on the form
$this->view->setVars([
'error' => 'Failed to create note. Please try again.'
]);
}
}
}
public function editNote()
{
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process form submission
$noteId = $_GET['id'];
$note = $this->notesModel->editNote($noteId, $_POST['title'], $_POST['content'], $_SESSION['user_id']);
if ($note) {
// Redirect to show notes page after successful creation
header('Location: ?controller=NotesController&page=showNotes');
exit();
} else {
// If creation failed, show error message and stay on the form
$this->view->setVars([
'error' => 'Failed to create note. Please try again.'
]);
}
}
}
public function deleteNote()
{
$noteId = $_GET['id'];
$this->notesModel->deleteNote($noteId, $_SESSION['user_id']);
header("Location: ?controller=NotesController&page=showNotes");
}
}