* Fix mandatory fields JS: use name selector instead of id, fix undefined buttonName on create, fix HTML entities in alert message
* Update alert message for empty field validation
---------
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Implement external download option for supplier invoices
Added a new option to allow external downloads for supplier invoices, enhancing user flexibility.
* Add option for external download in supplier order
* Enable external download for supplier orders and invoices
Added conditions to enable external download for supplier orders and invoices based on configuration settings.
* Add direct download URLs for supplier orders and invoices
* Update copyright information in supplier_invoice.php
Added copyright notice for Pierre Ardoin for 2026.
* Update supplier_order.php
* Cast thirdparty ID to integer in fetch call
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix: use ob_end_clean() instead of ob_end_flush() in readfileLowMemory() (fixes#37239)
* fix: use robust ob level cleanup loop per hregis review
---------
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Clean filenames with double spaces
If a filename contains double spaces, it can get uploaded in Dolibarr exactly as it is.
When listing the file or trying to download it, the dolibarr functions clear double spaces in the filename. In particular the alpha parameter for GETPOST.
This results in files being uploaded (e.g. attachments for invoices) than can get listed but remain inaccessible and even cannot get deleted via UI.
We either need to fix all these places to accept double spaces or we change a single location, when we sanitize filenames.
* removed white space
* FIX wrong $param parameter position
* FIX ok it's good ! ;-)
* Qual: Change field name to let phan warn about argument order
# Qual: Change field name to let phan warn about argument order
Most of the time print_liste_field_titre() is called with $param instead of $moreparam.
By changing the argument name, phan will warn if the position is likely incorrect when '$param' is used - it will not warn for cases where $option or another
name is used.
---------
Co-authored-by: Regis Houssin <regis.houssin@inodbox.com>