diff --git a/source/packages/com_mokosuite/admin/src/Controller/DisplayController.php b/source/packages/com_mokosuite/admin/src/Controller/DisplayController.php index df6dfb52..47186369 100644 --- a/source/packages/com_mokosuite/admin/src/Controller/DisplayController.php +++ b/source/packages/com_mokosuite/admin/src/Controller/DisplayController.php @@ -365,10 +365,14 @@ class DisplayController extends BaseController $input = Factory::getApplication()->getInput(); $this->jsonResponse($this->getModel('Tickets')->createTicket([ - 'subject' => $input->getString('subject', ''), - 'body' => $input->getRaw('body', ''), - 'priority' => $input->getString('priority', 'normal'), - 'category_id' => $input->getInt('category_id', 0), + 'subject' => $input->getString('subject', ''), + 'body' => $input->getRaw('body', ''), + 'priority' => $input->getString('priority', 'normal'), + 'category_id' => $input->getInt('category_id', 0), + 'contact_id' => $input->getInt('contact_id', 0), + 'assign_users' => $input->get('assign_users', [], 'ARRAY'), + 'assign_groups' => $input->get('assign_groups', [], 'ARRAY'), + 'custom_fields' => $input->get('custom_fields', [], 'ARRAY'), ])); } @@ -405,7 +409,7 @@ class DisplayController extends BaseController $this->jsonResponse($this->getModel('Tickets')->updateStatus( $input->getInt('ticket_id', 0), - $input->getString('status', '') + $input->getInt('status', 0) )); } diff --git a/source/packages/com_mokosuite/admin/src/Model/TicketsModel.php b/source/packages/com_mokosuite/admin/src/Model/TicketsModel.php index 1ba4c52c..2838c41c 100644 --- a/source/packages/com_mokosuite/admin/src/Model/TicketsModel.php +++ b/source/packages/com_mokosuite/admin/src/Model/TicketsModel.php @@ -575,6 +575,39 @@ class TicketsModel extends BaseDatabaseModel return $db->loadObjectList() ?: []; } + /** + * Get backend users for assignee selection. + */ + public function getBackendUsers(): array + { + $db = $this->getDatabase(); + $db->setQuery( + $db->getQuery(true) + ->select(['u.id', 'u.name', 'u.username']) + ->from($db->quoteName('#__users', 'u')) + ->where($db->quoteName('u.block') . ' = 0') + ->order($db->quoteName('u.name') . ' ASC') + ); + + return $db->loadObjectList() ?: []; + } + + /** + * Get Joomla user groups for assignee selection. + */ + public function getUserGroups(): array + { + $db = $this->getDatabase(); + $db->setQuery( + $db->getQuery(true) + ->select(['id', 'title']) + ->from($db->quoteName('#__usergroups')) + ->order($db->quoteName('title') . ' ASC') + ); + + return $db->loadObjectList() ?: []; + } + /** * Get Joomla custom field groups assigned to a ticket category. */ diff --git a/source/packages/com_mokosuite/admin/src/View/Tickets/HtmlView.php b/source/packages/com_mokosuite/admin/src/View/Tickets/HtmlView.php index 77e4e719..fc15a4d4 100644 --- a/source/packages/com_mokosuite/admin/src/View/Tickets/HtmlView.php +++ b/source/packages/com_mokosuite/admin/src/View/Tickets/HtmlView.php @@ -25,6 +25,8 @@ class HtmlView extends BaseHtmlView protected $contacts = []; protected $statuses = []; protected $priorities = []; + protected $backendUsers = []; + protected $userGroups = []; public function display($tpl = null) { @@ -46,6 +48,8 @@ class HtmlView extends BaseHtmlView $this->overdue = $model->getOverdueTickets(); $this->atsAvailable = $model->checkAtsAvailable(); $this->contacts = $model->getContacts(); + $this->backendUsers = $model->getBackendUsers(); + $this->userGroups = $model->getUserGroups(); $this->addToolbar(); diff --git a/source/packages/com_mokosuite/admin/tmpl/tickets/default.php b/source/packages/com_mokosuite/admin/tmpl/tickets/default.php index 26cb3d76..f8a78ca0 100644 --- a/source/packages/com_mokosuite/admin/tmpl/tickets/default.php +++ b/source/packages/com_mokosuite/admin/tmpl/tickets/default.php @@ -182,6 +182,26 @@ $token = Session::getFormToken(); +