diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php
index d20a008d4fd..880661edbf5 100644
--- a/htdocs/accountancy/customer/list.php
+++ b/htdocs/accountancy/customer/list.php
@@ -303,7 +303,7 @@ if ($result) {
//'builddoc'=>$langs->trans("PDFMerge"),
);
//if ($user->rights->mymodule->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
- //if ($massaction == 'presend') $arrayofmassactions=array();
+ //if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('ventil', $arrayofmassactions, 1);
print '
\n";
+ if (empty($disableformtag)) $formconfirm.= "\n";
$formconfirm.= '
';
$formconfirm.= "\n";
diff --git a/htdocs/core/tpl/massactions_form.tpl.php b/htdocs/core/tpl/massactions_form.tpl.php
deleted file mode 100644
index 4087d988c3b..00000000000
--- a/htdocs/core/tpl/massactions_form.tpl.php
+++ /dev/null
@@ -1,151 +0,0 @@
-
- * Copyright (C) 2013-2014 Laurent Destailleur
- * Copyright (C) 2015 Marcos García
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- * or see http://www.gnu.org/
- */
-
-// Following var must be set:
-// $arrayofselected = array of id selected
-// $object
-// $objecttmp=new Propal($db);
-// $topicmail="SendSupplierProposalRef";
-// $modelmail="supplier_proposal_send";
-// $trackid='ord'.$object->id;
-
-$langs->load("mails");
-
-if (! GETPOST('cancel', 'alpha'))
-{
- $listofselectedid = array();
- $listofselectedthirdparties = array();
- $listofselectedref = array();
- foreach ($arrayofselected as $toselectid)
- {
- $result = $objecttmp->fetch($toselectid);
- if ($result > 0)
- {
- $listofselectedid[$toselectid] = $toselectid;
- $thirdpartyid = ($objecttmp->fk_soc ? $objecttmp->fk_soc : $objecttmp->socid);
- if ($objecttmp->element == 'societe')
- $thirdpartyid = $objecttmp->id;
- if ($objecttmp->element == 'expensereport')
- $thirdpartyid = $objecttmp->fk_user_author;
- $listofselectedthirdparties[$thirdpartyid] = $thirdpartyid;
- $listofselectedref[$thirdpartyid][$toselectid] = $objecttmp->ref;
- }
- }
-}
-
-print '';
-
-include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
-$formmail = new FormMail($db);
-
-dol_fiche_head(null, '', '');
-
-// Cree l'objet formulaire mail
-include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
-$formmail = new FormMail($db);
-$formmail->withform = -1;
-$formmail->fromtype = (GETPOST('fromtype') ? GETPOST('fromtype') : (! empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) ? $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE : 'user'));
-
-if ($formmail->fromtype === 'user')
-{
- $formmail->fromid = $user->id;
-}
-$formmail->trackid = $trackid;
-if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
-{
- include DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
- $formmail->frommail = dolAddEmailTrackId($formmail->frommail, $trackid);
-}
-$formmail->withfrom = 1;
-$liste = $langs->trans("AllRecipientSelected", count($arrayofselected));
-if (count($listofselectedthirdparties) == 1) // Only 1 different recipient selected, we can suggest contacts
-{
- $liste = array();
- $thirdpartyid = array_shift($listofselectedthirdparties);
- if ($objecttmp->element == 'expensereport')
- {
- $fuser = new User($db);
- $fuser->fetch($thirdpartyid);
- $liste['thirdparty'] = $fuser->getFullName($langs)." <".$fuser->email.">";
- }
- else
- {
- $soc = new Societe($db);
- $soc->fetch($thirdpartyid);
- foreach ($soc->thirdparty_and_contact_email_array(1) as $key => $value) {
- $liste[$key] = $value;
- }
- }
- $formmail->withtoreadonly = 0;
-} else {
- $formmail->withtoreadonly = 1;
-}
-
-$formmail->withoptiononeemailperrecipient = empty($liste)?0:((GETPOST('oneemailperrecipient')=='on')?1:-1);
-$formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste;
-$formmail->withtofree = empty($liste)?1:0;
-$formmail->withtocc = 1;
-$formmail->withtoccc = $conf->global->MAIN_EMAIL_USECCC;
-$formmail->withtopic = $langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
-$formmail->withfile = 1;
-// $formmail->withfile = 2; Not yet supported in mass action
-$formmail->withmaindocfile = 1; // Add a checkbox "Attach also main document"
-if ($objecttmp->element != 'societe') {
- $formmail->withfile = $langs->trans("OnlyPDFattachmentSupported");
- $formmail->withmaindocfile = - 1; // Add a checkbox "Attach also main document" but not checked by default
-}
-$formmail->withbody = 1;
-$formmail->withdeliveryreceipt = 1;
-$formmail->withcancel = 1;
-
-// Make substitution in email content
-$substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
-$substitutionarray['__EMAIL__'] = $sendto;
-$substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '
' : '';
-$substitutionarray['__PERSONALIZED__'] = ''; // deprecated
-$substitutionarray['__CONTACTCIVNAME__'] = '';
-
-$parameters = array(
- 'mode' => 'formemail'
-);
-complete_substitutions_array($substitutionarray, $langs, $object, $parameters);
-
-// Tableau des substitutions
-$formmail->substit = $substitutionarray;
-
-// Tableau des parametres complementaires du post
-$formmail->param['action'] = $action;
-$formmail->param['models'] = $modelmail;
-$formmail->param['models_id'] = GETPOST('modelmailselected', 'int');
-$formmail->param['id'] = join(',', $arrayofselected);
-// $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
-if (! empty($conf->global->MAILING_LIMIT_SENDBYWEB) && count($listofselectedthirdparties) > $conf->global->MAILING_LIMIT_SENDBYWEB)
-{
- $langs->load("errors");
- print img_warning() . ' ' . $langs->trans('WarningNumberOfRecipientIsRestrictedInMassAction', $conf->global->MAILING_LIMIT_SENDBYWEB);
- print ' - ' . $langs->trans("GoBack") . '';
- $arrayofmassactions = array();
-}
-else
-{
- print $formmail->get_form();
-}
-
-dol_fiche_end();
diff --git a/htdocs/core/tpl/massactions_pre.tpl.php b/htdocs/core/tpl/massactions_pre.tpl.php
new file mode 100644
index 00000000000..2095399dace
--- /dev/null
+++ b/htdocs/core/tpl/massactions_pre.tpl.php
@@ -0,0 +1,160 @@
+
+ * Copyright (C) 2013-2014 Laurent Destailleur
+ * Copyright (C) 2015 Marcos García
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ * or see http://www.gnu.org/
+ */
+
+// Following var must be set:
+// $arrayofselected = array of id selected
+// $object
+// $objecttmp=new Propal($db);
+// $topicmail="SendSupplierProposalRef";
+// $modelmail="supplier_proposal_send";
+// $trackid='ord'.$object->id;
+
+
+if ($massaction == 'predelete')
+{
+ print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeletion"), $langs->trans("ConfirmMassDeletionQuestion", count($toselect)), "delete", null, '', 0, 200, 500, 1);
+}
+
+if ($massaction == 'presend')
+{
+ $langs->load("mails");
+
+ if (! GETPOST('cancel', 'alpha'))
+ {
+ $listofselectedid = array();
+ $listofselectedthirdparties = array();
+ $listofselectedref = array();
+ foreach ($arrayofselected as $toselectid)
+ {
+ $result = $objecttmp->fetch($toselectid);
+ if ($result > 0)
+ {
+ $listofselectedid[$toselectid] = $toselectid;
+ $thirdpartyid = ($objecttmp->fk_soc ? $objecttmp->fk_soc : $objecttmp->socid);
+ if ($objecttmp->element == 'societe')
+ $thirdpartyid = $objecttmp->id;
+ if ($objecttmp->element == 'expensereport')
+ $thirdpartyid = $objecttmp->fk_user_author;
+ $listofselectedthirdparties[$thirdpartyid] = $thirdpartyid;
+ $listofselectedref[$thirdpartyid][$toselectid] = $objecttmp->ref;
+ }
+ }
+ }
+
+ print '';
+
+ include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
+ $formmail = new FormMail($db);
+
+ dol_fiche_head(null, '', '');
+
+ // Cree l'objet formulaire mail
+ include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
+ $formmail = new FormMail($db);
+ $formmail->withform = -1;
+ $formmail->fromtype = (GETPOST('fromtype') ? GETPOST('fromtype') : (! empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) ? $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE : 'user'));
+
+ if ($formmail->fromtype === 'user')
+ {
+ $formmail->fromid = $user->id;
+ }
+ $formmail->trackid = $trackid;
+ if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
+ {
+ include DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
+ $formmail->frommail = dolAddEmailTrackId($formmail->frommail, $trackid);
+ }
+ $formmail->withfrom = 1;
+ $liste = $langs->trans("AllRecipientSelected", count($arrayofselected));
+ if (count($listofselectedthirdparties) == 1) // Only 1 different recipient selected, we can suggest contacts
+ {
+ $liste = array();
+ $thirdpartyid = array_shift($listofselectedthirdparties);
+ if ($objecttmp->element == 'expensereport')
+ {
+ $fuser = new User($db);
+ $fuser->fetch($thirdpartyid);
+ $liste['thirdparty'] = $fuser->getFullName($langs)." <".$fuser->email.">";
+ }
+ else
+ {
+ $soc = new Societe($db);
+ $soc->fetch($thirdpartyid);
+ foreach ($soc->thirdparty_and_contact_email_array(1) as $key => $value) {
+ $liste[$key] = $value;
+ }
+ }
+ $formmail->withtoreadonly = 0;
+ } else {
+ $formmail->withtoreadonly = 1;
+ }
+
+ $formmail->withoptiononeemailperrecipient = empty($liste)?0:((GETPOST('oneemailperrecipient')=='on')?1:-1);
+ $formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste;
+ $formmail->withtofree = empty($liste)?1:0;
+ $formmail->withtocc = 1;
+ $formmail->withtoccc = $conf->global->MAIN_EMAIL_USECCC;
+ $formmail->withtopic = $langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
+ $formmail->withfile = 1;
+ // $formmail->withfile = 2; Not yet supported in mass action
+ $formmail->withmaindocfile = 1; // Add a checkbox "Attach also main document"
+ if ($objecttmp->element != 'societe') {
+ $formmail->withfile = $langs->trans("OnlyPDFattachmentSupported");
+ $formmail->withmaindocfile = - 1; // Add a checkbox "Attach also main document" but not checked by default
+ }
+ $formmail->withbody = 1;
+ $formmail->withdeliveryreceipt = 1;
+ $formmail->withcancel = 1;
+
+ // Make substitution in email content
+ $substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
+ $substitutionarray['__EMAIL__'] = $sendto;
+ $substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '
' : '';
+ $substitutionarray['__PERSONALIZED__'] = ''; // deprecated
+ $substitutionarray['__CONTACTCIVNAME__'] = '';
+
+ $parameters = array(
+ 'mode' => 'formemail'
+ );
+ complete_substitutions_array($substitutionarray, $langs, $object, $parameters);
+
+ // Tableau des substitutions
+ $formmail->substit = $substitutionarray;
+
+ // Tableau des parametres complementaires du post
+ $formmail->param['action'] = $action;
+ $formmail->param['models'] = $modelmail;
+ $formmail->param['models_id'] = GETPOST('modelmailselected', 'int');
+ $formmail->param['id'] = join(',', $arrayofselected);
+ // $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
+ if (! empty($conf->global->MAILING_LIMIT_SENDBYWEB) && count($listofselectedthirdparties) > $conf->global->MAILING_LIMIT_SENDBYWEB)
+ {
+ $langs->load("errors");
+ print img_warning() . ' ' . $langs->trans('WarningNumberOfRecipientIsRestrictedInMassAction', $conf->global->MAILING_LIMIT_SENDBYWEB);
+ print ' - ' . $langs->trans("GoBack") . '';
+ $arrayofmassactions = array();
+ }
+ else
+ {
+ print $formmail->get_form();
+ }
+
+ dol_fiche_end();
+}
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 30d5eea98d6..58ed3f50216 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -380,7 +380,7 @@ if ($resql)
'builddoc'=>$langs->trans("PDFMerge"),
);
if ($user->rights->expensereport->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
- if ($massaction == 'presend') $arrayofmassactions=array();
+ if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
// Lines of title fields
@@ -486,15 +486,11 @@ if ($resql)
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', $limit);
}
- if ($massaction == 'presend')
- {
- $topicmail="SendExpenseReport";
- $modelmail="expensereport";
- $objecttmp=new ExpenseReport($db);
- $trackid='int'.$object->id;
-
- include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_form.tpl.php';
- }
+ $topicmail="SendExpenseReport";
+ $modelmail="expensereport";
+ $objecttmp=new ExpenseReport($db);
+ $trackid='int'.$object->id;
+ include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($sall)
{
diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php
index 3b4aca20951..8f9d2fcf4bb 100644
--- a/htdocs/fichinter/list.php
+++ b/htdocs/fichinter/list.php
@@ -285,9 +285,8 @@ if ($resql)
//'presend'=>$langs->trans("SendByMail"),
'builddoc'=>$langs->trans("PDFMerge"),
);
- //if($user->rights->facture->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
if ($user->rights->ficheinter->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
- //if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array();
+ //if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
// Lines of title fields
diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
index 5194d6296bb..9d20023abd8 100644
--- a/htdocs/fourn/commande/list.php
+++ b/htdocs/fourn/commande/list.php
@@ -661,7 +661,7 @@ if ($resql)
);
//if($user->rights->fournisseur->facture->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
if ($user->rights->fournisseur->commande->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
- if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array();
+ if (in_array($massaction, array('presend','predelete','createbills'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
// Lignes des champs de filtre
@@ -678,15 +678,11 @@ if ($resql)
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_commercial.png', 0, '', '', $limit);
- if ($massaction == 'presend')
- {
- $topicmail="SendOrderRef";
- $modelmail="order_supplier_send";
- $objecttmp=new CommandeFournisseur($db);
- $trackid='sord'.$object->id;
-
- include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_form.tpl.php';
- }
+ $topicmail="SendOrderRef";
+ $modelmail="order_supplier_send";
+ $objecttmp=new CommandeFournisseur($db);
+ $trackid='sord'.$object->id;
+ include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($massaction == 'createbills')
{
diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
index 508a9e28117..0cf949d38de 100644
--- a/htdocs/fourn/facture/list.php
+++ b/htdocs/fourn/facture/list.php
@@ -472,7 +472,7 @@ if ($resql)
);
//if($user->rights->fournisseur->facture->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
if ($user->rights->fournisseur->facture->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
- if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array();
+ if (in_array($massaction, array('presend','predelete','createbills'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
$i = 0;
@@ -489,15 +489,11 @@ if ($resql)
print_barre_liste($langs->trans("BillsSuppliers").($socid?' '.$soc->name:''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit);
- if ($massaction == 'presend')
- {
- $topicmail="SendBillRef";
- $modelmail="supplier_invoice_send";
- $objecttmp=new FactureFournisseur($db);
- $trackid='sinv'.$object->id;
-
- include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_form.tpl.php';
- }
+ $topicmail="SendBillRef";
+ $modelmail="supplier_invoice_send";
+ $objecttmp=new FactureFournisseur($db);
+ $trackid='sinv'.$object->id;
+ include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($massaction == 'createbills')
{
diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php
index c6a8f24f98f..c5b39a87681 100644
--- a/htdocs/fourn/product/list.php
+++ b/htdocs/fourn/product/list.php
@@ -119,7 +119,7 @@ $arrayofmassactions = array(
'builddoc'=>$langs->trans("PDFMerge"),
);
if ($user->rights->mymodule->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
-if ($massaction == 'presend') $arrayofmassactions=array();
+if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
index efe1c87820e..1d89bbbdd94 100644
--- a/htdocs/holiday/list.php
+++ b/htdocs/holiday/list.php
@@ -299,7 +299,7 @@ $arrayofmassactions = array(
//'builddoc'=>$langs->trans("PDFMerge"),
);
if ($user->rights->holiday->delete) $arrayofmassactions['delete']=$langs->trans("Delete");
-//if ($massaction == 'presend') $arrayofmassactions=array();
+//if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
print '