From e190b010d3aae2aa6c501d37003f6a921a36a924 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 3 Jan 2021 16:05:04 +0100 Subject: [PATCH 1/3] Fix dict contact type element list --- htdocs/core/lib/admin.lib.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 7b3d66f9003..1bae8d0224f 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1382,7 +1382,14 @@ function complete_elementList_with_modules(&$elementList) if (!empty($objMod->module_parts['contactelement'])) { - $elementList[$objMod->name] = $langs->trans($objMod->name); + if(is_array($objMod->module_parts['contactelement'])) { + foreach ($objMod->module_parts['contactelement'] as $elem => $title) { + $elementList[$elem] = $langs->trans($title); + } + } + else { + $elementList[$objMod->name] = $langs->trans($objMod->name); + } } $j++; From d892d8c3c792f1bc29db570b02f17c629b5d9ea4 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Mon, 4 Jan 2021 10:59:45 +0100 Subject: [PATCH 2/3] FIX: Bad dates filtering in the ticket list causes sql error --- htdocs/ticket/list.php | 63 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 8e3b73346b7..90cd1fd1ec9 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -2,7 +2,7 @@ /* Copyright (C) 2013-2018 Jean-François FERRY * Copyright (C) 2016 Christophe Battarel * Copyright (C) 2018 Regis Houssin - * Copyright (C) 2019 Juanjo Menent + * Copyright (C) 2019-2021 Juanjo Menent * Copyright (C) 2019-2020 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify @@ -57,6 +57,14 @@ $project_ref = GETPOST('project_ref', 'alpha'); $search_societe = GETPOST('search_societe', 'alpha'); $search_fk_project = GETPOST('search_fk_project', 'int') ?GETPOST('search_fk_project', 'int') : GETPOST('projectid', 'int'); $search_fk_status = GETPOST('search_fk_statut', 'array'); +$search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int')); +$search_date_end = dol_mktime(23, 59, 59, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int')); +$search_dateread_start = dol_mktime(0, 0, 0, GETPOST('search_dateread_startmonth', 'int'), GETPOST('search_dateread_startday', 'int'), GETPOST('search_dateread_startyear', 'int')); +$search_dateread_end = dol_mktime(23, 59, 59, GETPOST('search_dateread_endmonth', 'int'), GETPOST('search_dateread_endday', 'int'), GETPOST('search_dateread_endyear', 'int')); +$search_dateclose_start = dol_mktime(0, 0, 0, GETPOST('search_dateclose_startmonth', 'int'), GETPOST('search_dateclose_startday', 'int'), GETPOST('search_dateclose_startyear', 'int')); +$search_dateclose_end = dol_mktime(23, 59, 59, GETPOST('search_dateclose_endmonth', 'int'), GETPOST('search_dateclose_endday', 'int'), GETPOST('search_dateclose_endyear', 'int')); + + $mode = GETPOST('mode', 'alpha'); // Load variable for pagination @@ -178,6 +186,12 @@ if (empty($reshook)) } $toselect = ''; $search_array_options = array(); + $search_date_start = ''; + $search_date_end = ''; + $search_dateread_start = ''; + $search_dateread_end = ''; + $search_dateclose_start = ''; + $search_dateclose_end = ''; } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) @@ -356,6 +370,14 @@ foreach ($search as $key => $val) if ($search_all) $sql .= natural_search(array_keys($fieldstosearchall), $search_all); if ($search_societe) $sql .= natural_search('s.nom', $search_societe); if ($search_fk_project) $sql .= natural_search('fk_project', $search_fk_project, 2); +if ($search_date_start) $sql .= " AND t.datec >= '".$db->idate($search_date_start)."'"; +if ($search_date_end) $sql .= " AND t.datec <= '".$db->idate($search_date_end)."'"; +if ($search_dateread_start) $sql .= " AND t.date_read >= '".$db->idate($search_dateread_start)."'"; +if ($search_dateread_end) $sql .= " AND t.date_read <= '".$db->idate($search_dateread_end)."'"; +if ($search_dateclose_start) $sql .= " AND t.date_close >= '".$db->idate($search_dateclose_start)."'"; +if ($search_dateclose_end) $sql .= " AND t.date_close <= '".$db->idate($search_dateclose_end)."'"; + + if (!$user->socid && ($mode == "mine" || (!$user->admin && $conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY))) { $sql .= " AND (t.fk_user_assign = ".$user->id; if (empty($conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY)) $sql .= " OR t.fk_user_create = ".$user->id; @@ -549,6 +571,13 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; if ($socid) $param .= '&socid='.urlencode($socid); if ($projectid) $param .= '&projectid='.urlencode($projectid); +if ($search_date_start) $param .= '&search_date_start='.urlencode($search_date_start); +if ($search_date_end) $param .= '&search_date_end='.urlencode($search_date_end); +if ($search_dateread_start) $param .= '&search_dateread_start='.urlencode($search_dateread_start); +if ($search_dateread_end) $param .= '&search_dateread_end='.urlencode($search_dateread_end); +if ($search_dateclose_start) $param .= '&search_dateclose_start='.urlencode($search_dateclose_start); +if ($search_dateclose_end) $param .= '&search_dateclose_end='.urlencode($search_dateclose_end); + // List of mass actions available $arrayofmassactions = array( //'presend'=>$langs->trans("SendByMail"), @@ -667,6 +696,38 @@ foreach ($object->fields as $key => $val) { print ''; } + elseif ($key == "datec" || $key == 'date_read' || $key == 'date_close'){ + print ''; + print '
'; + print $langs->trans('From').' '; + + switch ($key){ + case 'datec': + print $form->selectDate($search_date_start ?: -1, 'search_date_start', 0, 0, 1); + break; + case 'date_read': + print $form->selectDate($search_dateread_start ?: -1, 'search_dateread_start', 0, 0, 1); + break; + case 'date_close': + print $form->selectDate($search_dateclose_start ?: -1, 'search_dateclose_start', 0, 0, 1); + } + + print '
'; + print '
'; + print $langs->trans('to').' '; + switch ($key){ + case 'datec': + print $form->selectDate($search_date_end ?: -1, 'search_date_end', 0, 0, 1); + break; + case 'date_read': + print $form->selectDate($search_dateread_end ?: -1, 'search_dateread_end', 0, 0, 1); + break; + case 'date_close': + print $form->selectDate($search_dateclose_end ?: -1, 'search_dateclose_end', 0, 0, 1); + } + print '
'; + print ''; + } else { print ''; } From bb22f2ccaf18b8f50abe25a9477ff1f8188a4320 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 4 Jan 2021 12:02:41 +0100 Subject: [PATCH 3/3] Update admin.lib.php --- htdocs/core/lib/admin.lib.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 1bae8d0224f..8fddc46cca3 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1380,14 +1380,12 @@ function complete_elementList_with_modules(&$elementList) $dirmod[$i] = $dir; //print "x".$modName." ".$orders[$i]."\n
"; - if (!empty($objMod->module_parts['contactelement'])) - { - if(is_array($objMod->module_parts['contactelement'])) { + if (!empty($objMod->module_parts['contactelement'])) { + if (is_array($objMod->module_parts['contactelement'])) { foreach ($objMod->module_parts['contactelement'] as $elem => $title) { $elementList[$elem] = $langs->trans($title); } - } - else { + } else { $elementList[$objMod->name] = $langs->trans($objMod->name); } }