Updated TicketController to reference TicketsPriority and TicketsStatus model
This commit is contained in:
parent
cc28c8d37a
commit
2651caa1df
@ -45,9 +45,15 @@ class TicketController extends BaseController implements CRUD {
|
||||
// show create form
|
||||
// TODO_PROJECTS: dropdown to associate ticket with project
|
||||
public function createForm($f3){
|
||||
$db = $this->getDB();
|
||||
$priorities = (new TicketPriority($db))->findAll();
|
||||
$statuses = (new TicketStatus($db))->findAll();
|
||||
|
||||
$this->requireLogin();
|
||||
$this->renderView('../ui/views/ticket/create.html');
|
||||
$this->renderView('../ui/views/ticket/create.html',[
|
||||
'priorities' => $priorities,
|
||||
'statuses' => $statuses
|
||||
]);
|
||||
}
|
||||
|
||||
// handle POST
|
||||
@ -60,8 +66,8 @@ class TicketController extends BaseController implements CRUD {
|
||||
'title' => $this->f3->get('POST.title'),
|
||||
'created_at' => $this->f3->get('POST.created_at'),
|
||||
'description' => $this->f3->get('POST.description'),
|
||||
'priority' => $this->f3->get('POST.priority'),
|
||||
'status' => $this->f3->get('POST.status'),
|
||||
'priority_id' => $this->f3->get('POST.priority_id'),
|
||||
'status_id' => $this->f3->get('POST.status_id'),
|
||||
'created_by' => $this->f3->get('SESSION.user.id')
|
||||
];
|
||||
|
||||
@ -80,7 +86,8 @@ class TicketController extends BaseController implements CRUD {
|
||||
// show edit form
|
||||
// including custom forms
|
||||
// TODO_PROJECTS: allow reasssigning or removing a project association
|
||||
public function editForm($f3){
|
||||
public function editForm($f3)
|
||||
{
|
||||
$this->requireLogin();
|
||||
|
||||
$ticket_id = $f3->get('PARAMS.id');
|
||||
@ -92,16 +99,23 @@ class TicketController extends BaseController implements CRUD {
|
||||
$this->f3->reroute('/tickets');
|
||||
}
|
||||
|
||||
// dropdowns
|
||||
$priorities = (new TicketPriority($this->getDB()))->findAll();
|
||||
$statuses = (new TicketStatus($this->getDB()))->findAll();
|
||||
|
||||
$this->renderView('../ui/views/ticket/edit.html',[
|
||||
'ticket' => $ticket,
|
||||
'ticket_meta' => $ticket->getMeta()
|
||||
'ticket_meta' => $ticket->getMeta(),
|
||||
'priorities' => $priorities,
|
||||
'statuses' => $statuses
|
||||
]
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// process edit POST TODO: if assigned or admin
|
||||
public function update($f3){
|
||||
public function update($f3)
|
||||
{
|
||||
|
||||
$this->requireLogin();
|
||||
|
||||
@ -118,8 +132,8 @@ class TicketController extends BaseController implements CRUD {
|
||||
'title' => $this->f3->get('POST.title'),
|
||||
'created_at' => $this->f3->get('POST.created_at'),
|
||||
'description' => $this->f3->get('POST.description'),
|
||||
'priority' => $this->f3->get('POST.priority'),
|
||||
'status' => $this->f3->get('POST.status'),
|
||||
'priority_id' => $this->f3->get('POST.priority_id'),
|
||||
'status_id' => $this->f3->get('POST.status_id'),
|
||||
'updated_by' => $this->f3->get('SESSION.user.id')
|
||||
];
|
||||
$ticket->updateTicket($data);
|
||||
|
||||
@ -11,10 +11,12 @@ class Ticket extends \DB\SQL\Mapper {
|
||||
public function findAll(): array
|
||||
{
|
||||
return $this->db->exec(
|
||||
'SELECT *
|
||||
FROM tickets
|
||||
WHERE recycled = 0
|
||||
ORDER BY created_at DESC'
|
||||
'SELECT t.* , tp.name AS priority_name, ts.name AS status_name
|
||||
FROM tickets t
|
||||
LEFT JOIN ticket_priorities tp ON t.priority_id = tp.id
|
||||
LEFT JOIN ticket_statuses ts ON t.status_id = ts.id
|
||||
WHERE t.recycled = 0
|
||||
ORDER BY t.created_at DESC'
|
||||
);
|
||||
}
|
||||
|
||||
@ -30,10 +32,12 @@ class Ticket extends \DB\SQL\Mapper {
|
||||
|
||||
$this->title = $data['title'] ?? '';
|
||||
$this->description = $data['description'] ?? '';
|
||||
$this->priority = $data['priority'] ?? 'Low';
|
||||
$this->status = $data['status'] ?? 'New';
|
||||
//
|
||||
$this->priority_id = $data['priority_id'] ?? null;
|
||||
$this->status = $data['status_id'] ?? null;
|
||||
//
|
||||
$this->created_by = $data['created_by'] ?? null;
|
||||
$this->created_at = $data['created_at'] ?? date('Y-m-d H:i:s');
|
||||
$this->created_at = ($data['created_at'] == '' ? date('Y-m-d H:i:s') : $data['created_at']) ?? date('Y-m-d H:i:s');
|
||||
$this->updated_at = date('Y-m-d H:i:s');
|
||||
|
||||
$this->save();
|
||||
@ -44,8 +48,8 @@ class Ticket extends \DB\SQL\Mapper {
|
||||
{
|
||||
if(isset($data['title'])){ $this->title = $data['title']; }
|
||||
if(isset($data['description'])) { $this->description = $data['description']; }
|
||||
if(isset($data['priority'])) { $this->priority = $data['priority']; }
|
||||
if(isset($data['status'])) { $this->status = $data['status']; }
|
||||
if(isset($data['priority_id'])) { $this->priority_id = $data['priority_id']; }
|
||||
if(isset($data['status_id'])) { $this->status_id = $data['status_id']; }
|
||||
if(isset($data['updated_by'])) { $this->updated_by = $data['updated_by']; }
|
||||
$this->created_at = ($data['created_at'] == '' ? date('Y-m-d H:i:s') : $data['created_at']) ?? date('Y-m-d H:i:s');
|
||||
$this->updated_at = date('Y-m-d H:i:s');
|
||||
|
||||
16
app/models/TicketPriority.php
Normal file
16
app/models/TicketPriority.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class TicketPriority extends \DB\SQL\Mapper
|
||||
{
|
||||
function __construct($db)
|
||||
{
|
||||
parent::__construct($db, 'ticket_priorities');
|
||||
}
|
||||
|
||||
public function findAll(): array
|
||||
{
|
||||
return $this->db->exec(
|
||||
'SELECT * FROM ticket_priorities ORDER BY sort_order ASC'
|
||||
);
|
||||
}
|
||||
}
|
||||
16
app/models/TicketStatus.php
Normal file
16
app/models/TicketStatus.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class TicketStatus extends \DB\SQL\Mapper
|
||||
{
|
||||
function __construct($db)
|
||||
{
|
||||
parent::__construct($db, 'ticket_statuses');
|
||||
}
|
||||
|
||||
public function findAll(): array
|
||||
{
|
||||
return $this->db->exec(
|
||||
'SELECT * FROM ticket_statuses ORDER BY sort_order ASC'
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user