diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 58666899c77..3f9a6827e49 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -575,15 +575,14 @@ class Form
* Generate select HTML to choose massaction
*
* @param string $selected Value auto selected when at least one record is selected. Not a preselected value. Use '0' by default.
- * @param int $arrayofaction array('code'=>'label', ...). The code is the key stored into the GETPOST('massaction') when submitting action.
+ * @param array $arrayofaction array('code'=>'label', ...). The code is the key stored into the GETPOST('massaction') when submitting action.
* @param int $alwaysvisible 1=select button always visible
- * @return string Select list
+ * @return string|void Select list
*/
public function selectMassAction($selected, $arrayofaction, $alwaysvisible = 0)
{
global $conf,$langs,$hookmanager;
- if (count($arrayofaction) == 0) return;
$disabled=0;
$ret='
';
@@ -592,6 +591,8 @@ class Form
// Complete list with data from external modules. THe module can use $_SERVER['PHP_SELF'] to know on which page we are, or use the $parameters['currentcontext'] completed by executeHooks.
$parameters=array();
$reshook=$hookmanager->executeHooks('addMoreMassActions', $parameters); // Note that $action and $object may have been modified by hook
+ // check if there is a mass action
+ if (count($arrayofaction) == 0 && empty($hookmanager->resPrint)) return;
if (empty($reshook))
{
$ret.='';
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index f3a190e329b..0068f72d6c0 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -441,14 +441,14 @@ if ($resql)
//'builddoc'=>$langs->trans("PDFMerge"),
//'presend'=>$langs->trans("SendByMail"),
);
- if ($user->rights->produit->supprimer) $arrayofmassactions['predelete']="".$langs->trans("Delete");
+ $rightskey='produit';
+ if ($type == Product::TYPE_SERVICE) $rightskey='service';
+ if ($user->rights->{$rightskey}->supprimer) $arrayofmassactions['predelete']="".$langs->trans("Delete");
if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
$newcardbutton='';
- $rightskey='produit';
- if($type == Product::TYPE_SERVICE) $rightskey='service';
- if($user->rights->{$rightskey}->creer)
+ if ($user->rights->{$rightskey}->creer)
{
$oldtype=$type;
if ($type === "") {
@@ -458,7 +458,7 @@ if ($resql)
$label='NewProduct';
if($type == Product::TYPE_SERVICE) $label='NewService';
$newcardbutton.= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type='.$type);
- $type=$oldtype;
+ $type=$oldtype;
}
print '