diff --git a/htdocs/adherents/agenda.php b/htdocs/adherents/agenda.php
index bd40ed7166e..cc81b058d87 100644
--- a/htdocs/adherents/agenda.php
+++ b/htdocs/adherents/agenda.php
@@ -192,7 +192,16 @@ if ($object->id > 0) {
$param .= '&limit='.$limit;
}
- print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $newcardbutton, '', 0, 1, 0);
+ require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
+ $cachekey = 'count_events_member_'.$object->id;
+ $nbEvent = dol_getcache($cachekey);
+
+ $titlelist = $langs->trans("ActionsOnMember").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
+
+ print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $newcardbutton, '', 0, 1, 0);
// List of all actions
$filters = array();
diff --git a/htdocs/adherents/messaging.php b/htdocs/adherents/messaging.php
index 2ea83973919..e5aaa491bb2 100644
--- a/htdocs/adherents/messaging.php
+++ b/htdocs/adherents/messaging.php
@@ -193,7 +193,7 @@ if (isModEnabled('agenda') && ($user->hasRight('agenda', 'myactions', 'read') ||
// Try to know count of actioncomm from cache
require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
- $cachekey = 'count_events_user_'.$object->id;
+ $cachekey = 'count_events_member_'.$object->id;
$nbEvent = dol_getcache($cachekey); // TODO Add nb into badge in menu so we can get it from cache also here
$titlelist = $langs->trans("ActionsOnMember").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
diff --git a/htdocs/bookcal/calendar_agenda.php b/htdocs/bookcal/calendar_agenda.php
index e72b5e691a3..74d31b5c80d 100644
--- a/htdocs/bookcal/calendar_agenda.php
+++ b/htdocs/bookcal/calendar_agenda.php
@@ -265,6 +265,7 @@ if ($object->id > 0) {
//$cachekey = 'count_events_myobject_'.$object->id;
//$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')': '');
+
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
// List of all actions
diff --git a/htdocs/compta/facture/agenda.php b/htdocs/compta/facture/agenda.php
index b91bcdc9cab..681b5b4746e 100644
--- a/htdocs/compta/facture/agenda.php
+++ b/htdocs/compta/facture/agenda.php
@@ -239,7 +239,13 @@ if ($object->id > 0) {
//print_barre_liste($langs->trans("ActionsOnBill").(is_numeric($nbEvent) ? '('.$nbEvent.')' : ''), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 1);
//print_barre_liste($langs->trans("ActionsOnBill"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 1);
- print load_fiche_titre($langs->trans("ActionsOnBill"), $morehtmlright, '');
+ $titlelist = $langs->trans("ActionsOnBill").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
+
+ print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
+
// List of all actions
$filters = array();
$filters['search_agenda_label'] = $search_agenda_label;
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index eb9584b775f..b9625644c02 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -6125,7 +6125,10 @@ if ($action == 'create') {
$MAXEVENT = 10;
- $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/compta/facture/agenda.php?id='.$object->id);
+ $morehtmlcenter = '
';
+ $morehtmlcenter .= dolGetButtonTitle($langs->trans('FullConversation'), '', 'fa fa-comments imgforviewmode', DOL_URL_ROOT.'/compta/facture/messaging.php?id='.$object->id);
+ $morehtmlcenter .= dolGetButtonTitle($langs->trans('FullList'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/compta/facture/agenda.php?id='.$object->id);
+ $morehtmlcenter .= '
';
// List of actions on element
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
diff --git a/htdocs/compta/facture/messaging.php b/htdocs/compta/facture/messaging.php
index 34df3dbe284..6a1264c39d1 100644
--- a/htdocs/compta/facture/messaging.php
+++ b/htdocs/compta/facture/messaging.php
@@ -236,7 +236,13 @@ if ($object->id > 0) {
//print_barre_liste($langs->trans("ActionsOnBill").(is_numeric($nbEvent) ? '('.$nbEvent.')' : ''), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 1);
//print_barre_liste($langs->trans("ActionsOnBill"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 1);
- print load_fiche_titre($langs->trans("ActionsOnBill"), $morehtmlright, '');
+ $titlelist = $langs->trans("ActionsOnBill").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
+
+ print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
+
// List of all actions
$filters = array();
$filters['search_agenda_label'] = $search_agenda_label;
diff --git a/htdocs/contrat/agenda.php b/htdocs/contrat/agenda.php
index 5387ccd0a6b..1ab24f2c28c 100644
--- a/htdocs/contrat/agenda.php
+++ b/htdocs/contrat/agenda.php
@@ -277,7 +277,12 @@ if ($object->id > 0) {
$cachekey = 'count_events_thirdparty_'.$object->id;
$nbEvent = dol_getcache($cachekey);
- print_barre_liste($langs->trans("ActionsOnContract"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $newcardbutton, '', 0, 1, 0);
+ $titlelist = $langs->trans("ActionsOnContract").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
+
+ print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $newcardbutton, '', 0, 1, 0);
// List of all actions
$filters = array();
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 3c9266c1fdc..038a73f5018 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -8669,7 +8669,7 @@ class Form
* @param string $htmlname Name of html select area. Try to start name with "multi" or "search_multi" if this is a multiselect
* @param array{label:string,data-html:string,disable?:int<0,1>,css?:string} $array Array like array(key => value) or array(key=>array('label'=>..., 'data-...'=>..., 'disabled'=>..., 'css'=>...))
* @param string|string[]|int $id Preselected key or array of preselected keys for multiselect. Use 'ifone' to autoselect record if there is only one record.
- * @param int<0,1>|string $show_empty 0 no empty value allowed, 1 or string to add an empty value into list (If 1: key is -1 and value is '' or ' ', If placeholder string: key is -1 and value is the string), <0 to add an empty value with key that is this value.
+ * @param int<0,1>|string $show_empty 0 no empty value allowed, 1 or string to add an empty value into list (If 1: key is -1 and value is '' or ' ', If 'Placeholder string': key is -1 and value is the string), <0 to add an empty value with key that is this value.
* @param int<0,1> $key_in_label 1 to show key into label with format "[key] value"
* @param int<0,1> $value_as_key 1 to use value as key
* @param string $moreparam Add more parameters onto the select tag. For example 'style="width: 95%"' to avoid select2 component to go over parent container
diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php
index 2c75db69e11..96f4a3b7780 100644
--- a/htdocs/core/class/html.formactions.class.php
+++ b/htdocs/core/class/html.formactions.class.php
@@ -365,9 +365,10 @@ class FormActions
* @param int $multiselect 1=Allow multiselect of action type
* @param int $nooutput 1=No output
* @param string $morecss More css to add to SELECT component.
+ * @param int<0,1>|string $showempty 0 or 1 or 'Placeholder string'
* @return string
*/
- public function select_type_actions($selected = '', $htmlname = 'actioncode', $excludetype = '', $onlyautoornot = 0, $hideinfohelp = 0, $multiselect = 0, $nooutput = 0, $morecss = 'minwidth300')
+ public function select_type_actions($selected = '', $htmlname = 'actioncode', $excludetype = '', $onlyautoornot = 0, $hideinfohelp = 0, $multiselect = 0, $nooutput = 0, $morecss = 'minwidth300', $showempty = 0)
{
// phpcs:enable
global $langs, $user, $form;
@@ -382,10 +383,12 @@ class FormActions
// Suggest a list with manual events or all auto events
$arraylist = $caction->liste_array(1, 'code', $excludetype, $onlyautoornot, '', 0); // If we use param 'all' instead of 'code', there is no group by include in answer but the key 'type' of answer array contains the key for the group by.
+ /* Removed. The empty line must now be managed with param showempty
if (empty($multiselect)) {
// Add empty line at start only if no multiselect
array_unshift($arraylist, ' ');
}
+ */
//asort($arraylist);
if ($selected == 'manual') {
@@ -415,9 +418,9 @@ class FormActions
if (!is_array($selected) && !empty($selected)) {
$selected = explode(',', $selected);
}
- $out .= $form->multiselectarray($htmlname, $newarraylist, $selected, 0, 0, 'centpercent', 0, 0);
+ $out .= $form->multiselectarray($htmlname, $newarraylist, $selected, 0, 0, 'centpercent', 0, 0, '', '', (is_numeric($showempty) ? '' : $showempty));
} else {
- $out .= $form->selectarray($htmlname, $newarraylist, $selected, 0, 0, 0, '', 0, 0, 0, '', $morecss, 1);
+ $out .= $form->selectarray($htmlname, $newarraylist, $selected, $showempty, 0, 0, '', 0, 0, 0, '', $morecss, 1);
}
if ($user->admin && empty($onlyautoornot) && $hideinfohelp <= 0) {
diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
index 076c4de2117..b51e17fd1c1 100644
--- a/htdocs/core/lib/company.lib.php
+++ b/htdocs/core/lib/company.lib.php
@@ -1922,6 +1922,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = null, $nopr
if ($filterobj->id) {
$sql .= " AND a.fk_element = ".((int) $filterobj->id);
}
+ } elseif (is_object($filterobj) && get_class($filterobj) == 'FactureFournisseur') {
+ $sql .= " AND a.fk_element = o.rowid AND a.elementtype = 'invoice_supplier'";
+ if ($filterobj->id) {
+ $sql .= " AND a.fk_element = ".((int) $filterobj->id);
+ }
} elseif (is_object($filterobj) && get_class($filterobj) == 'Product') {
$sql .= " AND a.fk_element = o.rowid AND a.elementtype = 'product'";
if ($filterobj->id) {
@@ -1977,6 +1982,9 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = null, $nopr
if (is_array($actioncode) && !empty($actioncode)) {
$sql .= ' AND (';
foreach ($actioncode as $key => $code) {
+ if ((string) $code == '-1') {
+ continue;
+ }
if ($key != 0) {
$sql .= " OR ";
}
@@ -1985,7 +1993,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = null, $nopr
}
}
$sql .= ')';
- } elseif (!empty($actioncode)) {
+ } elseif (!empty($actioncode) && $actioncode != '-1') {
addEventTypeSQL($sql, $actioncode);
}
@@ -2173,7 +2181,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = null, $nopr
$out .= ' | ';
// Type
$out .= '';
- $out .= $formactions->select_type_actions($actioncode, "actioncode", '', getDolGlobalString('AGENDA_USE_EVENT_TYPE') ? -1 : 1, 0, (getDolGlobalString('AGENDA_USE_MULTISELECT_TYPE') ? 1 : 0), 1, 'combolargeelem minwidth100 maxwidth150');
+ $out .= $formactions->select_type_actions($actioncode, "actioncode", '', getDolGlobalString('AGENDA_USE_EVENT_TYPE') ? -1 : 1, 0, (getDolGlobalString('AGENDA_USE_MULTISELECT_TYPE') ? 1 : 0), 1, 'combolargeelem minwidth100 maxwidth150', 1);
$out .= ' | ';
$out .= ' | ';
$out .= ' | ';
@@ -2517,9 +2525,14 @@ function show_subsidiaries($conf, $langs, $db, $object)
*/
function addEventTypeSQL(&$sql, $actioncode, $sqlANDOR = "AND")
{
- global $conf, $db;
+ global $db;
+
// Condition on actioncode
+ if ((string) $actioncode == '-1') {
+ return $sql;
+ }
+
if (!getDolGlobalString('AGENDA_USE_EVENT_TYPE')) {
if ($actioncode == 'AC_NON_AUTO') {
$sql .= " $sqlANDOR c.type <> 'systemauto'";
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index a8377a1870d..1d7f03167a7 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -13941,15 +13941,7 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
$sql .= ", sp.lastname, sp.firstname";
} elseif (is_object($filterobj) && get_class($filterobj) == 'Adherent') {
$sql .= ", m.lastname, m.firstname";
- } elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') {
- $sql .= ", o.ref";
- } elseif (is_object($filterobj) && get_class($filterobj) == 'Product') {
- $sql .= ", o.ref";
- } elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket') {
- $sql .= ", o.ref";
- } elseif (is_object($filterobj) && get_class($filterobj) == 'BOM') {
- $sql .= ", o.ref";
- } elseif (is_object($filterobj) && get_class($filterobj) == 'Contrat') {
+ } elseif (is_object($filterobj) && in_array(get_class($filterobj), array('Commande', 'CommandeFournisseur', 'Product', 'Ticket', 'BOM', 'Contrat', 'Facture', 'FactureFournisseur'))) {
$sql .= ", o.ref";
}
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a";
@@ -14000,6 +13992,11 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
if ($filterobj->id) {
$sql .= " AND a.fk_element = ".((int) $filterobj->id);
}
+ } elseif (is_object($filterobj) && get_class($filterobj) == 'Commande') {
+ $sql .= " AND a.fk_element = o.rowid AND a.elementtype = 'order'";
+ if ($filterobj->id) {
+ $sql .= " AND a.fk_element = ".((int) $filterobj->id);
+ }
} elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') {
$sql .= " AND a.fk_element = o.rowid AND a.elementtype = 'order_supplier'";
if ($filterobj->id) {
@@ -14031,9 +14028,14 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
$sql .= " AND a.fk_contact = ".((int) $filterobj->id);
}
} elseif (is_object($filterobj) && get_class($filterobj) == 'Facture') {
- $sql .= "AND a.fk_element = o.rowid";
+ $sql .= " AND a.fk_element = o.rowid";
if ($filterobj->id) {
- $sql .= " AND a.fk_element = ".((int) $filterobj->id);
+ $sql .= " AND a.fk_element = ".((int) $filterobj->id)." AND a.elementtype = 'invoice'";
+ }
+ } elseif (is_object($filterobj) && get_class($filterobj) == 'FactureFournisseur') {
+ $sql .= " AND a.fk_element = o.rowid";
+ if ($filterobj->id) {
+ $sql .= " AND a.fk_element = ".((int) $filterobj->id)." AND a.elementtype = 'invoice_supplier'";
}
}
} else {
@@ -14041,7 +14043,7 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
}
// Condition on actioncode
- if (!empty($actioncode)) {
+ if (!empty($actioncode) && $actioncode != '-1') {
if (!getDolGlobalString('AGENDA_USE_EVENT_TYPE')) {
if ($actioncode == 'AC_NON_AUTO') {
$sql .= " AND c.type != 'systemauto'";
@@ -14258,14 +14260,13 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
$out .= getTitleFieldOfList('Date', 0, $_SERVER["PHP_SELF"], 'a.datep', '', $param, '', $sortfield, $sortorder, '')."\n";
- $out .= ''.$langs->trans("Search").' : | ';
+ $out .= ''.$langs->trans("Search").' : | ';
if ($donetodo) {
$out .= ' | ';
}
$out .= '';
- $out .= '';
- //$out .= img_picto($langs->trans("Type"), 'type');
- $out .= $formactions->select_type_actions($actioncode, "actioncode", '', !getDolGlobalString('AGENDA_USE_EVENT_TYPE') ? 1 : -1, 0, 0, 1, 'minwidth200imp');
+ $out .= '';
+ $out .= $formactions->select_type_actions($actioncode, "actioncode", '', getDolGlobalString('AGENDA_USE_EVENT_TYPE') ? -1 : 1, 0, 0, 1, 'minwidth200imp', $langs->trans("Type"));
$out .= ' | ';
$out .= '';
$out .= '';
@@ -14281,7 +14282,6 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = null,
$out .= '';
-
$out .= '';
$out .= '';
diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php
index ee2ac8d39c5..76b464a508f 100644
--- a/htdocs/core/lib/signature.lib.php
+++ b/htdocs/core/lib/signature.lib.php
@@ -96,6 +96,10 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1, $o
if ($type == 'proposal') {
$securekeyseed = getDolGlobalString('PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN');
+ if (strpos($securekeyseed, "\0") !== false) {
+ // String contains a null character that can't be encoded. Return an error to avoid fatal error later.
+ return 'Invalid parameter PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN. Contains a null character.';
+ }
$out = $urltouse.'/public/onlinesign/newonlinesign.php?source=proposal&ref='.($mode ? '' : '');
if ($mode == 1) {
@@ -136,6 +140,11 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1, $o
}*/
} elseif ($type == 'contract') {
$securekeyseed = getDolGlobalString('CONTRACT_ONLINE_SIGNATURE_SECURITY_TOKEN');
+ if (strpos($securekeyseed, "\0") !== false) {
+ // String contains a null character that can't be encoded. Return an error to avoid fatal error later.
+ return 'Invalid parameter CONTRACT_ONLINE_SIGNATURE_SECURITY_TOKEN. Contains a null character.';
+ }
+
$out = $urltouse.'/public/onlinesign/newonlinesign.php?source=contract&ref='.($mode ? '' : '');
if ($mode == 1) {
$out .= 'contract_ref';
@@ -151,6 +160,11 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1, $o
}
} elseif ($type == 'fichinter') {
$securekeyseed = getDolGlobalString('FICHINTER_ONLINE_SIGNATURE_SECURITY_TOKEN');
+ if (strpos($securekeyseed, "\0") !== false) {
+ // String contains a null character that can't be encoded. Return an error to avoid fatal error later.
+ return 'Invalid parameter FICHINTER_ONLINE_SIGNATURE_SECURITY_TOKEN. Contains a null character.';
+ }
+
$out = $urltouse.'/public/onlinesign/newonlinesign.php?source=fichinter&ref='.($mode ? '' : '');
if ($mode == 1) {
$out .= 'fichinter_ref';
@@ -166,6 +180,11 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1, $o
}
} else { // For example $type = 'societe_rib'
$securekeyseed = getDolGlobalString(dol_strtoupper($type).'_ONLINE_SIGNATURE_SECURITY_TOKEN');
+ if (strpos($securekeyseed, "\0") !== false) {
+ // String contains a null character that can't be encoded. Return an error to avoid fatal error later.
+ return 'Invalid parameter '.dol_strtoupper($type).'_ONLINE_SIGNATURE_SECURITY_TOKEN. Contains a null character.';
+ }
+
$out = $urltouse.'/public/onlinesign/newonlinesign.php?source='.$type.'&ref='.($mode ? '' : '');
if ($mode == 1) {
$out .= $type.'_ref';
diff --git a/htdocs/modulebuilder/template/myobject_agenda.php b/htdocs/modulebuilder/template/myobject_agenda.php
index b3cbeea107c..6f88f76fc09 100644
--- a/htdocs/modulebuilder/template/myobject_agenda.php
+++ b/htdocs/modulebuilder/template/myobject_agenda.php
@@ -317,6 +317,9 @@ if ($object->id > 0) {
//$cachekey = 'count_events_myobject_'.$object->id;
//$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
diff --git a/htdocs/projet/agenda.php b/htdocs/projet/agenda.php
index f3be10dfb26..6b4f2898100 100644
--- a/htdocs/projet/agenda.php
+++ b/htdocs/projet/agenda.php
@@ -222,6 +222,9 @@ if (!empty($object->id)) {
$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("ActionsOnProject").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
diff --git a/htdocs/projet/messaging.php b/htdocs/projet/messaging.php
index 30bc60584f6..c308f6c673e 100644
--- a/htdocs/projet/messaging.php
+++ b/htdocs/projet/messaging.php
@@ -222,6 +222,9 @@ if (!empty($object->id)) {
$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("ActionsOnProject").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
diff --git a/htdocs/ticket/agenda.php b/htdocs/ticket/agenda.php
index e9116ef9ffc..efa23b05897 100644
--- a/htdocs/ticket/agenda.php
+++ b/htdocs/ticket/agenda.php
@@ -278,6 +278,9 @@ if (!empty($object->id)) {
$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("ActionsOnTicket").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
diff --git a/htdocs/ticket/messaging.php b/htdocs/ticket/messaging.php
index 32492112f8e..4d04841e875 100644
--- a/htdocs/ticket/messaging.php
+++ b/htdocs/ticket/messaging.php
@@ -275,6 +275,9 @@ if (!empty($object->id)) {
$nbEvent = dol_getcache($cachekey);
$titlelist = $langs->trans("ActionsOnTicket").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ if (!empty($conf->dol_optimize_smallscreen)) {
+ $titlelist = $langs->trans("Actions").(is_numeric($nbEvent) ? '('.$nbEvent.')' : '');
+ }
print_barre_liste($titlelist, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlright, '', 0, 1, 0);
|