diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml
index 700d9fe64bf..65f350e1b53 100644
--- a/.github/workflows/code_quality.yml
+++ b/.github/workflows/code_quality.yml
@@ -15,9 +15,11 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
- fetch-depth: 0
- php-version: '7.1'
+ fetch-depth: 1
+ #php-version: '7.1'
- name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2022.3.0
+ #with:
+ # php-version: '7.1'
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/doxygen-gh-pages.yml b/.github/workflows/doxygen-gh-pages.yml.disabled
similarity index 100%
rename from .github/workflows/doxygen-gh-pages.yml
rename to .github/workflows/doxygen-gh-pages.yml.disabled
diff --git a/.github/workflows/exakat.yml.disabled b/.github/workflows/exakat.yml.disabled
index f5ecdb8c614..1e9121a0e00 100644
--- a/.github/workflows/exakat.yml.disabled
+++ b/.github/workflows/exakat.yml.disabled
@@ -16,6 +16,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
- name: Exakat
uses: docker://exakat/exakat-ga
with:
diff --git a/build/doxygen/dolibarr-doxygen.doxyfile b/build/doxygen/dolibarr-doxygen.doxyfile
index 20ff102f0a2..6f668ebad7e 100644
--- a/build/doxygen/dolibarr-doxygen.doxyfile
+++ b/build/doxygen/dolibarr-doxygen.doxyfile
@@ -117,7 +117,7 @@ FULL_PATH_NAMES = YES
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = ""
+STRIP_FROM_PATH = "/home/dolibarr/doxygen.dolibarr.org/"
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -1098,7 +1098,7 @@ SEARCHENGINE = YES
# full text search. The disadvances is that it is more difficult to setup
# and does not have live searching capabilities.
-SERVER_BASED_SEARCH = NO
+SERVER_BASED_SEARCH = YES
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
index 0c61f94a93d..50bbbca42d7 100644
--- a/htdocs/adherents/list.php
+++ b/htdocs/adherents/list.php
@@ -835,14 +835,14 @@ if (!empty($arrayfields['d.tms']['checked'])) {
}
// Status
if (!empty($arrayfields['d.statut']['checked'])) {
- print '
';
+ print ' ';
$liststatus = array(
Adherent::STATUS_DRAFT => $langs->trans("Draft"),
Adherent::STATUS_VALIDATED => $langs->trans("Validated"),
Adherent::STATUS_RESILIATED => $langs->trans("MemberStatusResiliatedShort"),
Adherent::STATUS_EXCLUDED =>$langs->trans("MemberStatusExcludedShort")
);
- print $form->selectarray('search_status', $liststatus, $search_status, -3, 0, 0, '', 0, 0, 0, '', 'onrightofpage');
+ print $form->selectarray('search_status', $liststatus, $search_status, -3, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage');
print ' ';
}
if (!empty($arrayfields['d.import_key']['checked'])) {
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 3796522e70e..f516efdd819 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -302,7 +302,13 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
$membertype = new AdherentType($db);
- while ($i < $num) {
+ $i = 0;
+ /*$savnbfield = $totalarray['nbfield'];
+ $totalarray = array();
+ $totalarray['nbfield'] = 0;*/
+
+ $imaxinloop = ($limit ? min($num, $limit) : $num);
+ while ($i < $imaxinloop) {
$objp = $db->fetch_object($result);
$membertype->id = $objp->rowid;
@@ -313,7 +319,6 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
$membertype->amount = $objp->amount;
$membertype->caneditamount = $objp->caneditamount;
-
if ($mode == 'kanban') {
if ($i == 0) {
print '';
@@ -321,7 +326,7 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
}
//output kanban
$membertype->label = $objp->label;
- $membertype->getKanbanView('');
+ print $membertype->getKanbanView('');
if ($i == ($imaxinloop - 1)) {
print '';
print ' ';
diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php
index d07a20774f5..3ce0b173fd3 100644
--- a/htdocs/bom/bom_list.php
+++ b/htdocs/bom/bom_list.php
@@ -562,7 +562,7 @@ foreach ($object->fields as $key => $val) {
$cssforfield .= ($cssforfield ? ' ' : '').'right';
}
if (!empty($arrayfields['t.'.$key]['checked'])) {
- print '';
+ print ' ';
if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) {
print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1);
} elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) {
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 2426abad9f4..0b03fc57c09 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -1386,8 +1386,8 @@ if ($resql) {
}
if (!empty($arrayfields['u.login']['checked'])) {
// Author
- print ' ';
- print ' ';
+ print ' ';
+ print ' ';
print ' ';
}
if (!empty($arrayfields['sale_representative']['checked'])) {
@@ -1443,8 +1443,8 @@ if ($resql) {
}
// Status
if (!empty($arrayfields['p.fk_statut']['checked'])) {
- print '';
- $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status maxwidth125 onrightofpage');
+ print ' ';
+ $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status width100 onrightofpage');
print ' ';
}
// Action column
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 191d3dcde39..8a361d2f302 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -1734,7 +1734,7 @@ if ($resql) {
}
// Status
if (!empty($arrayfields['c.fk_statut']['checked'])) {
- print '';
+ print ' ';
$liststatus = array(
Commande::STATUS_DRAFT=>$langs->trans("StatusOrderDraftShort"),
Commande::STATUS_VALIDATED=>$langs->trans("StatusOrderValidated"),
@@ -1744,7 +1744,7 @@ if ($resql) {
-2=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"),
Commande::STATUS_CANCELED=>$langs->trans("StatusOrderCanceledShort")
);
- print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'maxwidth125 onrightofpage', 1);
+ print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1);
print ' ';
}
// Action column
diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php
index 38b666cc2ef..098489e6f7b 100644
--- a/htdocs/compta/bank/list.php
+++ b/htdocs/compta/bank/list.php
@@ -483,7 +483,7 @@ if (!empty($arrayfields['b.tms']['checked'])) {
}
// Status
if (!empty($arrayfields['b.clos']['checked'])) {
- print '';
+ print ' ';
$array = array(
'opened'=>$langs->trans("Opened"),
'closed'=>$langs->trans("Closed")
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index afc31d7efe3..22f51f3543c 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -1590,9 +1590,9 @@ if ($resql) {
}
// Status
if (!empty($arrayfields['f.fk_statut']['checked'])) {
- print ' ';
+ print ' ';
$liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '0,1'=>$langs->trans("BillShortStatusDraft").'+'.$langs->trans("BillShortStatusNotPaid"), '1'=>$langs->trans("BillShortStatusNotPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
- print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'width100 onrightofpage', 1);
+ print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1);
print ' ';
}
// Action column
diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php
index f70ed44de0c..83690816801 100644
--- a/htdocs/compta/sociales/list.php
+++ b/htdocs/compta/sociales/list.php
@@ -501,9 +501,9 @@ if (!empty($arrayfields['cs.amount']['checked'])) {
// Filter: Status
if (!empty($arrayfields['cs.paye']['checked'])) {
- print '';
+ print ' ';
$liststatus = array('0'=>$langs->trans("Unpaid"), '1'=>$langs->trans("Paid"));
- print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100 onrightofpage', 1);
+ print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1);
print ' ';
}
diff --git a/htdocs/compta/tva/list.php b/htdocs/compta/tva/list.php
index 1c70cf93c22..001ef1e7b38 100644
--- a/htdocs/compta/tva/list.php
+++ b/htdocs/compta/tva/list.php
@@ -398,9 +398,9 @@ if (!empty($arrayfields['t.amount']['checked'])) {
// Status
if (!empty($arrayfields['t.status']['checked'])) {
- print '';
+ print ' ';
$liststatus = array('0' => $langs->trans("Unpaid"), '1' => $langs->trans("Paid"));
- print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'onrightofpage');
+ print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage');
print ' ';
}
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index 49c5fbd1f3f..987c0d3937e 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -1057,8 +1057,8 @@ if (!empty($arrayfields['p.tms']['checked'])) {
}
// Status
if (!empty($arrayfields['p.statut']['checked'])) {
- print '';
- print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75 onrightofpage');
+ print ' ';
+ print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage');
print ' ';
}
if (!empty($arrayfields['p.import_key']['checked'])) {
diff --git a/htdocs/core/class/html.formpropal.class.php b/htdocs/core/class/html.formpropal.class.php
index 7cce3c839c5..894bedebe00 100644
--- a/htdocs/core/class/html.formpropal.class.php
+++ b/htdocs/core/class/html.formpropal.class.php
@@ -133,14 +133,16 @@ class FormPropal
print '';
$i++;
}
- //Option for Signed+Billed
- if ($selected != '' && $selected == "2,4") {
- print '';
- } else {
- print ' ';
+ // Option for Signed+Billed
+ if ($mode == 'customer') {
+ if ($selected != '' && $selected == "2,4") {
+ print ' ';
+ } else {
+ print ' ';
+ }
+ print ($langs->trans($prefix.'Signed'.($short ? 'Short' : '')).' '.$langs->trans("or").' '.$langs->trans($prefix.'Billed'.($short ? 'Short' : '')));
+ print ' ';
}
- print ($langs->trans($prefix.'Signed'.($short ? 'Short' : '')).' '.$langs->trans("or").' '.$langs->trans($prefix.'Billed'.($short ? 'Short' : '')));
- print '';
print '';
print ajax_combobox($htmlname, array(), 0, 0, 'resolve', ($showempty < 0 ? (string) $showempty : '-1'), $morecss);
diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 27532c7a820..cacd22269ad 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -480,8 +480,11 @@ function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete =