diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index 19a4022a9a4..bc8b59671f8 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -3983,6 +3983,20 @@ elseif ($id > 0 || !empty($ref))
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?facid='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneInvoice', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 250);
}
+ if ($action == "remove_file_comfirm")
+ {
+ $file = GETPOST('file', 'alpha');
+
+ $formconfirm = $form->formconfirm(
+ $_SERVER["PHP_SELF"].'?facid='.$object->id.'&file='.$file,
+ $langs->trans('DeleteFileHeader'),
+ $langs->trans('DeleteFileText')."
".$file,
+ 'remove_file',
+ '',
+ 'no',
+ 2);
+ }
+
// Call Hook formConfirm
$parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid, 'remainingtopay' => &$resteapayer);
$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
@@ -5359,7 +5373,11 @@ elseif ($id > 0 || !empty($ref))
$genallowed = $usercanread;
$delallowed = $usercancreate;
- print $formfile->showdocuments('facture', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang, '', $object);
+ print $formfile->showdocuments(
+ 'facture', $filename, $filedir, $urlsource, $genallowed,
+ $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '',
+ $soc->default_lang, '', $object, 0, 'remove_file_comfirm');
+
$somethingshown = $formfile->numoffiles;
// Show links to link elements
diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index f688880b789..bc8aa3a9b39 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -331,9 +331,10 @@ class FormFile
* @param string $morepicto Add more HTML content into cell with picto
* @param Object $object Object when method is called from an object card.
* @param int $hideifempty Hide section of generated files if there is no file
+ * @param string $removeaction (optional) The action to remove a file
* @return string Output string with HTML array of documents (might be empty string)
*/
- public function showdocuments($modulepart, $modulesubdir, $filedir, $urlsource, $genallowed, $delallowed = 0, $modelselected = '', $allowgenifempty = 1, $forcenomultilang = 0, $iconPDF = 0, $notused = 0, $noform = 0, $param = '', $title = '', $buttonlabel = '', $codelang = '', $morepicto = '', $object = null, $hideifempty = 0)
+ public function showdocuments($modulepart, $modulesubdir, $filedir, $urlsource, $genallowed, $delallowed = 0, $modelselected = '', $allowgenifempty = 1, $forcenomultilang = 0, $iconPDF = 0, $notused = 0, $noform = 0, $param = '', $title = '', $buttonlabel = '', $codelang = '', $morepicto = '', $object = null, $hideifempty = 0, $removeaction = 'remove_file')
{
// Deprecation warning
if (!empty($iconPDF)) {
@@ -859,7 +860,7 @@ class FormFile
if ($delallowed)
{
$tmpurlsource = preg_replace('/#[a-zA-Z0-9_]*$/', '', $urlsource);
- $out .= '