Merge branch '17.0' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2022-12-28 02:44:28 +01:00
commit 120dd6319f
13 changed files with 357 additions and 199 deletions

View File

@ -368,7 +368,7 @@ if (!is_array($result) && $result < 0) {
} elseif (count($result) > 0) { } elseif (count($result) > 0) {
$defval = reset($result)->value; $defval = reset($result)->value;
} }
$formactions->form_select_status_action('agenda', $defval, 1, "AGENDA_EVENT_DEFAULT_STATUS", 0, 1, 'maxwidth200'); $formactions->form_select_status_action('agenda', $defval, 1, "AGENDA_EVENT_DEFAULT_STATUS", 0, 1, 'maxwidth200 onrightofpage');
print '</td></tr>'."\n"; print '</td></tr>'."\n";
// AGENDA_DEFAULT_FILTER_TYPE // AGENDA_DEFAULT_FILTER_TYPE

View File

@ -642,16 +642,16 @@ if ($object->id > 0) {
print "</table>"; print "</table>";
print '</div><div class="fichehalfright">';
// Prospection level and status // Prospection level and status
if ($object->client == 2 || $object->client == 3) { if ($object->client == 2 || $object->client == 3) {
print '<br>';
print '<div class="underbanner clearboth"></div>'; print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">'; print '<table class="border centpercent tableforfield">';
// Level of prospection // Level of prospection
print '<tr><td class="titlefield nowrap">'; print '<tr><td class="titlefield nowrap">';
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">'; print '<table class="nobordernopadding centpercent"><tr><td class="nowrap">';
print $langs->trans('ProspectLevel'); print $langs->trans('ProspectLevel');
print '<td>'; print '<td>';
if ($action != 'editlevel' && $user->rights->societe->creer) { if ($action != 'editlevel' && $user->rights->societe->creer) {
@ -683,10 +683,11 @@ if ($object->id > 0) {
} }
print '</div></td></tr>'; print '</div></td></tr>';
print "</table>"; print "</table>";
}
print '</div><div class="fichehalfright">'; print '<br>';
print '<div class="underbanner underbanner-before-box clearboth"></div>'; } else {
print '<div class="underbanner underbanner-before-box clearboth"></div><br>';
}
$boxstat = ''; $boxstat = '';
@ -695,7 +696,7 @@ if ($object->id > 0) {
// Lien recap // Lien recap
$boxstat .= '<div class="box box-halfright">'; $boxstat .= '<div class="box box-halfright">';
$boxstat .= '<table summary="'.dol_escape_htmltag($langs->trans("DolibarrStateBoard")).'" class="border boxtable boxtablenobottom boxtablenotop" width="100%">'; $boxstat .= '<table summary="'.dol_escape_htmltag($langs->trans("DolibarrStateBoard")).'" class="border boxtable boxtablenobottom boxtablenotop boxtablenomarginbottom centpercent">';
$boxstat .= '<tr class="impair nohover"><td colspan="2" class="tdboxstats nohover">'; $boxstat .= '<tr class="impair nohover"><td colspan="2" class="tdboxstats nohover">';
if (isModEnabled("propal") && $user->rights->propal->lire) { if (isModEnabled("propal") && $user->rights->propal->lire) {

View File

@ -142,7 +142,7 @@ class FormActions
$canedit = 0; $canedit = 0;
} }
print ajax_combobox('select'.$htmlname); print ajax_combobox('select'.$htmlname, array(), 0, 0, 'resolve', '-1', $morecss);
if (empty($onlyselect)) { if (empty($onlyselect)) {
print ' <input type="text" id="val'.$htmlname.'" name="percentage" class="flat hideifna" value="'.($selected >= 0 ? $selected : '').'" size="2"'.($canedit && ($selected >= 0) ? '' : ' disabled').'>'; print ' <input type="text" id="val'.$htmlname.'" name="percentage" class="flat hideifna" value="'.($selected >= 0 ? $selected : '').'" size="2"'.($canedit && ($selected >= 0) ? '' : ' disabled').'>';

View File

@ -2265,7 +2265,7 @@ class Project extends CommonObject
$this->user_creation = $cuser; $this->user_creation = $cuser;
} }
if ($obj->fk_user_cloture) { if (!empty($obj->fk_user_cloture)) {
$cluser = new User($this->db); $cluser = new User($this->db);
$cluser->fetch($obj->fk_user_cloture); $cluser->fetch($obj->fk_user_cloture);
$this->user_cloture = $cluser; $this->user_cloture = $cluser;

View File

@ -376,8 +376,8 @@ $listofreferent = array(
'lang'=>'entrepot', 'lang'=>'entrepot',
'buttonnew'=>'AddWarehouse', 'buttonnew'=>'AddWarehouse',
'project_field'=>'fk_project', 'project_field'=>'fk_project',
'testnew'=>$user->rights->stock->creer, 'testnew'=>$user->hasRight('stock', 'creer'),
'test'=>$conf->stock->enabled && $user->rights->stock->lire && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROJECT)), 'test'=>!empty($conf->stock->enabled) && $user->hasRight('stock', 'lire') && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROJECT)),
'propal'=>array( 'propal'=>array(
'name'=>"Proposals", 'name'=>"Proposals",
'title'=>"ListProposalsAssociatedProject", 'title'=>"ListProposalsAssociatedProject",
@ -387,8 +387,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/comm/propal/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/comm/propal/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'propal', 'lang'=>'propal',
'buttonnew'=>'AddProp', 'buttonnew'=>'AddProp',
'testnew'=>$user->rights->propal->creer, 'testnew'=>$user->hasRight('propal', 'creer'),
'test'=>$conf->propal->enabled && $user->rights->propal->lire), 'test'=>!empty($conf->propal->enabled) && $user->hasRight('propal', 'lire')),
'order'=>array( 'order'=>array(
'name'=>"CustomersOrders", 'name'=>"CustomersOrders",
'title'=>"ListOrdersAssociatedProject", 'title'=>"ListOrdersAssociatedProject",
@ -398,8 +398,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/commande/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/commande/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'orders', 'lang'=>'orders',
'buttonnew'=>'CreateOrder', 'buttonnew'=>'CreateOrder',
'testnew'=>$user->rights->commande->creer, 'testnew'=>$user->hasRight('commande', 'creer'),
'test'=>$conf->commande->enabled && $user->rights->commande->lire), 'test'=>!empty($conf->commande->enabled) && $user->hasRight('commande', 'lire')),
'invoice'=>array( 'invoice'=>array(
'name'=>"CustomersInvoices", 'name'=>"CustomersInvoices",
'title'=>"ListInvoicesAssociatedProject", 'title'=>"ListInvoicesAssociatedProject",
@ -410,8 +410,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'bills', 'lang'=>'bills',
'buttonnew'=>'CreateBill', 'buttonnew'=>'CreateBill',
'testnew'=>$user->rights->facture->creer, 'testnew'=>$user->hasRight('facture', 'creer'),
'test'=>$conf->facture->enabled && $user->rights->facture->lire), 'test'=>!empty($conf->facture->enabled) && $user->hasRight('facture', 'lire')),
'invoice_predefined'=>array( 'invoice_predefined'=>array(
'name'=>"PredefinedInvoices", 'name'=>"PredefinedInvoices",
'title'=>"ListPredefinedInvoicesAssociatedProject", 'title'=>"ListPredefinedInvoicesAssociatedProject",
@ -421,8 +421,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/compta/facture/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'bills', 'lang'=>'bills',
'buttonnew'=>'CreateBill', 'buttonnew'=>'CreateBill',
'testnew'=>$user->rights->facture->creer, 'testnew'=>$user->hasRight('facture', 'creer'),
'test'=>$conf->facture->enabled && $user->rights->facture->lire), 'test'=>!empty($conf->facture->enabled) && $user->hasRight('facture', 'lire')),
'proposal_supplier'=>array( 'proposal_supplier'=>array(
'name'=>"SuppliersProposals", 'name'=>"SuppliersProposals",
'title'=>"ListSupplierProposalsAssociatedProject", 'title'=>"ListSupplierProposalsAssociatedProject",
@ -432,8 +432,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'urlnew'=>DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object
'lang'=>'supplier_proposal', 'lang'=>'supplier_proposal',
'buttonnew'=>'AddSupplierProposal', 'buttonnew'=>'AddSupplierProposal',
'testnew'=>$user->rights->supplier_proposal->creer, 'testnew'=>$user->hasRight('supplier_proposal', 'creer'),
'test'=>$conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire), 'test'=>!empty($conf->supplier_proposal->enabled) && $user->hasRight('supplier_proposal', 'lire')),
'order_supplier'=>array( 'order_supplier'=>array(
'name'=>"SuppliersOrders", 'name'=>"SuppliersOrders",
'title'=>"ListSupplierOrdersAssociatedProject", 'title'=>"ListSupplierOrdersAssociatedProject",
@ -443,8 +443,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/fourn/commande/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'urlnew'=>DOL_URL_ROOT.'/fourn/commande/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object
'lang'=>'suppliers', 'lang'=>'suppliers',
'buttonnew'=>'AddSupplierOrder', 'buttonnew'=>'AddSupplierOrder',
'testnew'=>($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer), 'testnew'=>$user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer'),
'test'=>$conf->supplier_order->enabled && ($user->rights->fournisseur->commande->lire || $user->rights->supplier_order->lire)), 'test'=>!empty($conf->supplier_order->enabled) && $user->hasRight('fournisseur', 'commande', 'lire') || $user->hasRight('supplier_order', 'lire')),
'invoice_supplier'=>array( 'invoice_supplier'=>array(
'name'=>"BillsSuppliers", 'name'=>"BillsSuppliers",
'title'=>"ListSupplierInvoicesAssociatedProject", 'title'=>"ListSupplierInvoicesAssociatedProject",
@ -455,8 +455,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/fourn/facture/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object 'urlnew'=>DOL_URL_ROOT.'/fourn/facture/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), // No socid parameter here, the socid is often the customer and we create a supplier object
'lang'=>'suppliers', 'lang'=>'suppliers',
'buttonnew'=>'AddSupplierInvoice', 'buttonnew'=>'AddSupplierInvoice',
'testnew'=>($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer), 'testnew'=>$user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer'),
'test'=>$conf->supplier_invoice->enabled && ($user->rights->fournisseur->facture->lire || $user->rights->supplier_invoice->lire)), 'test'=>!empty($conf->supplier_invoice->enabled) && $user->hasRight('fournisseur', 'facture', 'lire') || $user->hasRight('supplier_invoice', 'lire')),
'contract'=>array( 'contract'=>array(
'name'=>"Contracts", 'name'=>"Contracts",
'title'=>"ListContractAssociatedProject", 'title'=>"ListContractAssociatedProject",
@ -466,8 +466,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/contrat/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/contrat/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'contracts', 'lang'=>'contracts',
'buttonnew'=>'AddContract', 'buttonnew'=>'AddContract',
'testnew'=>$user->rights->contrat->creer, 'testnew'=>$user->hasRight('contrat', 'creer'),
'test'=>$conf->contrat->enabled && $user->rights->contrat->lire), 'test'=>!empty($conf->contrat->enabled) && $user->hasRight('contrat', 'lire')),
'intervention'=>array( 'intervention'=>array(
'name'=>"Interventions", 'name'=>"Interventions",
'title'=>"ListFichinterAssociatedProject", 'title'=>"ListFichinterAssociatedProject",
@ -479,8 +479,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/fichinter/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/fichinter/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'interventions', 'lang'=>'interventions',
'buttonnew'=>'AddIntervention', 'buttonnew'=>'AddIntervention',
'testnew'=>$user->rights->ficheinter->creer, 'testnew'=>$user->hasRight('ficheinter', 'creer'),
'test'=>$conf->ficheinter->enabled && $user->rights->ficheinter->lire), 'test'=>!empty($conf->ficheinter->enabled) && $user->hasRight('ficheinter', 'lire')),
'shipping'=>array( 'shipping'=>array(
'name'=>"Shippings", 'name'=>"Shippings",
'title'=>"ListShippingAssociatedProject", 'title'=>"ListShippingAssociatedProject",
@ -501,9 +501,9 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/mrp/mo_card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/mrp/mo_card.php?action=create&origin=project&originid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'mrp', 'lang'=>'mrp',
'buttonnew'=>'CreateMO', 'buttonnew'=>'CreateMO',
'testnew'=>'$user->rights->mrp->write', 'testnew'=>$user->hasRight('mrp', 'write'),
'project_field'=>'fk_project', 'project_field'=>'fk_project',
'test'=>$conf->mrp->enabled && $user->rights->mrp->read), 'test'=>!empty($conf->mrp->enabled) && $user->hasRight('mrp', 'read')),
'trip'=>array( 'trip'=>array(
'name'=>"TripsAndExpenses", 'name'=>"TripsAndExpenses",
'title'=>"ListExpenseReportsAssociatedProject", 'title'=>"ListExpenseReportsAssociatedProject",
@ -515,8 +515,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/deplacement/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/deplacement/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'trips', 'lang'=>'trips',
'buttonnew'=>'AddTrip', 'buttonnew'=>'AddTrip',
'testnew'=>$user->rights->deplacement->creer, 'testnew'=>$user->hasRight('deplacement', 'creer'),
'test'=>$conf->deplacement->enabled && $user->rights->deplacement->lire), 'test'=>!empty($conf->deplacement->enabled) && $user->hasRight('deplacement', 'lire')),
'expensereport'=>array( 'expensereport'=>array(
'name'=>"ExpenseReports", 'name'=>"ExpenseReports",
'title'=>"ListExpenseReportsAssociatedProject", 'title'=>"ListExpenseReportsAssociatedProject",
@ -528,8 +528,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/expensereport/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/expensereport/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'trips', 'lang'=>'trips',
'buttonnew'=>'AddTrip', 'buttonnew'=>'AddTrip',
'testnew'=>$user->rights->expensereport->creer, 'testnew'=>$user->hasRight('expensereport', 'creer'),
'test'=>$conf->expensereport->enabled && $user->rights->expensereport->lire), 'test'=>!empty($conf->expensereport->enabled) && $user->hasRight('expensereport', 'lire')),
'donation'=>array( 'donation'=>array(
'name'=>"Donation", 'name'=>"Donation",
'title'=>"ListDonationsAssociatedProject", 'title'=>"ListDonationsAssociatedProject",
@ -541,8 +541,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/don/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/don/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'donations', 'lang'=>'donations',
'buttonnew'=>'AddDonation', 'buttonnew'=>'AddDonation',
'testnew'=>$user->rights->don->creer, 'testnew'=>$user->hasRight('don', 'creer'),
'test'=>$conf->don->enabled && $user->rights->don->lire), 'test'=>!empty($conf->don->enabled) && $user->hasRight('don', 'lire')),
'loan'=>array( 'loan'=>array(
'name'=>"Loan", 'name'=>"Loan",
'title'=>"ListLoanAssociatedProject", 'title'=>"ListLoanAssociatedProject",
@ -554,8 +554,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/loan/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/loan/card.php?action=create&projectid='.$id.'&socid='.$socid.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'loan', 'lang'=>'loan',
'buttonnew'=>'AddLoan', 'buttonnew'=>'AddLoan',
'testnew'=>$user->rights->loan->write, 'testnew'=>$user->hasRight('loan', 'write'),
'test'=>$conf->loan->enabled && $user->rights->loan->read), 'test'=>!empty($conf->loan->enabled) && $user->hasRight('loan', 'read')),
'chargesociales'=>array( 'chargesociales'=>array(
'name'=>"SocialContribution", 'name'=>"SocialContribution",
'title'=>"ListSocialContributionAssociatedProject", 'title'=>"ListSocialContributionAssociatedProject",
@ -567,8 +567,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/compta/sociales/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/compta/sociales/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'compta', 'lang'=>'compta',
'buttonnew'=>'AddSocialContribution', 'buttonnew'=>'AddSocialContribution',
'testnew'=>$user->rights->tax->charges->lire, 'testnew'=>$user->hasRight('tax', 'charges', 'lire'),
'test'=>$conf->tax->enabled && $user->rights->tax->charges->lire), 'test'=>!empty($conf->tax->enabled) && $user->hasRight('tax', 'charges', 'lire')),
'project_task'=>array( 'project_task'=>array(
'name'=>"TaskTimeSpent", 'name'=>"TaskTimeSpent",
'title'=>"ListTaskTimeUserProject", 'title'=>"ListTaskTimeUserProject",
@ -579,8 +579,8 @@ $listofreferent = array(
'disableamount'=>0, 'disableamount'=>0,
'urlnew'=>DOL_URL_ROOT.'/projet/tasks/time.php?withproject=1&action=createtime&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/projet/tasks/time.php?withproject=1&action=createtime&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'buttonnew'=>'AddTimeSpent', 'buttonnew'=>'AddTimeSpent',
'testnew'=>$user->rights->projet->creer, 'testnew'=>$user->hasRight('project', 'creer'),
'test'=>($conf->project->enabled && $user->rights->projet->lire && empty($conf->global->PROJECT_HIDE_TASKS))), 'test'=>!empty($conf->project->enabled) && $user->hasRight('projet', 'lire') && !empty($conf->global->PROJECT_HIDE_TASKS)),
'stock_mouvement'=>array( 'stock_mouvement'=>array(
'name'=>"MouvementStockAssociated", 'name'=>"MouvementStockAssociated",
'title'=>"ListMouvementStockProject", 'title'=>"ListMouvementStockProject",
@ -589,7 +589,7 @@ $listofreferent = array(
'table'=>'stock_mouvement', 'table'=>'stock_mouvement',
'datefieldname'=>'datem', 'datefieldname'=>'datem',
'disableamount'=>0, 'disableamount'=>0,
'test'=>($conf->stock->enabled && $user->rights->stock->mouvement->lire && !empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))), 'test'=>!empty($conf->stock->enabled) && $user->hasRight('stock', 'mouvement', 'lire') && !empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW)),
'salaries'=>array( 'salaries'=>array(
'name'=>"Salaries", 'name'=>"Salaries",
'title'=>"ListSalariesAssociatedProject", 'title'=>"ListSalariesAssociatedProject",
@ -601,8 +601,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/salaries/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/salaries/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'salaries', 'lang'=>'salaries',
'buttonnew'=>'AddSalary', 'buttonnew'=>'AddSalary',
'testnew'=>$user->rights->salaries->write, 'testnew'=>$user->hasRight('salaries', 'write'),
'test'=>$conf->salaries->enabled && $user->rights->salaries->read), 'test'=>!empty($conf->salaries->enabled) && $user->hasRight('salaries', 'read')),
'variouspayment'=>array( 'variouspayment'=>array(
'name'=>"VariousPayments", 'name'=>"VariousPayments",
'title'=>"ListVariousPaymentsAssociatedProject", 'title'=>"ListVariousPaymentsAssociatedProject",
@ -614,8 +614,8 @@ $listofreferent = array(
'urlnew'=>DOL_URL_ROOT.'/compta/bank/various_payment/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id), 'urlnew'=>DOL_URL_ROOT.'/compta/bank/various_payment/card.php?action=create&projectid='.$id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$id),
'lang'=>'banks', 'lang'=>'banks',
'buttonnew'=>'AddVariousPayment', 'buttonnew'=>'AddVariousPayment',
'testnew'=>$user->rights->banque->modifier, 'testnew'=>$user->hasRight('banque', 'modifier'),
'test'=>$conf->banque->enabled && $user->rights->banque->lire && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)), 'test'=>!empty($conf->banque->enabled) && $user->hasRight('banque', 'lire') && !empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)),
/* No need for this, available on dedicated tab "Agenda/Events" /* No need for this, available on dedicated tab "Agenda/Events"
'agenda'=>array( 'agenda'=>array(
'name'=>"Agenda", 'name'=>"Agenda",

View File

@ -287,7 +287,6 @@ if (empty($reshook) && $action == 'add') {
$proj->ref = $defaultref; $proj->ref = $defaultref;
$proj->statut = $proj::STATUS_DRAFT; $proj->statut = $proj::STATUS_DRAFT;
$proj->status = $proj::STATUS_DRAFT; $proj->status = $proj::STATUS_DRAFT;
$proj->email = GETPOST("email");
$proj->public = 1; $proj->public = 1;
$proj->usage_opportunity = 1; $proj->usage_opportunity = 1;
$proj->title = $langs->trans("LeadFromPublicForm"); $proj->title = $langs->trans("LeadFromPublicForm");

View File

@ -1853,7 +1853,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<tr>'; print '<tr>';
print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>'; print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
print '<td colspan="3" class="maxwidthonsmartphone">'; print '<td colspan="3" class="maxwidthonsmartphone">';
print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1); print img_picto('', 'currency', 'class="pictofixedwidth"');
print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1, '', false, 'maxwidth150 widthcentpercentminusx');
print '</td></tr>'; print '</td></tr>';
} }
@ -1893,7 +1894,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Accountancy codes // Accountancy codes
if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) { if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) {
print '<table class="border" width="100%">'; print '<table class="border centpercent">';
if (isModEnabled('accounting')) { if (isModEnabled('accounting')) {
// Accountancy_code_sell // Accountancy_code_sell
@ -2301,13 +2302,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '</td></tr>'; print '</td></tr>';
// Zip / Town // Zip / Town
print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>'; print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td'.($conf->browser->layout == 'phone' ? ' colspan="3"': '').'>';
print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth100'); print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth100');
print '</td>'; print '</td>';
if ($conf->browser->layout == 'phone') { if ($conf->browser->layout == 'phone') {
print '</tr><tr>'; print '</tr><tr>';
} }
print '<td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>'; print '<td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td'.($conf->browser->layout == 'phone' ? ' colspan="3"': '').'>';
print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id')); print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
print $form->widgetForTranslation("town", $object, $permissiontoadd, 'string', 'alphanohtml', 'maxwidth100 quatrevingtpercent'); print $form->widgetForTranslation("town", $object, $permissiontoadd, 'string', 'alphanohtml', 'maxwidth100 quatrevingtpercent');
print '</td></tr>'; print '</td></tr>';
@ -2336,30 +2337,24 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Phone / Fax // Phone / Fax
print '<tr><td>'.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).'</td>'; print '<tr><td>'.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).'</td>';
print '<td>'.img_picto('', 'object_phoning', 'class="pictofixedwidth"').' <input type="text" name="phone" id="phone" class="maxwidth200 widthcentpercentminusx" value="'.(GETPOSTISSET('phone') ? GETPOST('phone', 'alpha') : $object->phone).'"></td>'; print '<td'.($conf->browser->layout == 'phone' ? ' colspan="3"': '').'>'.img_picto('', 'object_phoning', 'class="pictofixedwidth"').' <input type="text" name="phone" id="phone" class="maxwidth200 widthcentpercentminusx" value="'.(GETPOSTISSET('phone') ? GETPOST('phone', 'alpha') : $object->phone).'"></td>';
if ($conf->browser->layout == 'phone') { if ($conf->browser->layout == 'phone') {
print '</tr><tr>'; print '</tr><tr>';
} }
print '<td>'.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).'</td>'; print '<td>'.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).'</td>';
print '<td>'.img_picto('', 'object_phoning_fax', 'class="pictofixedwidth"').' <input type="text" name="fax" id="fax" class="maxwidth200 widthcentpercentminusx" value="'.(GETPOSTISSET('fax') ? GETPOST('fax', 'alpha') : $object->fax).'"></td></tr>'; print '<td'.($conf->browser->layout == 'phone' ? ' colspan="3"': '').'>'.img_picto('', 'object_phoning_fax', 'class="pictofixedwidth"').' <input type="text" name="fax" id="fax" class="maxwidth200 widthcentpercentminusx" value="'.(GETPOSTISSET('fax') ? GETPOST('fax', 'alpha') : $object->fax).'"></td>';
print '</tr>';
// EMail / Web // Web
print '<tr><td>'.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).'</td>'; print '<tr><td>'.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).'</td>';
print '<td colspan="3">'.img_picto('', 'globe', 'class="pictofixedwidth"').' <input type="text" name="url" id="url" class="maxwidth200onsmartphone maxwidth300 widthcentpercentminusx " value="'.(GETPOSTISSET('url') ?GETPOST('url', 'alpha') : $object->url).'"></td>'; print '<td colspan="3">'.img_picto('', 'globe', 'class="pictofixedwidth"').' <input type="text" name="url" id="url" class="maxwidth200onsmartphone maxwidth300 widthcentpercentminusx " value="'.(GETPOSTISSET('url') ?GETPOST('url', 'alpha') : $object->url).'"></td></tr>';
// EMail // EMail
print '<tr><td>'.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).'</td>'; print '<tr><td>'.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).'</td>';
print '<td>'; print '<td colspan="3">';
print img_picto('', 'object_email'); print img_picto('', 'object_email', 'class="pictofixedwidth"');
print '<input type="text" name="email" id="email" class="maxwidth100onsmartphone quatrevingtpercent" value="'.(GETPOSTISSET('email') ?GETPOST('email', 'alpha') : $object->email).'"></td>'; print '<input type="text" name="email" id="email" class="maxwidth500 widthcentpercentminusx" value="'.(GETPOSTISSET('email') ?GETPOST('email', 'alpha') : $object->email).'">';
if (!empty($conf->mailing->enabled)) { print '</td></tr>';
$langs->load("mails");
print '<td class="nowrap">'.$langs->trans("NbOfEMailingsSend").'</td>';
print '<td>'.$object->getNbOfEMailings().'</td>';
} else {
print '<td colspan="2"></td>';
}
print '</tr>';
// Unsubscribe // Unsubscribe
if (!empty($conf->mailing->enabled)) { if (!empty($conf->mailing->enabled)) {
@ -2559,7 +2554,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Default language // Default language
if (getDolGlobalInt('MAIN_MULTILANGS')) { if (getDolGlobalInt('MAIN_MULTILANGS')) {
print '<tr><td>'.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).'</td><td colspan="3">'."\n"; print '<tr><td>'.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).'</td><td colspan="3">'."\n";
print img_picto('', 'language').$formadmin->select_language($object->default_lang, 'default_lang', 0, 0, 1); print img_picto('', 'language', 'class="pictofixedwidth"').$formadmin->select_language($object->default_lang, 'default_lang', 0, null, '1', 0, 0, 'maxwidth300 widthcentpercentminusx');
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
} }
@ -2585,7 +2580,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
foreach ($cats as $cat) { foreach ($cats as $cat) {
$arrayselected[] = $cat->id; $arrayselected[] = $cat->id;
} }
print img_picto('', 'category').$form->multiselectarray('custcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); print img_picto('', 'category', 'class="pictofixedwidth"').$form->multiselectarray('custcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0);
print "</td></tr>"; print "</td></tr>";
// Supplier // Supplier
@ -2599,7 +2594,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
foreach ($cats as $cat) { foreach ($cats as $cat) {
$arrayselected[] = $cat->id; $arrayselected[] = $cat->id;
} }
print img_picto('', 'category').$form->multiselectarray('suppcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); print img_picto('', 'category', 'class="pictofixedwidth"').$form->multiselectarray('suppcats', $cate_arbo, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0);
print "</td></tr>"; print "</td></tr>";
} }
} }
@ -2609,7 +2604,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<tr>'; print '<tr>';
print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>'; print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
print '<td colspan="3" class="maxwidthonsmartphone">'; print '<td colspan="3" class="maxwidthonsmartphone">';
print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1); print img_picto('', 'currency', 'class="pictofixedwidth"');
print $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1, '', false, 'maxwidth150 widthcentpercentminusx');
print '</td></tr>'; print '</td></tr>';
} }
@ -2622,7 +2618,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<tr>'; print '<tr>';
print '<td>'.$langs->trans('ParentCompany').'</td>'; print '<td>'.$langs->trans('ParentCompany').'</td>';
print '<td colspan="3" class="maxwidthonsmartphone">'; print '<td colspan="3" class="maxwidthonsmartphone">';
print img_picto('', 'company', 'class="paddingrightonly"'); print img_picto('', 'company', 'class="pictofixedwidth"');
print $form->select_company(GETPOST('parent_company_id') ? GETPOST('parent_company_id') : $object->parent, 'parent_company_id', '', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 maxwidth500 widthcentpercentminusxx'); print $form->select_company(GETPOST('parent_company_id') ? GETPOST('parent_company_id') : $object->parent, 'parent_company_id', '', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 maxwidth500 widthcentpercentminusxx');
print '</td></tr>'; print '</td></tr>';
} }
@ -2674,7 +2670,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if (empty($arrayselected)) { if (empty($arrayselected)) {
$arrayselected = $object->getSalesRepresentatives($user, 1); $arrayselected = $object->getSalesRepresentatives($user, 1);
} }
print img_picto('', 'user').$form->multiselectarray('commercial', $userlist, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0, '', '', '', 1); print img_picto('', 'user', 'class="pictofixedwidth"').$form->multiselectarray('commercial', $userlist, $arrayselected, 0, 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0, '', '', '', 1);
print '</td></tr>'; print '</td></tr>';
print '</table>'; print '</table>';
@ -3061,13 +3057,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
} }
print '</td></tr>'; print '</td></tr>';
// Email
if (!empty($conf->mailing->enabled)) {
$langs->load("mails");
print '<tr><td>'.$langs->trans("NbOfEMailingsSend").'</td>';
print '<td><a href="'.DOL_URL_ROOT.'/comm/mailing/list.php?filteremail='.urlencode($object->email).'">'.$object->getNbOfEMailings().'</a></td></tr>';
}
// Unsubscribe opt-out // Unsubscribe opt-out
if (!empty($conf->mailing->enabled)) { if (!empty($conf->mailing->enabled)) {
$result = $object->getNoEmail(); $result = $object->getNoEmail();
@ -3080,6 +3069,10 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
} else { } else {
print '<span class="opacitymedium">'.$langs->trans("EMailNotDefined").'</span>'; print '<span class="opacitymedium">'.$langs->trans("EMailNotDefined").'</span>';
} }
$langs->load("mails");
print ' &nbsp; <span class="badge badge-secondary" title="'.dol_escape_htmltag($langs->trans("NbOfEMailingsSend")).'">'.$object->getNbOfEMailings().'</span>';
print '</td></tr>'; print '</td></tr>';
} }

View File

@ -215,6 +215,11 @@ print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>'; print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">'; print '<table class="border centpercent tableforfield">';
// Type Prospect/Customer/Supplier
print '<tr><td class="titlefield">'.$langs->trans('NatureOfThirdParty').'</td><td>';
print $object->getTypeUrl(1);
print '</td></tr>';
if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field
print '<tr><td class="titlefield">'.$langs->trans('Prefix').'</td><td colspan="3">'.$object->prefix_comm.'</td></tr>'; print '<tr><td class="titlefield">'.$langs->trans('Prefix').'</td><td colspan="3">'.$object->prefix_comm.'</td></tr>';
} }

View File

@ -1,6 +1,9 @@
<?php if (!defined('ISLOADEDBYSTEELSHEET')) { <?php
if (!defined('ISLOADEDBYSTEELSHEET')) {
die('Must be call by steelsheet'); die('Must be call by steelsheet');
} ?> }
?>
/* <style type="text/css" > */ /* <style type="text/css" > */
/* ============================================================================== */ /* ============================================================================== */
@ -54,6 +57,8 @@
--productlinestocktoolow: #884400; --productlinestocktoolow: #884400;
--infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #fff, #fff, #fff, #e4efe8); --infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #fff, #fff, #fff, #e4efe8);
--tablevalidbgcolor: rgb(252, 248, 227); --tablevalidbgcolor: rgb(252, 248, 227);
--colorblack: #000;
--colorwhite: #fff;
} }
<?php <?php
@ -107,6 +112,8 @@ if (!empty($conf->global->THEME_DARKMODEENABLED)) {
--amountremaintopaybackcolor:rbg(245,130,46); --amountremaintopaybackcolor:rbg(245,130,46);
--infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #000, #000, #000, #274231); --infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #000, #000, #000, #274231);
--tablevalidbgcolor: rgb(80, 64, 33); --tablevalidbgcolor: rgb(80, 64, 33);
--colorblack: #fff;
--colorwhite: #000;
} }
body, button { body, button {
@ -285,7 +292,7 @@ section.setupsection {
border-radius: 5px; border-radius: 5px;
} }
.field-error-icon { color: #ea1212; !important; } .field-error-icon { color: #ea1212 !important; }
/* Focus definitions must be after standard definition */ /* Focus definitions must be after standard definition */
div.tabBar textarea:focus { div.tabBar textarea:focus {
@ -492,13 +499,13 @@ input.pageplusone {
opacity: 0; opacity: 0;
} }
.colorwhite { .colorwhite {
color: #fff; color: var(--colorwhite);
} }
.colorgrey { .colorgrey {
color: #888 !important; color: #888 !important;
} }
.colorblack { .colorblack {
color: #000; color: var(--colorblack);
} }
.fontsizeunset { .fontsizeunset {
font-size: unset !important; font-size: unset !important;
@ -3978,9 +3985,7 @@ div.pagination li.pagination span {
line-height: 1.42857143; line-height: 1.42857143;
text-decoration: none; text-decoration: none;
background-repeat: repeat-x; background-repeat: repeat-x;
<?php if (empty($conf->global->THEME_DARKMODEENABLED)) { ?> color: var(--color-black);
color: #000;
<?php } ?>
} }
div.pagination li.pagination span.inactive { div.pagination li.pagination span.inactive {
cursor: default; cursor: default;
@ -4119,7 +4124,7 @@ table.hidepaginationnext .paginationnext {
{ {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
margin-bottom: 1px; margin-bottom: 1px;
color: var(--oddeven); color: var(--oddevencolor);
} }
.impair, .nohover .impair:hover, tr.impair td.nohover .impair, .nohover .impair:hover, tr.impair td.nohover
{ {
@ -4612,6 +4617,9 @@ table.noborder.boxtable tr td {
.boxtablenobottom { .boxtablenobottom {
border-bottom-width: 0 !important; border-bottom-width: 0 !important;
} }
.boxtablenomarginbottom {
margin-bottom: 0 !important;
}
.boxtable .fichehalfright, .boxtable .fichehalfleft { .boxtable .fichehalfright, .boxtable .fichehalfleft {
min-width: 275px; /* increasing this, make chart on box not side by side on laptops */ min-width: 275px; /* increasing this, make chart on box not side by side on laptops */
} }
@ -5033,12 +5041,30 @@ div.ui-tooltip.mytooltip {
-webkit-box-shadow:0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5); -webkit-box-shadow:0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5);
-o-box-shadow: 0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5); -o-box-shadow: 0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5);
box-shadow: 0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5); box-shadow: 0.5px 0.5px 4px 0px rgba(0, 0, 0, 0.5);
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=5); filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=5);
background: var(--tooltipbgcolor) !important; background: var(--tooltipbgcolor) !important;
color : var(--tooltipfontcolor); color: var(--tooltipfontcolor);
line-height: 1.6em; line-height: 1.6em;
min-width: 550px; min-width: 550px;
} }
<?php
if (!empty($conf->global->THEME_DARKMODEENABLED)) {
print "/* For dark mode */\n";
if ($conf->global->THEME_DARKMODEENABLED != 2) {
print "@media (prefers-color-scheme: dark) {"; // To test, click on the 3 dots menu, then Other options then Display then emulate prefer-color-schemes
} else {
print "@media not print {";
}
?>
div.ui-tooltip.mytooltip {
border: 1px solid #bbb !important;
}
<?php
print '}';
}
?>
@media only screen and (max-width: 768px) @media only screen and (max-width: 768px)
{ {
div.ui-tooltip.mytooltip { div.ui-tooltip.mytooltip {
@ -6486,10 +6512,12 @@ ul.select2-results__options li {
.select2-container.select2-container--open .select2-dropdown.ui-dialog { .select2-container.select2-container--open .select2-dropdown.ui-dialog {
min-width: 220px !important; min-width: 220px !important;
} }
.select2-container.select2-container--open .select2-dropdown--below { .select2-container.select2-container--open .select2-dropdown--below,
.select2-container.select2-container--open .select2-dropdown--above {
min-width: 220px !important; min-width: 220px !important;
} }
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below { .onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below,
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--above{
min-width: 140px !important; min-width: 140px !important;
} }

View File

@ -434,7 +434,7 @@ if (GETPOSTISSET('THEME_SATURATE_RATIO')) {
/* USING FONTAWESOME FOR WEATHER */ /* USING FONTAWESOME FOR WEATHER */
.info-box-weather .info-box-icon{ .info-box-weather .info-box-icon{
background: rgba(0, 0, 0, 0.08) !important; background: var(--colorbacktitle1) !important;
} }
.fa-weather-level0:before{ .fa-weather-level0:before{
content: "\f185"; content: "\f185";

View File

@ -91,7 +91,7 @@ if (GETPOST('theme', 'aZ09')) {
if (GETPOST('lang', 'aZ09')) { if (GETPOST('lang', 'aZ09')) {
$langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL
} }
if (GETPOST('THEME_DARKMODEENABLED', 'int')) { if (GETPOSTISSET('THEME_DARKMODEENABLED', 'int')) {
$conf->global->THEME_DARKMODEENABLED = GETPOST('THEME_DARKMODEENABLED', 'int'); // If darkmode was forced on URL $conf->global->THEME_DARKMODEENABLED = GETPOST('THEME_DARKMODEENABLED', 'int'); // If darkmode was forced on URL
} }

View File

@ -201,7 +201,7 @@ a.info-box-text-a i.fa.fa-exclamation-triangle {
text-align: center; text-align: center;
font-size: 45px; font-size: 45px;
line-height: 90px; line-height: 90px;
background: #eee; background: var(--colorbacktitle1) !important;
<?php if (isset($conf->global->THEME_SATURATE_RATIO)) { ?> <?php if (isset($conf->global->THEME_SATURATE_RATIO)) { ?>
filter: saturate(<?php echo $conf->global->THEME_SATURATE_RATIO; ?>); filter: saturate(<?php echo $conf->global->THEME_SATURATE_RATIO; ?>);
<?php } ?> <?php } ?>
@ -295,6 +295,17 @@ a.info-box-text-a i.fa.fa-exclamation-triangle {
padding: 5px 10px; padding: 5px 10px;
margin-left: 84px; margin-left: 84px;
} }
.info-box-sm .info-box-content {
margin-left: 80px;
height: 86px; /* 96 - margins of .info-box-sm .info-box-content */
}
.info-box-sm .info-box-module-enabled {
/* background: linear-gradient(0.35turn, #fff, #fff, #f6faf8, #e4efe8) */
background: var(--infoboxmoduleenabledbgcolor);
}
.info-box-content-warning span.font-status4 {
color: #bc9526 !important;
}
.info-box-number { .info-box-number {
display: block; display: block;
@ -335,11 +346,14 @@ a.info-box-text{ text-decoration: none;}
/* ICONS INFO BOX */ /* ICONS INFO BOX */
.info-box-icon {
color: #000 !important;
}
<?php <?php
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$prefix = '';
if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) {
$prefix = 'background-';
}
if (!isset($conf->global->THEME_SATURATE_RATIO)) { if (!isset($conf->global->THEME_SATURATE_RATIO)) {
$conf->global->THEME_SATURATE_RATIO = 0.7; $conf->global->THEME_SATURATE_RATIO = 0.7;
} }
@ -420,7 +434,7 @@ if (GETPOSTISSET('THEME_SATURATE_RATIO')) {
/* USING FONTAWESOME FOR WEATHER */ /* USING FONTAWESOME FOR WEATHER */
.info-box-weather .info-box-icon{ .info-box-weather .info-box-icon{
background: #eee !important; background: var(--colorbacktitle1) !important;
} }
.fa-weather-level0:before{ .fa-weather-level0:before{
content: "\f185"; content: "\f185";
@ -502,11 +516,13 @@ if (GETPOSTISSET('THEME_SATURATE_RATIO')) {
height: 0; height: 0;
} }
.info-box-title {
width: calc(100% - 20px);
}
.info-box-module { .info-box-module {
min-width: 350px; min-width: 350px;
max-width: 350px; max-width: 350px;
} }
.info-box-module .info-box-content { .info-box-module .info-box-content {
height: 6.3em; height: 6.3em;
} }
@ -530,3 +546,5 @@ if (GETPOSTISSET('THEME_SATURATE_RATIO')) {
} }
} }

View File

@ -93,6 +93,10 @@ if (GETPOST('lang', 'aZ09')) {
$langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL
} }
if (GETPOSTISSET('THEME_DARKMODEENABLED', 'int')) {
$conf->global->THEME_DARKMODEENABLED = GETPOST('THEME_DARKMODEENABLED', 'int'); // If darkmode was forced on URL
}
$langs->load("main", 0, 1); $langs->load("main", 0, 1);
$right = ($langs->trans("DIRECTION") == 'rtl' ? 'left' : 'right'); $right = ($langs->trans("DIRECTION") == 'rtl' ? 'left' : 'right');
$left = ($langs->trans("DIRECTION") == 'rtl' ? 'right' : 'left'); $left = ($langs->trans("DIRECTION") == 'rtl' ? 'right' : 'left');
@ -354,6 +358,8 @@ print '*/'."\n";
--tablevalidbgcolor: rgb(252, 248, 227); --tablevalidbgcolor: rgb(252, 248, 227);
--butactionbg : #<?php print $butactionbg; ?>; --butactionbg : #<?php print $butactionbg; ?>;
--textbutaction : #<?php print $textbutaction; ?>; --textbutaction : #<?php print $textbutaction; ?>;
--colorblack: #000;
--colorwhite: #fff;
} }
<?php <?php
@ -407,6 +413,8 @@ if (!empty($conf->global->THEME_DARKMODEENABLED)) {
--amountremaintopaybackcolor:rbg(245,130,46); --amountremaintopaybackcolor:rbg(245,130,46);
--infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #000, #000, #000, #274231); --infoboxmoduleenabledbgcolor : linear-gradient(0.4turn, #000, #000, #000, #274231);
--tablevalidbgcolor: rgb(80, 64, 33); --tablevalidbgcolor: rgb(80, 64, 33);
--colorblack: #fff;
--colorwhite: #000;
} }
body, button { body, button {
@ -419,10 +427,7 @@ if (!empty($conf->global->THEME_DARKMODEENABLED)) {
body { body {
<?php if (GETPOST('optioncss', 'aZ09') == 'print') { ?> <?php if (GETPOST('optioncss', 'aZ09') == 'print') { ?>
background-color: #FFFFFF; background-color: #FFFFFF;
<?php } else { ?>
background: var(--colorbackbody);
<?php } ?> <?php } ?>
color: rgb(<?php echo $colortext; ?>);
font-size: <?php print is_numeric($fontsize) ? $fontsize.'px' : $fontsize; ?>; font-size: <?php print is_numeric($fontsize) ? $fontsize.'px' : $fontsize; ?>;
line-height: 1.4; line-height: 1.4;
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
@ -430,9 +435,12 @@ body {
margin-bottom: 0; margin-bottom: 0;
margin-right: 0; margin-right: 0;
margin-left: 0; margin-left: 0;
font-weight: 400;
background-color: var(--colorbackbody);
<?php print 'direction: '.$langs->trans("DIRECTION").";\n"; ?> <?php print 'direction: '.$langs->trans("DIRECTION").";\n"; ?>
} }
/* Style used to protect html content in output to avoid attack by replacing full page with js content */
.sensiblehtmlcontent * { .sensiblehtmlcontent * {
position: static !important; position: static !important;
} }
@ -441,16 +449,18 @@ body {
th a { font-weight: <?php echo ($useboldtitle ? 'bold' : 'normal'); ?> !important; } th a { font-weight: <?php echo ($useboldtitle ? 'bold' : 'normal'); ?> !important; }
a.tab { font-weight: 500 !important; } a.tab { font-weight: 500 !important; }
a:link, a:visited, a:hover, a:active { font-family: <?php print $fontlist ?>; font-weight: normal; color: rgb(<?php print $colortextlink; ?>); text-decoration: none; } a:link, a:visited, a:hover, a:active, .classlink { font-family: <?php print $fontlist ?>; font-weight: normal; color: var(--colortextlink); text-decoration: none; }
a:hover { text-decoration: underline; color: rgb(<?php print $colortextlink; ?>); } a:hover { text-decoration: underline; color: var(--colortextlink); }
a.commonlink { color: rgb(<?php print $colortextlink; ?>) !important; text-decoration: none; } a.commonlink { color: var(--colortextlink) !important; text-decoration: none; }
input { input {
font-size: unset; font-size: unset;
} }
/*
input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select { input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select {
background-color: #FDFDFD; background-color: #FDFDFD;
} }
*/
select.vmenusearchselectcombo { select.vmenusearchselectcombo {
background-color: unset; background-color: unset;
} }
@ -492,11 +502,16 @@ select#date_startday, select#date_startmonth, select#date_endday, select#date_en
margin-right: 4px; margin-right: 4px;
} }
input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select { input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select {
font-family: <?php print $fontlist ?>; color: var(--colortext);
border: none; border: none;
border<?php echo empty($conf->global->THEME_SHOW_BORDER_ON_INPUT) ? '-bottom' : ''; ?>: solid 1px var(--inputbordercolor); border<?php echo empty($conf->global->THEME_SHOW_BORDER_ON_INPUT) ? '-bottom' : ''; ?>: solid 1px var(--inputbordercolor);
font-family: <?php print $fontlist ?>;
outline: none; outline: none;
margin: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;
background-color: var(--inputbackgroundcolor);
<?php if (empty($conf->global->THEME_ADD_BACKGROUND_ON_INPUT)) { ?>
border<?php echo empty($conf->global->THEME_SHOW_BORDER_ON_INPUT) ? '-bottom' : ''; ?>: solid 1px var(--inputbordercolor);
<?php } ?>
} }
input { input {
@ -629,11 +644,6 @@ input.buttonpaymentcb {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 5px 4px; background-position: 5px 4px;
} }
input.buttonpaymentcheque {
background-image: url(<?php echo dol_buildpath($path.'/paypal/img/object_paypal.png', 1) ?>);
background-repeat: no-repeat;
background-position: 5px 4px;
}
input.buttonpaymentpaypal { input.buttonpaymentpaypal {
background-image: url(<?php echo dol_buildpath($path.'/paypal/img/object_paypal.png', 1) ?>); background-image: url(<?php echo dol_buildpath($path.'/paypal/img/object_paypal.png', 1) ?>);
background-repeat: no-repeat; background-repeat: no-repeat;
@ -681,6 +691,12 @@ td.onholidayallday {
td.onholidayallday:not(.weekend) input { td.onholidayallday:not(.weekend) input {
background-color: #f8f7f0; background-color: #f8f7f0;
} }
td.weekend { /* must be after td.onholidayallday */
background-color: #eee;
}
td.weekend input {
background-color: #f8f8f8;
}
td.leftborder, td.hide0 { td.leftborder, td.hide0 {
border-left: 1px solid #ccc; border-left: 1px solid #ccc;
} }
@ -690,12 +706,6 @@ td.leftborder, td.hide6 {
td.rightborder { td.rightborder {
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
} }
td.weekend { /* must be after td.onholidayallday */
background-color: #eee;
}
td.weekend input {
background-color: #f8f8f8;
}
td.amount, span.amount, div.amount, b.amount { td.amount, span.amount, div.amount, b.amount {
@ -737,10 +747,13 @@ input.pageplusone, .divadvancedsearchfieldcompinput, {
opacity: 0; opacity: 0;
} }
.colorwhite { .colorwhite {
color: #fff; color: var(--colorwhite);
}
.colorgrey {
color: #888 !important;
} }
.colorblack { .colorblack {
color: #000; color: var(--colorblack);
} }
.fontsizeunset { .fontsizeunset {
font-size: unset !important; font-size: unset !important;
@ -753,12 +766,13 @@ input.pageplusone, .divadvancedsearchfieldcompinput, {
transform: scale(-1, 1); transform: scale(-1, 1);
} }
select:invalid { select:invalid, select.--error {
color: gray; color: gray;
} }
input:disabled, textarea:disabled, select[disabled='disabled'] input:disabled, textarea:disabled, select[disabled='disabled']
{ {
background:#eee; background: var(--inputbackgroundcolordisabled);
color: var(--inputcolordisabled);
} }
input.liste_titre { input.liste_titre {
@ -773,7 +787,7 @@ input.removedfile {
vertical-align: text-bottom; vertical-align: text-bottom;
} }
input[type=file ] { background-color: transparent; border-top: none; border-left: none; border-right: none; box-shadow: none; } input[type=file] { background-color: transparent; border-top: none; border-left: none; border-right: none; box-shadow: none; }
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; } input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; }
input[type=radio] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; } input[type=radio] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; }
input[type=image] { background-color: transparent; border: none; box-shadow: none; } input[type=image] { background-color: transparent; border: none; box-shadow: none; }
@ -807,6 +821,12 @@ input#onlinepaymenturl, input#directdownloadlink {
opacity: 0.7; opacity: 0.7;
} }
.formconsumeproduce {
background: #f3f3f3;
padding: 20px 0px 0px 0px;
border-radius: 8px;
}
div#moretabsList, div#moretabsListaction { div#moretabsList, div#moretabsListaction {
z-index: 5; z-index: 5;
} }
@ -873,7 +893,7 @@ table.tableforfield .buttonDelete:not(.bordertransp):not(.buttonpayment) {
} }
.button_search, .button_removefilter { .button_search, .button_removefilter {
border: unset; border: unset;
background: unset; background-color: unset;
} }
.button_search:hover, .button_removefilter:hover { .button_search:hover, .button_removefilter:hover {
cursor: pointer; cursor: pointer;
@ -882,6 +902,9 @@ form {
padding:0px; padding:0px;
margin:0px; margin:0px;
} }
form#addproduct {
padding-top: 10px;
}
div.float, span.floatleft div.float, span.floatleft
{ {
float:<?php print $left; ?>; float:<?php print $left; ?>;
@ -904,6 +927,9 @@ div.floatright
button:focus { button:focus {
outline: none; outline: none;
} }
.fa-info-circle {
padding-<?php echo $left; ?>: 3px;
}
.line-height-large { .line-height-large {
line-height: 1.8em; line-height: 1.8em;
} }
@ -934,6 +960,9 @@ th .button {
.centpercent { .centpercent {
width: 100%; width: 100%;
} }
.centpercentwithoutmenu {
width: calc(100% - 200px);
}
.quatrevingtpercent, .inputsearch { .quatrevingtpercent, .inputsearch {
width: 80%; width: 80%;
} }
@ -946,18 +975,21 @@ th .button {
.quatrevingtquinzepercent { .quatrevingtquinzepercent {
width: 95%; width: 95%;
} }
textarea.centpercent {
width: 96%;
}
.quatrevingtpercentminusx { .quatrevingtpercentminusx {
width: calc(80% - 52px); width: calc(80% - 52px);
} }
textarea.centpercent {
width: 96%;
}
.small, small { .small, small {
font-size: 85%; font-size: 85%;
} }
.large { .large {
font-size: 125%; font-size: 125%;
} }
.double {
font-size: 2em;
}
.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small { .h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small {
font-size: 65%; font-size: 65%;
@ -1038,6 +1070,9 @@ textarea.centpercent {
.nobold { .nobold {
font-weight: normal !important; font-weight: normal !important;
} }
.uppercase {
text-transform: uppercase;
}
.nounderline { .nounderline {
text-decoration: none; text-decoration: none;
} }
@ -1083,18 +1118,6 @@ textarea.centpercent {
.paddingright2imp { .paddingright2imp {
padding-<?php print $right; ?>: 2px !important; padding-<?php print $right; ?>: 2px !important;
} }
.marginleft2 {
margin-<?php print $left; ?>: 2px;
}
.marginright2 {
margin-<?php print $right; ?>: 2px;
}
.nomarginleft {
margin-<?php print $left; ?>: unset;
}
.nomarginright {
margin-<?php print $right; ?>: unset;
}
.paddingtop { .paddingtop {
padding-top: 4px; padding-top: 4px;
} }
@ -1107,6 +1130,18 @@ textarea.centpercent {
.paddingbottom2 { .paddingbottom2 {
padding-bottom: 2px; padding-bottom: 2px;
} }
.marginleft2 {
margin-<?php print $left; ?>: 2px;
}
.marginright2 {
margin-<?php print $right; ?>: 2px;
}
.nomarginleft {
margin-<?php print $left; ?>: unset;
}
.nomarginright {
margin-<?php print $right; ?>: unset;
}
.cursordefault { .cursordefault {
cursor: default; cursor: default;
@ -1120,12 +1155,12 @@ textarea.centpercent {
.cursormove { .cursormove {
cursor: move; cursor: move;
} }
.cursorwait {
cursor: wait;
}
.cursornotallowed { .cursornotallowed {
cursor: not-allowed; cursor: not-allowed;
} }
.cursorwait {
cursor: wait;
}
.backgroundblank { .backgroundblank {
background-color: #fff; background-color: #fff;
} }
@ -1136,6 +1171,12 @@ textarea.centpercent {
font-size: 0.85em; font-size: 0.85em;
opacity: 0.7; opacity: 0.7;
} }
.borderimp {
border: 1px solid #888 !important;
}
.text-warning{
color : <?php print $textWarning; ?>
}
.longmessagecut { .longmessagecut {
max-height: 250px; max-height: 250px;
max-width: 100%; max-width: 100%;
@ -1155,9 +1196,6 @@ div.urllink, div.urllink a {
color: #339 !important; color: #339 !important;
} }
.fa-info-circle {
padding-<?php echo $left; ?>: 3px;
}
i.fa-mars::before, i.fa-venus::before, i.fa-genderless::before, i.fa-transgender::before { i.fa-mars::before, i.fa-venus::before, i.fa-genderless::before, i.fa-transgender::before {
color: #888 !important; color: #888 !important;
opacity: 0.4; opacity: 0.4;
@ -1194,23 +1232,18 @@ body[class*="colorblind-"] .text-success{
color : <?php print $textDanger; ?> color : <?php print $textDanger; ?>
} }
.editfielda span.fa-pencil-alt, .editfielda span.fa-trash { .editfielda span.fa-pencil-alt, .editfielda span.fa-pencil-ruler, .editfielda span.fa-trash, .editfielda span.fa-crop,
.editfieldlang {
color: #ccc !important; color: #ccc !important;
} }
.editfielda span.fa-pencil-alt:hover, .editfielda span.fa-trash:hover { .editfielda span.fa-pencil-alt:hover, .editfielda span.fa-pencil-ruler:hover, .editfielda span.fa-trash:hover, .editfielda span.fa-crop:hover,
.editfieldlang:hover {
color: var(--colortexttitle) !important; color: var(--colortexttitle) !important;
} }
a.editfielda.nohover *:hover:before { a.editfielda.nohover *:hover:before {
color: #ccc !important; color: #ccc !important;
} }
.size15x { font-size: 1.5em !important; }
.fa-toggle-on, .fa-toggle-off, .size2x { font-size: 2em; }
.websiteselectionsection .fa-toggle-on, .websiteselectionsection .fa-toggle-off,
.asetresetmodule .fa-toggle-on, .asetresetmodule .fa-toggle-off {
font-size: 1.5em; vertical-align: text-bottom;
}
.fawidth30 { .fawidth30 {
width: 20px; width: 20px;
} }
@ -1218,6 +1251,27 @@ a.editfielda.nohover *:hover:before {
float: none !important; float: none !important;
} }
span.fa.fa-plus-circle.paddingleft {
padding-right: 4px;
padding-top: 3px;
padding-bottom: 2px;
}
.size15x { font-size: 1.5em !important; }
.fa-toggle-on, .fa-toggle-off, .size2x { font-size: 2em; }
.websiteselectionsection .fa-toggle-on, .websiteselectionsection .fa-toggle-off,
.asetresetmodule .fa-toggle-on, .asetresetmodule .fa-toggle-off,
.tdwebsitesearchresult .fa-toggle-on, .tdwebsitesearchresult .fa-toggle-off {
font-size: 1.5em; vertical-align: text-bottom;
}
.divoverflow {
overflow: hidden;
white-space: nowrap;
vertical-align: middle;
text-overflow: ellipsis;
}
/* Themes for badges */ /* Themes for badges */
<?php include dol_buildpath($path.'/theme/'.$theme.'/badges.inc.php', 0); ?> <?php include dol_buildpath($path.'/theme/'.$theme.'/badges.inc.php', 0); ?>
@ -1453,9 +1507,15 @@ select.flat.selectlimit {
.margintoponly { .margintoponly {
margin-top: 10px !important; margin-top: 10px !important;
} }
.margintoponlyshort {
margin-top: 3px !important;
}
.marginbottomonly { .marginbottomonly {
margin-bottom: 10px !important; margin-bottom: 10px !important;
} }
.marginbottomonlyshort {
margin-bottom: 3px !important;
}
.nomargintop { .nomargintop {
margin-top: 0 !important; margin-top: 0 !important;
} }
@ -1571,7 +1631,7 @@ select.flat.selectlimit {
max-width: 0; max-width: 0;
overflow: auto; overflow: auto;
} }
.divintodwithtwolinesmax { .divintowithtwolinesmax {
width: 75px; width: 75px;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
@ -1598,20 +1658,29 @@ select.flat.selectlimit {
.amountalreadypaid { .amountalreadypaid {
} }
.amountpaymentcomplete { .amountpaymentcomplete {
color: #008800; color: var(--amountpaymentcomplete);
font-weight: bold; font-weight: bold;
} }
.amountremaintopay { .amountremaintopay {
color: #880000; color: var(--amountremaintopaycolor);
font-weight: bold; font-weight: bold;
} }
.amountremaintopayback { .amountremaintopayback {
font-weight: bold; font-weight: bold;
} }
.amountpaymentneutral { .amountpaymentneutral {
color: var(--amountremaintopaybackcolor);
font-weight: bold; font-weight: bold;
font-size: 1.4em; font-size: 1.4em;
} }
.onlinepaymentbody .amountpaymentcomplete {
background-color: var(--amountpaymentcomplete);
color: #fff;
padding: 5px;
border-radius: 5px;
}
.savingdocmask { .savingdocmask {
margin-top: 6px; margin-top: 6px;
margin-bottom: 12px; margin-bottom: 12px;
@ -1667,7 +1736,7 @@ div.fiche>form>div.div-table-responsive {
.flexcontainer { .flexcontainer {
<?php if (in_array($conf->browser->name, array('chrome', 'firefox'))) { <?php if (in_array($conf->browser->name, array('chrome', 'firefox'))) {
echo 'display: inline-flex;'; echo 'display: inline-flex;'."\n";
} ?> } ?>
flex-flow: row wrap; flex-flow: row wrap;
justify-content: flex-start; justify-content: flex-start;
@ -1712,6 +1781,13 @@ table[summary="list_of_modules"] .fa-cog {
height: 100px; height: 100px;
} }
.maxscreenheightless200 {
max-height: <?php echo isset($_SESSION['dol_screenheight']) ? max(500, $_SESSION['dol_screenheight'] - 200) : 700; ?>px; /* we guarantee height of 500 */
}
.maxscreenheightless300 {
max-height: <?php echo isset($_SESSION['dol_screenheight']) ? max(400, $_SESSION['dol_screenheight'] - 300) : 700; ?>px; /* we guarantee height of 500 */
}
tr.nobottom td { tr.nobottom td {
border-bottom: 0px !important; border-bottom: 0px !important;
} }
@ -1768,6 +1844,7 @@ tr.nobottom td {
.maxwidth40 { max-width: 40px; } .maxwidth40 { max-width: 40px; }
.maxwidth50 { max-width: 50px; } .maxwidth50 { max-width: 50px; }
.maxwidth75 { max-width: 75px; } .maxwidth75 { max-width: 75px; }
.maxwidthdate { max-width: 80px; }
.maxwidth100 { max-width: 100px; } .maxwidth100 { max-width: 100px; }
.maxwidth125 { max-width: 125px; } .maxwidth125 { max-width: 125px; }
.maxwidth150 { max-width: 150px; } .maxwidth150 { max-width: 150px; }
@ -1776,6 +1853,8 @@ tr.nobottom td {
.maxwidth300 { max-width: 300px; } .maxwidth300 { max-width: 300px; }
.maxwidth400 { max-width: 400px; } .maxwidth400 { max-width: 400px; }
.maxwidth500 { max-width: 500px; } .maxwidth500 { max-width: 500px; }
.maxwidth750 { max-width: 750px; }
.maxwidth1000 { max-width: 1000px; }
.maxwidth50imp { max-width: 50px !important; } .maxwidth50imp { max-width: 50px !important; }
.maxwidth75imp { max-width: 75px !important; } .maxwidth75imp { max-width: 75px !important; }
@ -1858,6 +1937,10 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
div.refidno { div.refidno {
font-size: <?php print is_numeric($fontsize) ? ($fontsize).'px' : $fontsize; ?> !important; font-size: <?php print is_numeric($fontsize) ? ($fontsize).'px' : $fontsize; ?> !important;
} }
.divadvancedsearchfield {
padding-left: 5px;
padding-right: 5px;
}
div.divphotoref { div.divphotoref {
padding-right: 10px !important; padding-right: 10px !important;
@ -1936,16 +2019,12 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
} }
div.fiche { div.fiche {
margin-top: <?php print ($dol_hide_topmenu ? '12' : '6'); ?>px !important; margin-top: <?php print ($dol_hide_topmenu ? '12' : '6'); ?>px !important;
} }
.border tbody tr, .border tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col { .border tbody tr, .border tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col {
height: 40px !important; height: 40px !important;
} }
.quatrevingtpercent, .inputsearch {
width: 95%;
}
div.tabs div.tab a.tab { div.tabs div.tab a.tab {
max-width: 200px; max-width: 200px;
overflow: hidden; overflow: hidden;
@ -1953,6 +2032,10 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
white-space: nowrap; white-space: nowrap;
} }
.quatrevingtpercent, .inputsearch {
width: 95%;
}
select { select {
padding-top: 4px; padding-top: 4px;
padding-bottom: 5px; padding-bottom: 5px;
@ -2035,7 +2118,7 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
.linkobject { cursor: pointer; } .linkobject { cursor: pointer; }
table.tableforfield tr:not(.liste_titre)>td:first-of-type, tr.trforfield:not(.liste_titre)>td:first-of-type, div.tableforfield div.tagtr:not(.liste_titre)>div.tagtd:first-of-type { table.tableforfield tr:not(.liste_titre)>td:first-of-type, tr.trforfield:not(.liste_titre)>td:first-of-type, div.tableforfield div.tagtr:not(.liste_titre)>div.tagtd:first-of-type {
color: #666; color: var(--tableforfieldcolor);
} }
<?php if (GETPOST('optioncss', 'aZ09') == 'print') { ?> <?php if (GETPOST('optioncss', 'aZ09') == 'print') { ?>
@ -2522,11 +2605,6 @@ img.photoref, div.photoref {
width: 80px; width: 80px;
object-fit: contain; object-fit: contain;
} }
.difforspanimgright {
display: table-cell;
padding-right: 10px;
}
img.photokanban, div.photokanban { img.photokanban, div.photokanban {
padding: 0; padding: 0;
border: none; border: none;
@ -2546,6 +2624,10 @@ div.photoref {
vertical-align:middle; vertical-align:middle;
text-align:center; text-align:center;
} }
.difforspanimgright {
display: table-cell;
padding-right: 10px;
}
img.photorefnoborder { img.photorefnoborder {
padding: 2px; padding: 2px;
height: 48px; height: 48px;
@ -2655,7 +2737,7 @@ a.tmenudisabled:link, a.tmenudisabled:visited, a.tmenudisabled:hover, a.tmenudis
font-weight: normal; font-weight: normal;
padding: 0px 5px 0px 5px; padding: 0px 5px 0px 5px;
white-space: nowrap; white-space: nowrap;
color: #<?php echo $colortextbackhmenu; ?>; color: var(--colortextbackhmenu);
text-decoration: none; text-decoration: none;
cursor: not-allowed; cursor: not-allowed;
} }
@ -2676,7 +2758,7 @@ a.tmenu:link, a.tmenu:visited, a.tmenu:hover, a.tmenu:active {
padding: 0px 5px 0px 5px; padding: 0px 5px 0px 5px;
white-space: nowrap; white-space: nowrap;
/* text-shadow: 1px 1px 1px #000000; */ /* text-shadow: 1px 1px 1px #000000; */
color: #<?php echo $colortextbackhmenu; ?>; color: var(--colortextbackhmenu);
text-decoration: none; text-decoration: none;
} }
a.tmenusel:link, a.tmenusel:visited, a.tmenusel:hover, a.tmenusel:active { a.tmenusel:link, a.tmenusel:visited, a.tmenusel:hover, a.tmenusel:active {
@ -2684,7 +2766,7 @@ a.tmenusel:link, a.tmenusel:visited, a.tmenusel:hover, a.tmenusel:active {
padding: 0px 5px 0px 5px; padding: 0px 5px 0px 5px;
margin: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;
white-space: nowrap; white-space: nowrap;
color: #<?php echo $colortextbackhmenu; ?>; color: var(--colortextbackhmenu);
text-decoration: none !important; text-decoration: none !important;
} }
@ -2765,6 +2847,8 @@ div.menu_titre {
{ {
padding-<?php print $left; ?>: 2px; padding-<?php print $left; ?>: 2px;
padding-<?php print $right; ?>: 2px; padding-<?php print $right; ?>: 2px;
font-family: Roboto,<?php echo $fontlist; ?>;
font-weight: 400;
} }
div.mainmenu { div.mainmenu {
@ -2838,13 +2922,13 @@ div.mainmenu.menu {
// Img file not found // Img file not found
if (!$found) { if (!$found) {
if (!defined('DISABLE_FONT_AWSOME')) { if (!defined('DISABLE_FONT_AWSOME')) {
print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one */\n"; print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one. */\n";
print "/* Overwrite this definition in your own css with a different content to use your own font awesome icon. */\n";
print 'div.mainmenu.'.$val.'::before { print 'div.mainmenu.'.$val.'::before {
content: "\f249"; content: "\f249";
}'."\n"; }'."\n";
} else { } else {
print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one. */\n"; print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one */\n";
print "/* Overwrite this definition in your own css with a different content to use your own font awesome icon. */\n";
$url = dol_buildpath($path.'/theme/'.$theme.'/img/menus/generic'.(min($generic, 4))."_over.png", 1); $url = dol_buildpath($path.'/theme/'.$theme.'/img/menus/generic'.(min($generic, 4))."_over.png", 1);
print "div.mainmenu.".$val." {\n"; print "div.mainmenu.".$val." {\n";
print " background-image: url(".$url.");\n"; print " background-image: url(".$url.");\n";
@ -3032,6 +3116,14 @@ div.login_block {
display: none; display: none;
<?php } ?> <?php } ?>
} }
div.login_block a {
color: var(--colortextbackhmenu);
display: inline-block;
}
div.login_block span.aversion {
color: var(--colortextbackhmenu);
filter: contrast(0.7);
}
div.login_block table { div.login_block table {
display: inline; display: inline;
} }
@ -3041,10 +3133,10 @@ div.login {
float: right; float: right;
} }
div.login a { div.login a {
color: #<?php echo $colortextbackvmenu; ?>; color: var(--colortextbackvmenu);
} }
div.login a:hover { div.login a:hover {
color: #<?php echo $colortextbackvmenu; ?>; color: var(--colortextbackvmenu);
text-decoration:underline; text-decoration:underline;
} }
div.login_block_user, div.login_block_other { clear: both; } div.login_block_user, div.login_block_other { clear: both; }
@ -3084,7 +3176,7 @@ a.aversion {
} }
.atoplogin, .atoplogin:hover { .atoplogin, .atoplogin:hover {
color: #<?php echo $colortextbackvmenu; ?> !important; color: var(--colortextbackhmenu) !important;
} }
.alogin, .alogin:hover { .alogin, .alogin:hover {
color: #888 !important; color: #888 !important;
@ -3127,7 +3219,7 @@ img.userphotosmall { /* size for user photo in lists */
background-size: contain; background-size: contain;
vertical-align: middle; vertical-align: middle;
} }
img.userphoto[alt="Gravatar avatar"] { img.userphoto[alt="Gravatar avatar"], img.photouserphoto.dropdown-user-image[alt="Gravatar avatar"] {
background: #fff; background: #fff;
} }
form[name="addtime"] img.userphoto { form[name="addtime"] img.userphoto {
@ -3194,7 +3286,7 @@ span.vsmenudisabled, font.vsmenudisabled {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
text-align: <?php print $left; ?>; text-align: <?php print $left; ?>;
font-weight: normal; font-weight: normal;
color: #aaa; color: var(--colortextbackvmenu);
white-space: nowrap; white-space: nowrap;
} }
a.vsmenu:link, a.vsmenu:visited { a.vsmenu:link, a.vsmenu:visited {
@ -3306,6 +3398,7 @@ div.blockvmenusearch, div.blockvmenubookmarks
padding-top: 3px; padding-top: 3px;
padding-bottom: 3px; padding-bottom: 3px;
margin: 1px 0px 2px 0px; margin: 1px 0px 2px 0px;
background: var(--colorbackvmenu1);
padding-bottom: 10px; padding-bottom: 10px;
/* border-bottom: 1px solid #f4f4f4; */ /* border-bottom: 1px solid #f4f4f4; */
@ -3405,6 +3498,10 @@ li.expanded > a.fmdirlia.jqft.ecmjqft {
font-weight: bold !important; font-weight: bold !important;
} }
.divfmdirlia {
width: calc(100% - 100px);
}
a.fmdirlia { a.fmdirlia {
white-space: break-spaces; white-space: break-spaces;
word-break: break-all; word-break: break-all;
@ -3428,7 +3525,7 @@ div.tabsElem a {
font-weight: normal !important; font-weight: normal !important;
} }
div.tabBar { div.tabBar {
color: #<?php echo $colortextbacktab; ?>; color: var(--colortextbacktab);
padding-top: 23px; padding-top: 23px;
padding-left: 24px; padding-left: 24px;
padding-right: 24px; padding-right: 24px;
@ -3443,8 +3540,10 @@ div.tabBar {
width: auto; width: auto;
background: var(--colorbacktabcard1); background: var(--colorbacktabcard1);
} }
div.tabBar tr.titre td { div.tabBar tr.titre td {
padding-top: 20px;
}
div.fiche table:not(.table-fiche-title) tr.titre td {
padding-top: 10px; padding-top: 10px;
} }
@ -3523,6 +3622,9 @@ div.tabs div.tabsElem:first-of-type a.tab {
margin-left: 0px !important; margin-left: 0px !important;
} }
a.tabunactive {
color: var(--colortextlink) !important;
}
a.tab:link, a.tab:visited, a.tab:hover, a.tab#active { a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
padding: 12px 13px 12px; padding: 12px 13px 12px;
@ -3786,8 +3888,8 @@ div.colorback
table.liste, table.noborder:not(.paymenttable):not(.margintable):not(.tableforcontact), table.formdoc, div.noborder:not(.paymenttable):not(.margintable):not(.tableforcontact) { table.liste, table.noborder:not(.paymenttable):not(.margintable):not(.tableforcontact), table.formdoc, div.noborder:not(.paymenttable):not(.margintable):not(.tableforcontact) {
<?php <?php
if ($userborderontable) { ?> if ($userborderontable) { ?>
border-left: 1px solid #BBB; border-left: 1px solid var(--colortopbordertitle1);
border-right: 1px solid #BBB; border-right: 1px solid var(--colortopbordertitle1);
<?php } ?> <?php } ?>
} }
table.liste, table.noborder.paymenttable, table.noborder.margintable, table.noborder.tableforcontact, table.formdoc, div.noborder.paymenttable, div.noborder.margintable, div.noborder.tableforcontact { table.liste, table.noborder.paymenttable, table.noborder.margintable, table.noborder.tableforcontact, table.formdoc, div.noborder.paymenttable, div.noborder.margintable, div.noborder.tableforcontact {
@ -3843,6 +3945,9 @@ tr.liste_titre_filter td.liste_titre {
border-top-color: var(--colortopbordertitle1); border-top-color: var(--colortopbordertitle1);
border-top-style: solid; border-top-style: solid;
} }
tr#trlinefordates td {
border-bottom: 0px !important;
}
.liste_titre_add td, .liste_titre_add th, .liste_titre_add .tagtd .liste_titre_add td, .liste_titre_add th, .liste_titre_add .tagtd
{ {
border-top-width: 2px; border-top-width: 2px;
@ -3856,7 +3961,7 @@ tr.liste_titre_filter td.liste_titre {
border-top-style: solid; border-top-style: solid;
} }
table.liste th, table.noborder th, table.noborder tr.liste_titre td { table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.noborder tr.box_titre td {
padding: 8px 6px 8px 6px; /* t r b l */ padding: 8px 6px 8px 6px; /* t r b l */
} }
@ -3914,6 +4019,7 @@ table.listwithfilterbefore {
.tagtr, .table-border-row { display: table-row; } .tagtr, .table-border-row { display: table-row; }
.tagtd, .table-border-col, .table-key-border-col, .table-val-border-col { display: table-cell; } .tagtd, .table-border-col, .table-key-border-col, .table-val-border-col { display: table-cell; }
.confirmquestions .tagtr .tagtd:not(:first-child) { padding-left: 10px; } .confirmquestions .tagtr .tagtd:not(:first-child) { padding-left: 10px; }
.confirmquestions { margin-top: 5px; }
/* Pagination */ /* Pagination */
@ -3931,8 +4037,8 @@ a.refid {
div.refidno { div.refidno {
padding-top: 8px; padding-top: 8px;
font-weight: normal; font-weight: normal;
color: #444; color: var(--refidnocolor);
font-size: <?php print $fontsize ?>px; font-size: <?php print is_numeric($fontsize) ? $fontsize.'px' : $fontsize ?>;
line-height: 21px; line-height: 21px;
} }
div.refidno form { div.refidno form {
@ -3971,7 +4077,7 @@ div.pagination li.pagination span {
padding: 6px 12px; padding: 6px 12px;
padding-top: 8px; padding-top: 8px;
line-height: 1.42857143; line-height: 1.42857143;
color: #000; color: var(--color-black);
text-decoration: none; text-decoration: none;
} }
div.pagination li.pagination span.inactive { div.pagination li.pagination span.inactive {
@ -4129,7 +4235,7 @@ ul.noborder li:nth-child(odd):not(.liste_titre) {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
border: 0px; border: 0px;
margin-bottom: 1px; margin-bottom: 1px;
color: #202020; color: var(--oddeven);
} }
.impair, .nohover .impair:hover, tr.impair td.nohover .impair, .nohover .impair:hover, tr.impair td.nohover
{ {
@ -4142,7 +4248,7 @@ ul.noborder li:nth-child(odd):not(.liste_titre) {
.oddeven, .evenodd, .pair, .nohover .pair:hover, tr.pair td.nohover, .tagtr.oddeven { .oddeven, .evenodd, .pair, .nohover .pair:hover, tr.pair td.nohover, .tagtr.oddeven {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
margin-bottom: 1px; margin-bottom: 1px;
color: #202020; color: var(--oddevencolor);
} }
.pair, .nohover .pair:hover, tr.pair td.nohover { .pair, .nohover .pair:hover, tr.pair td.nohover {
background-color: var(--colorbacklinepair1); background-color: var(--colorbacklinepair1);
@ -4166,6 +4272,9 @@ td.evenodd, tr.nohoverpair td, #trlinefordates td {
border-bottom: 1pt solid black !important; border-bottom: 1pt solid black !important;
background-color: var(--colorbacklinebreak) !important; background-color: var(--colorbacklinebreak) !important;
} }
.trforbreak.nobold td a, .trforbreak.nobold span.secondary {
font-weight: normal !important;
}
table.dataTable td { table.dataTable td {
padding: 5px 2px 5px 3px !important; padding: 5px 2px 5px 3px !important;
@ -4534,6 +4643,9 @@ span.dashboardlineko {
.boxtablenobottom { .boxtablenobottom {
/* border-bottom-width: 0 !important; */ /* border-bottom-width: 0 !important; */
} }
.boxtablenomarginbottom {
margin-bottom: 0 !important;
}
.boxtable .fichehalfright, .boxtable .fichehalfleft { .boxtable .fichehalfright, .boxtable .fichehalfleft {
min-width: 275px; min-width: 275px;
} }
@ -4559,10 +4671,8 @@ tr.box_titre {
color: #000 !important; */ color: #000 !important; */
/* TO MATCH ELDY */ /* TO MATCH ELDY */
background: rgb(<?php echo $colorbacktitle1; ?>); background: var(--colorbacktitle1);
color: var(--colortexttitle);
background-repeat: repeat-x;
color: rgb(<?php echo $colortexttitle; ?>);
font-family: <?php print $fontlist ?>, sans-serif; font-family: <?php print $fontlist ?>, sans-serif;
font-weight: <?php echo $useboldtitle ? 'bold' : 'normal'; ?>; font-weight: <?php echo $useboldtitle ? 'bold' : 'normal'; ?>;
border-bottom: 1px solid #FDFFFF; border-bottom: 1px solid #FDFFFF;
@ -6309,10 +6419,12 @@ ul.select2-results__options li {
.select2-container.select2-container--open .select2-dropdown.ui-dialog { .select2-container.select2-container--open .select2-dropdown.ui-dialog {
min-width: 220px !important; min-width: 220px !important;
} }
.select2-container.select2-container--open .select2-dropdown--below { .select2-container.select2-container--open .select2-dropdown--below,
.select2-container.select2-container--open .select2-dropdown--above {
min-width: 220px !important; min-width: 220px !important;
} }
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below { .onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below,
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--above {
min-width: 140px !important; min-width: 140px !important;
} }
@ -7309,6 +7421,8 @@ div.clipboardCPValue.hidewithsize {
border-left: none; border-left: none;
} }
td.widthpictotitle { width: 30px; }
.box-flex-container { .box-flex-container {
margin: 0 0 0 -8px !important; margin: 0 0 0 -8px !important;
} }