24require_once DOL_DOCUMENT_ROOT .
'/webportal/class/html.formlistwebportal.class.php';
25require_once DOL_DOCUMENT_ROOT .
'/webportal/controllers/abstractlist.controller.class.php';
26require_once DOL_DOCUMENT_ROOT .
'/user/class/user.class.php';
36 public $userStaticCache = array();
47 return parent::checkAccess();
61 if (!
$context->controllerInstance->checkAccess()) {
65 $langs->loadLangs(array(
'ticket',
'companies',
'products'));
67 $context->title = $langs->trans(
'WebPortalTicketListTitle');
68 $context->desc = $langs->trans(
'WebPortalTicketListDesc');
69 $context->menu_active[] =
'ticket_list';
72 $this->formList->init($this,
'ticket');
75 if (empty($hookRes)) {
76 $this->formList->doActions();
79 $sqlBody =
" AND t.fk_soc = ".((int)
$context->logged_thirdparty->id);
80 $sqlBody .=
" AND t.fk_statut <> 9";
81 $this->formList->setSqlRequest(
'', $sqlBody);
83 $this->formList->loadRecords();
84 $this->formList->setParams();
85 $this->formList->setColumnsVisibility();
98 $this->formList->arrayfields[
'consultation_link'] = array(
100 'label' =>
'WebPortalTicketConsultation',
121 if ($field_key ===
'fk_statut') {
122 $this->formList->object->status = (int) ($record->fk_statut ?? 0);
123 $this->formList->object->fk_statut = (int) ($record->fk_statut ?? 0);
124 return $this->formList->object->getLibStatut(5);
127 if ($field_key ===
'fk_user_assign') {
128 $idUserAssign = (int) ($record->fk_user_assign ?? 0);
129 if ($idUserAssign <= 0) {
130 return $langs->trans(
'WebPortalTicketNotAssigned');
133 if (!isset($this->userStaticCache[$idUserAssign])) {
134 $userStatic =
new User($this->db);
135 $userStatic->fetch($idUserAssign);
136 $this->userStaticCache[$idUserAssign] = $userStatic;
139 if (!empty($this->userStaticCache[$idUserAssign]->
id)) {
140 return $this->userStaticCache[$idUserAssign]->getFullName($langs);
143 return $langs->trans(
'Unknown');
146 if ($field_key ===
'consultation_link') {
147 $baseurl =
getDolGlobalString(
'TICKET_URL_PUBLIC_INTERFACE', DOL_URL_ROOT.
'/public/ticket/');
148 $baseurl = rtrim($baseurl,
'/').
'/';
149 if ((
int) ($record->fk_user_create ?? 0) <= 0 && !empty($record->track_id)) {
150 $url = $baseurl.
'view.php?track_id='.urlencode((
string) $record->track_id);
151 if (!empty($record->origin_email)) {
152 $url .=
'&email='.urlencode((
string) $record->origin_email);
154 return '<a href="'.$url.
'" target="_blank" rel="noopener noreferrer">'.$langs->trans(
'WebPortalTicketConsultationLink').
'</a>';
157 return img_object($langs->trans(
'WebPortalTicketConsultationTooltipNotPublic'),
'info',
'class="classfortooltip"');
171 if (!
$context->controllerInstance->checkAccess()) {
181 if (empty($hookRes)) {
182 print
'<main class="container">';
Class for AbstractListController.
static getInstance()
Singleton method to create one instance of this object.
hookPrintPageView($parameters=array())
Execute hook PrintPageView.
display404()
Display error template.
hookDoAction($parameters=array())
Execute hook doActions.
loadTemplate($templateName, $vars=false)
Load a template .tpl file.
Class for TicketListController.
action()
Action method is called before html output can be used to manage security and change context.
listPrintValueBefore($field_key, $field_spec, &$record)
Called before print value for list.
checkAccess()
Check current access to controller.
listSetArrayFields()
Set array fields for ticket list.
Class to manage Dolibarr users.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
$context
@method int call_trigger(string $triggerName, ?User $user)