diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php
index b085aff64d1..716dbc32ca7 100644
--- a/htdocs/admin/modulehelp.php
+++ b/htdocs/admin/modulehelp.php
@@ -330,7 +330,8 @@ if ($mode == 'desc') {
$textexternal = '';
if ($objMod->isCoreOrExternalModule() == 'external') {
- $textexternal .= '
'.$langs->trans("Origin").': '.$langs->trans("ExternalModule").' - '.$langs->trans("InstalledInto", $dirofmodule);
+ $tmpdirofmoduletoshow = preg_replace('/^'.preg_quote(DOL_DOCUMENT_ROOT, '/').'/', '', $dirofmodule);
+ $textexternal .= '
'.$langs->trans("Origin").': '.$langs->trans("ExternalModule").' - '.$langs->trans("InstalledInto", $tmpdirofmoduletoshow);
global $dolibarr_allow_download_external_modules;
if (!empty($dolibarr_allow_download_external_modules) && preg_match('/\/custom\//', $dirofmodule)) {
diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php
index 097d125708f..f720e411717 100644
--- a/htdocs/admin/modules.php
+++ b/htdocs/admin/modules.php
@@ -540,7 +540,7 @@ if ($mode == 'common' || $mode == 'commonkanban') {
$moreforfilter .= img_picto($langs->trans("Filter"), 'filter', 'class="paddingright opacityhigh hideonsmartphone"').'';
$moreforfilter .= '';
$moreforfilter .= '
';
- $moreforfilter .= $form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), $langs->trans('Origin'), 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1);
+ $moreforfilter .= $form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), $langs->trans('Origin'), 0, 0, '', 0, 0, 0, '', 'maxwidth250', 1);
$moreforfilter .= '
';
if (getDolGlobalInt('MAIN_FEATURES_LEVEL')) {
$array_version = array('stable'=>$langs->transnoentitiesnoconv("Stable"));
@@ -563,7 +563,7 @@ if ($mode == 'common' || $mode == 'commonkanban') {
$moreforfilter .= ' ';
$moreforfilter .= '';
$moreforfilter .= '
';
- if ($search_keyword || $search_status || $search_nature || $search_version) {
+ if ($search_keyword || ($search_nature && $search_nature != '-1') || ($search_version && $search_version != '-1') || ($search_status && $search_status != '-1')) {
$moreforfilter .= ' ';
$moreforfilter .= '
';
}
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index df85c95d9f9..ed871204cae 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -1612,7 +1612,7 @@ function dol_fiche_head($links = array(), $active = '0', $title = '', $notab = 0
/**
* Show tabs of a record
*
- * @param array $links Array of tabs
+ * @param array $links Array of tabs. Note that label into $links[$i][1] must be already HTML escaped.
* @param string $active Active tab name
* @param string $title Title
* @param int $notab -1 or 0=Add tab header, 1=no tab header (if you set this to 1, using print dol_get_fiche_end() to close tab is not required), -2=Add tab header with no seaparation under tab (to start a tab just after)
@@ -1697,8 +1697,8 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab
}
if ($i < $limittoshow || $isactive) {
- // Add a new entry
- $out .= '
';
+ // Output entry with a visible tab
+ $out .= '
';
if (isset($links[$i][2]) && $links[$i][2] == 'image') {
if (!empty($links[$i][0])) {
@@ -1710,7 +1710,8 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab
//print "x $i $active ".$links[$i][2]." z";
$out .= '
';
} else {
- // The popup with the other tabs
+ // Add entry into the combo popup with the other tabs
if (!$popuptab) {
$popuptab = 1;
$outmore .= '