2025-03-24 01:40:45 +00:00

102 lines
3.7 KiB
PHP

<?php
require '../lib/autoload.php';
$f3 = \Base::instance();
/**
* Not required yet
*/
$htmlpurifier = \HTMLPurifier::instance();
// $htmlpurifier->purify($input);
$md = \Parsedown::instance();
$md->setSafeMode(true);
$f3->config('../app/.env.cfg');
$f3->set('DEBUG', 3); // development debug
$f3->set('CACHE', FALSE);
$f3->set('EXT', [new ParsedownHelper, new BulmaFormHelper]);
$f3->set('DB', new \DB\SQL(
'mysql:host=localhost;port=3306;dbname=' . $f3->get('database.db_name'),
$f3->get('database.username'),
$f3->get('database.password')
));
new \DB\SQL\Session($f3->get('DB'));
$f3->set('SESSION.status', 'running');
// Routing and Controller Setup
// home
$f3->route('GET /', 'HomeController->display');
// auth
$f3->route('GET /login', 'AuthController->showLoginForm');
$f3->route('POST /login', 'AuthController->login');
$f3->route('GET /logout', 'AuthController->logout');
// Example protected route
$f3->route('GET /dashboard', function($f3){
if(!$f3->exists('SESSION.user')){
$f3->reroute('/login');
}
echo 'Welcome to the dashboard' . $f3->get('SESSION.username');
echo '<a href="/logout">logout</a>';
});
// tickets - CRUD (CREATE, READ, UPDATE, DELETE)
$f3->route('GET /tickets', 'TicketController->index'); // view all tickets
$f3->route('GET /ticket/@id', 'TicketController->view'); // view ticket details
$f3->route('GET /ticket/create', 'TicketController->createForm'); // show form to create
$f3->route('POST /ticket/create', 'TicketController->create'); // save
$f3->route('GET /ticket/@id/edit', 'TicketController->editForm'); // edit ticket
$f3->route('POST /ticket/@id/update', 'TicketController->update'); //
$f3->route('GET /ticket/@id/delete', 'TicketController->delete');
// additional routes - comments
$f3->route('POST /ticket/@id/comment', 'CommentController->create');
$f3->route('GET /ticket/@id/comment/@comment_id/delete', 'CommentController->delete');
$f3->route('GET /ticket/@id/comments', 'CommentController->index');
// route for linking a child to a parent
$f3->route('POST /ticket/@id/add-subtask', 'TicketController->addSubtask');
// attachments
$f3->route('GET /ticket/@id/attachments', 'AttachmentController->index');
$f3->route('POST /ticket/@id/attachments/upload', 'AttachmentController->upload');
$f3->route('GET /attachment/@id/download', 'AttachmentController->download');
$f3->route('GET /attachment/@id/delete', 'AttachmentController->delete');
// knowledgebase
$f3->route('GET /kb', 'KBController->index');
$f3->route('GET /kb/@id', 'KBController->view');
$f3->route('GET /kb/create', 'KBController->createForm');
$f3->route('POST /kb/create', 'KBController->create');
$f3->route('GET /kb/@id/edit', 'KBController->editForm');
$f3->route('POST /kb/@id/update', 'KBController->update'); // should this be update - "crud"?
// tags
$f3->route('GET /tags', 'TagController->index');
$f3->route('GET /tag/create', 'TagController->createForm');
$f3->route('POST /tag/create', 'TagController->create');
// parsedown preview
$f3->route('POST /parsedown/preview', 'ParsedownPreview->view');
// dashboard
$f3->route('GET /dashboard', 'DashboardController->index');
// projects
$f3->route('GET /projects', 'ProjectController->index');
$f3->route('GET /project/@id', 'ProjectController->view');
$f3->route('GET /project/create', 'ProjectController->createForm');
$f3->route('POST /project/create', 'ProjectController->create');
$f3->route('GET /project/@id/edit', 'ProjectController->editForm');
$f3->route('POST /project/@id/update', 'ProjectController->update');
// additional routes - user
$f3->route('GET /users', 'UserController->index');
$f3->route('GET /user/@id/edit', 'UserController->editForm');
$f3->route('POST /user/@id/update', 'UserController->update');
$f3->run();