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 '
';