diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml
index 5b55cdc54c82c..633cc53437b7c 100644
--- a/.github/workflows/stale-issues.yml
+++ b/.github/workflows/stale-issues.yml
@@ -3,7 +3,7 @@ name: "Close stale issues (bugs and feature requests)"
on:
schedule:
- - cron: "0 0 * * *"
+ - cron: "0 20 * * *"
jobs:
stale:
diff --git a/dev/examples/ldap/ldapadd_sample1.txt b/dev/examples/ldap/ldapadd_sample1.txt
index 8a28529acb811..e998d6013a39c 100644
--- a/dev/examples/ldap/ldapadd_sample1.txt
+++ b/dev/examples/ldap/ldapadd_sample1.txt
@@ -11,4 +11,4 @@ objectclass: dcObject
objectClass: organization
objectClass: top
dc: my-domain
-o: Mon organisation
\ No newline at end of file
+o: my organisation
diff --git a/dev/examples/ldap/ldapmodify_sample1.txt b/dev/examples/ldap/ldapmodify_sample1.txt
index e3a8361ca31f0..e95d1dc03a702 100644
--- a/dev/examples/ldap/ldapmodify_sample1.txt
+++ b/dev/examples/ldap/ldapmodify_sample1.txt
@@ -12,4 +12,4 @@ objectclass: dcObject
objectClass: organization
objectClass: top
dc: my-domain
-o: Mon organisation
\ No newline at end of file
+o: my organisation
diff --git a/dev/resources/licence/Links on GPL.txt b/dev/resources/licence/Links on GPL.txt
index bb9c1597f682d..0fb3b63c8519b 100644
--- a/dev/resources/licence/Links on GPL.txt
+++ b/dev/resources/licence/Links on GPL.txt
@@ -1,7 +1,7 @@
-* Page with licence compatibility
+* Page with license compatibility
https://www.gnu.org/licenses/quick-guide-gplv3.fr.html
-* FAQ on GPL licence
+* FAQ on GPL license
https://www.fsf.org/licensing/licenses/gpl-faq.html
* Questions/Answers on Fork for using Dolibarr as a SaaS
diff --git a/dev/resources/sepa/text.txt b/dev/resources/sepa/text.txt
index 0a5336a128eab..e6c05276be22e 100644
--- a/dev/resources/sepa/text.txt
+++ b/dev/resources/sepa/text.txt
@@ -1,2 +1,2 @@
-To test a SEPA file:
-http://www.mesfluxdepaiement.fr/testez-vos-fichiers-sepa
\ No newline at end of file
+To test a SEPA file:
+https://www.mesfluxdepaiement.fr/testez-vos-fichiers-sepa
diff --git a/dev/translation/README b/dev/translation/README
index b470e4228d8e3..9727f91e2e6f7 100644
--- a/dev/translation/README
+++ b/dev/translation/README
@@ -3,11 +3,12 @@ README (English)
This directory contains tools to generate translation files for a new
languages or to update translation files for existing languages.
See Dolibarr Wiki page:
-http://wiki.dolibarr.org/index.php/Translator_documentation
+https://wiki.dolibarr.org/index.php/Translator_documentation
For more information on how to use them.
+for Linux OS:
To install transifex client:
sudo pip install --upgrade transifex-client
To update transifex client:
-sudo pip install --upgrade transifex-client
\ No newline at end of file
+sudo pip install --upgrade transifex-client
diff --git a/doc/user/README-DE.md b/doc/user/README-DE.md
new file mode 100644
index 0000000000000..ea9458f45639a
--- /dev/null
+++ b/doc/user/README-DE.md
@@ -0,0 +1,12 @@
+README (german)
+LiesMich (deutsch)
+
+--------------------------------
+Benutzeranleitung
+--------------------------------
+
+Alle Dolibarr-Informationen sind online verfuegbar ueber die Webseiten:
+https://www.dolibarr.de
+oder
+https://www.dolibarr.org
+https://wiki.dolibarr.org
diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
index c7681c6f9ca1d..1b83d5eb03f09 100644
--- a/htdocs/accountancy/admin/account.php
+++ b/htdocs/accountancy/admin/account.php
@@ -47,6 +47,8 @@
$search_pcgtype = GETPOST('search_pcgtype', 'alpha');
$search_pcgsubtype = GETPOST('search_pcgsubtype', 'alpha');
+$chartofaccounts = GETPOST('chartofaccounts', 'int');
+
// Security check
if ($user->socid > 0) accessforbidden();
if (!$user->rights->accounting->chartofaccount) accessforbidden();
@@ -104,11 +106,9 @@
$search_pcgsubtype = "";
$search_array_options = array();
}
-
- if (GETPOST('change_chart', 'alpha') && (GETPOST('valid_change_chart', 'int') || empty($conf->use_javascript_ajax)))
+ if ((GETPOST('valid_change_chart', 'alpha') && GETPOST('chartofaccounts', 'int') > 0) // explicit click on button 'Change and load' with js on
+ || (GETPOST('chartofaccounts', 'int') > 0 && GETPOST('chartofaccounts', 'int') != $conf->global->CHARTOFACCOUNTS)) // a submit of form is done and chartofaccounts combo has been modified
{
- $chartofaccounts = GETPOST('chartofaccounts', 'int');
-
if ($chartofaccounts > 0)
{
// Get language code for this $chartofaccounts
@@ -279,21 +279,13 @@
if (!empty($conf->use_javascript_ajax))
{
- print '
+ print '
';
@@ -340,8 +332,7 @@
else dol_print_error($db);
print "";
print ajax_combobox("chartofaccounts");
- print '';
- print '';
+ print '';
print '
';
print '
';
diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php
index b9a787cc67c87..b149173904bdc 100644
--- a/htdocs/admin/emailcollector_card.php
+++ b/htdocs/admin/emailcollector_card.php
@@ -573,6 +573,18 @@ function init_myfunc()
'recordevent'=>'RecordEvent');
if ($conf->projet->enabled) $arrayoftypes['project'] = 'CreateLeadAndThirdParty';
if ($conf->ticket->enabled) $arrayoftypes['ticket'] = 'CreateTicketAndThirdParty';
+
+ // support hook for add action
+ $parameters = array( 'arrayoftypes' => $arrayoftypes ) ;
+ $res = $hookmanager->executeHooks('addMoreActionsEmailCollector', $parameters, $object, $action);
+
+ if($res)
+ $arrayoftypes = $hookmanager->resArray;
+ else
+ foreach($hookmanager->resArray as $k=>$desc)
+ $arrayoftypes[$k]=$desc;
+
+
print $form->selectarray('operationtype', $arrayoftypes, '', 1, 0, 0, '', 1, 0, 0, '', 'maxwidth300');
print '
';
print '';
diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
index de550c0ac12ab..b302500ce3542 100644
--- a/htdocs/admin/ihm.php
+++ b/htdocs/admin/ihm.php
@@ -58,6 +58,13 @@
$action='';
}
+// Convert action set_XXX and del_XXX to set var (this is used when no javascript on for ajax_constantonoff)
+$regs = array();
+if (preg_match('/^(set|del)_([A-Z_]+)$/', $action, $regs)) {
+ if ($regs[1] == 'set') dolibarr_set_const($db, $regs[2], 1, 'chaine', 0, '', $conf->entity);
+ else dolibarr_del_const($db, $regs[2], $conf->entity);
+}
+
if ($action == 'removebackgroundlogin' && ! empty($conf->global->MAIN_LOGIN_BACKGROUND))
{
dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", (int) $conf->global->MAIN_IHM_PARAMS_REV+1, 'chaine', 0, '', $conf->entity);
@@ -81,15 +88,15 @@
if ($action == 'update')
{
- dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["MAIN_LANG_DEFAULT"], 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_LANG_DEFAULT", GETPOST("MAIN_LANG_DEFAULT", 'aZ09'), 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", (int) $conf->global->MAIN_IHM_PARAMS_REV+1, 'chaine', 0, '', $conf->entity);
//dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["MAIN_MULTILANGS"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"], 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_THEME", GETPOST("main_theme", 'aZ09'), 'chaine', 0, '', $conf->entity);
- $val=GETPOST('THEME_TOPMENU_DISABLE_IMAGE');
+ /*$val=GETPOST('THEME_TOPMENU_DISABLE_IMAGE');
if (! $val) dolibarr_del_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', $conf->entity);
- else dolibarr_set_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', GETPOST('THEME_TOPMENU_DISABLE_IMAGE'), 'chaine', 0, '', $conf->entity);
+ else dolibarr_set_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', GETPOST('THEME_TOPMENU_DISABLE_IMAGE'), 'chaine', 0, '', $conf->entity);*/
$val=(implode(',', (colorStringToArray(GETPOST('THEME_ELDY_BACKBODY'), array()))));
if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_BACKBODY', $conf->entity);
@@ -141,25 +148,27 @@
if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_USE_CHECKED', $conf->entity);
else dolibarr_set_const($db, "THEME_ELDY_USE_CHECKED", $val, 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_SIZE_SHORTLIST_LIMIT", $_POST["main_size_shortliste_limit"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["MAIN_DISABLE_JAVASCRIPT"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", $_POST["MAIN_BUTTON_HIDE_UNAUTHORIZED"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", $_POST["MAIN_DEFAULT_WORKING_DAYS"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", $_POST["MAIN_DEFAULT_WORKING_HOURS"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_SHOW_LOGO", $_POST["MAIN_SHOW_LOGO"], 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", $_POST["MAIN_FIRSTNAME_NAME_POSITION"], 'chaine', 0, '', $conf->entity);
-
- dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"], 'chaine', 0, '', 0); // Param for all entities
- dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]), 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr($_POST["main_home"]), 'chaine', 0, '', $conf->entity);
- dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", $_POST["MAIN_HELP_DISABLELINK"], 'chaine', 0, '', 0); // Param for all entities
- dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", $_POST["MAIN_BUGTRACK_ENABLELINK"], 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", GETPOST("main_size_liste_limit", 'int'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_SIZE_SHORTLIST_LIMIT", GETPOST("main_size_shortliste_limit", 'int'), 'chaine', 0, '', $conf->entity);
+
+ //dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", GETPOST("MAIN_DISABLE_JAVASCRIPT", 'aZ09'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", GETPOST("MAIN_BUTTON_HIDE_UNAUTHORIZED", 'aZ09'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_START_WEEK", GETPOST("MAIN_START_WEEK", 'int'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", GETPOST("MAIN_DEFAULT_WORKING_DAYS", 'int'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", GETPOST("MAIN_DEFAULT_WORKING_HOURS", 'int'), 'chaine', 0, '', $conf->entity);
+ //dolibarr_set_const($db, "MAIN_SHOW_LOGO", GETPOST("MAIN_SHOW_LOGO", 'aZ09'), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", GETPOST("MAIN_FIRSTNAME_NAME_POSITION", 'aZ09'), 'chaine', 0, '', $conf->entity);
+
+ dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", GETPOST('MAIN_HELPCENTER_DISABLELINK', 'aZ09'), 'chaine', 0, '', 0); // Param for all entities
+ dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr(GETPOST("main_motd", 'none')), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr(GETPOST("main_home", 'none')), 'chaine', 0, '', $conf->entity);
+ dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", GETPOST("MAIN_HELP_DISABLELINK", 'aZ09'), 'chaine', 0, '', 0); // Param for all entities
+ dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", GETPOST('MAIN_BUGTRACK_ENABLELINK', 'aZ09'), 'chaine', 0, '', $conf->entity);
$varforimage='imagebackground'; $dirforimage=$conf->mycompany->dir_output.'/logos/';
if ($_FILES[$varforimage]["tmp_name"])
{
+ $reg = array();
if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg))
{
$original_file=$reg[1];
@@ -248,7 +257,7 @@
// Multilingual GUI
print ' | '.$langs->trans("EnableMultilangInterface").' | ';
-print ajax_constantonoff('MAIN_MULTILANGS');
+print ajax_constantonoff("MAIN_MULTILANGS", array(), $conf->entity, 0, 0, 1, 0);
print ' | ';
print ' | ';
print '
';
@@ -267,7 +276,7 @@
// Disable javascript and ajax
print ''.$langs->trans("DisableJavascript").' | ';
-print $form->selectyesno('MAIN_DISABLE_JAVASCRIPT', isset($conf->global->MAIN_DISABLE_JAVASCRIPT)?$conf->global->MAIN_DISABLE_JAVASCRIPT:0, 1);
+print ajax_constantonoff("MAIN_DISABLE_JAVASCRIPT", array(), $conf->entity, 0, 0, 1, 0);
print ' | ';
print ' | ';
print '
';
diff --git a/htdocs/barcode/printsheet.php b/htdocs/barcode/printsheet.php
index 828d2ecff50b8..5cd988a5bed1d 100644
--- a/htdocs/barcode/printsheet.php
+++ b/htdocs/barcode/printsheet.php
@@ -278,6 +278,7 @@
print '