Merge remote-tracking branch 'upstream/develop' into 18a5
This commit is contained in:
commit
eee81d3719
@ -188,7 +188,8 @@ $result = restrictedArea($user, 'adherent');
|
||||
*/
|
||||
|
||||
if (GETPOST('cancel', 'alpha')) {
|
||||
$action = 'list'; $massaction = '';
|
||||
$action = 'list';
|
||||
$massaction = '';
|
||||
}
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||
$massaction = '';
|
||||
@ -324,14 +325,17 @@ $formother = new FormOther($db);
|
||||
$membertypestatic = new AdherentType($db);
|
||||
$memberstatic = new Adherent($db);
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
// Page Header
|
||||
$title = $langs->trans("Members")." - ".$langs->trans("List");
|
||||
$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros|DE:Modul_Mitglieder';
|
||||
llxHeader('', $title, $help_url);
|
||||
$morejs = array();
|
||||
$morecss = array();
|
||||
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
// Build and execute select
|
||||
// --------------------------------------------------------------------
|
||||
if ((!empty($search_categ) && $search_categ > 0) || !empty($catid)) {
|
||||
$sql = "SELECT DISTINCT";
|
||||
} else {
|
||||
@ -356,7 +360,7 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) {
|
||||
|
||||
// Add fields from hooks
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook
|
||||
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
$sql .= $hookmanager->resPrint;
|
||||
$sql = preg_replace('/,\s*$/', '', $sql);
|
||||
|
||||
@ -487,16 +491,14 @@ if ($search_country) {
|
||||
if ($search_import_key) {
|
||||
$sql .= natural_search("d.import_key", $search_import_key);
|
||||
}
|
||||
|
||||
// Add where from extra fields
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
||||
|
||||
// Add where from hooks
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
|
||||
$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
$sql .= $hookmanager->resPrint;
|
||||
|
||||
// Count total nb of records with no order and no limits
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
/* The fast and low memory method to get and count full list converts the sql into a sql count */
|
||||
@ -510,7 +512,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller than the paging size (filtering), goto and load page 0
|
||||
$page = 0;
|
||||
$offset = 0;
|
||||
}
|
||||
@ -533,8 +535,7 @@ if (!$resql) {
|
||||
$num = $db->num_rows($resql);
|
||||
|
||||
|
||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||
|
||||
// Direct jump if only one record found
|
||||
if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
$id = $obj->rowid;
|
||||
@ -542,6 +543,13 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $
|
||||
exit;
|
||||
}
|
||||
|
||||
// Output page
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); // Can use also classforhorizontalscrolloftabs instead of bodyforlist for no horizontal scroll
|
||||
|
||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||
|
||||
|
||||
if ($search_type > 0) {
|
||||
$membertype = new AdherentType($db);
|
||||
@ -1351,7 +1359,7 @@ if ($num == 0) {
|
||||
$colspan++;
|
||||
}
|
||||
}
|
||||
print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
|
||||
print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
|
||||
}
|
||||
|
||||
$db->free($resql);
|
||||
|
||||
@ -601,6 +601,9 @@ print '<br>';
|
||||
print '<strong>MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES</strong> = '.getDolGlobalString('MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES', '<span class="opacitymedium">'.$langs->trans("Undefined").' ('.$langs->trans("Recommended").': 1)</span>')."<br>";
|
||||
print '<br>';
|
||||
|
||||
print '<strong>MAIN_DISALLOW_EXT_URL_INTO_DESCRIPTIONS</strong> = '.getDolGlobalString('MAIN_DISALLOW_EXT_URL_INTO_DESCRIPTIONS', '<span class="opacitymedium">'.$langs->trans("Undefined").' ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)</span>')."<br>";
|
||||
print '<br>';
|
||||
|
||||
print '<strong>MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL</strong> = '.getDolGlobalString('MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL', '<span class="opacitymedium">'.$langs->trans("Undefined").' ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)</span>')."<br>";
|
||||
print '<br>';
|
||||
|
||||
|
||||
@ -3393,7 +3393,6 @@ class Facture extends CommonInvoice
|
||||
|
||||
// Set new ref and define current status
|
||||
if (!$error) {
|
||||
$this->ref = $num;
|
||||
$this->ref = $num;
|
||||
$this->statut = self::STATUS_VALIDATED;
|
||||
$this->status = self::STATUS_VALIDATED;
|
||||
|
||||
@ -1236,8 +1236,8 @@ abstract class CommonDocGenerator
|
||||
// save curent cell padding
|
||||
$curentCellPaddinds = $pdf->getCellPaddings();
|
||||
// set cell padding with column content definition
|
||||
$pdf->setCellPaddings($colDef['content']['padding'][3], $colDef['content']['padding'][0], $colDef['content']['padding'][1], $colDef['content']['padding'][2]);
|
||||
$pdf->writeHTMLCell($colDef['width'], 2, $colDef['xStartPos'], $curY, $columnText, 0, 1, 0, true, $colDef['content']['align']);
|
||||
$pdf->setCellPaddings(isset($colDef['content']['padding'][3]) ? $colDef['content']['padding'][3] : 0, isset($colDef['content']['padding'][0]) ? $colDef['content']['padding'][0] : 0, isset($colDef['content']['padding'][1]) ? $colDef['content']['padding'][1] : 0, isset($colDef['content']['padding'][2]) ? $colDef['content']['padding'][2] : 0);
|
||||
$pdf->writeHTMLCell($colDef['width'], 2, isset($colDef['xStartPos']) ? $colDef['xStartPos'] : 0, $curY, $columnText, 0, 1, 0, true, $colDef['content']['align']);
|
||||
|
||||
// restore cell padding
|
||||
$pdf->setCellPaddings($curentCellPaddinds['L'], $curentCellPaddinds['T'], $curentCellPaddinds['R'], $curentCellPaddinds['B']);
|
||||
|
||||
@ -8377,18 +8377,18 @@ class Form
|
||||
* Return a HTML select string, built from an array of key+value, but content returned into select is defined into $array parameter.
|
||||
* Note: Do not apply langs->trans function on returned content of Ajax service, content may be entity encoded twice.
|
||||
*
|
||||
* @param string $htmlname Name of html select area
|
||||
* @param array $array Array (key=>array('text'=>'A text', 'url'=>'An url'), ...)
|
||||
* @param string $id Preselected key
|
||||
* @param string $moreparam Add more parameters onto the select tag
|
||||
* @param int $disableFiltering If set to 1, results are not filtered with searched string
|
||||
* @param int $disabled Html select box is disabled
|
||||
* @param int $minimumInputLength Minimum Input Length
|
||||
* @param string $morecss Add more class to css styles
|
||||
* @param int $callurlonselect If set to 1, some code is added so an url return by the ajax is called when value is selected.
|
||||
* @param string $placeholder String to use as placeholder
|
||||
* @param integer $acceptdelayedhtml 1 = caller is requesting to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
|
||||
* @return string HTML select string
|
||||
* @param string $htmlname Name of html select area
|
||||
* @param array $array Array (key=>array('text'=>'A text', 'url'=>'An url'), ...)
|
||||
* @param string $id Preselected key
|
||||
* @param string $moreparam Add more parameters onto the select tag
|
||||
* @param int $disableFiltering If set to 1, results are not filtered with searched string
|
||||
* @param int $disabled Html select box is disabled
|
||||
* @param int $minimumInputLength Minimum Input Length
|
||||
* @param string $morecss Add more class to css styles
|
||||
* @param int $callurlonselect If set to 1, some code is added so an url return by the ajax is called when value is selected.
|
||||
* @param string $placeholder String to use as placeholder
|
||||
* @param integer $acceptdelayedhtml 1 = caller is requesting to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
|
||||
* @return string HTML select string
|
||||
* @see selectArrayAjax(), ajax_combobox() in ajax.lib.php
|
||||
*/
|
||||
public static function selectArrayFilter($htmlname, $array, $id = '', $moreparam = '', $disableFiltering = 0, $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
|
||||
|
||||
@ -1305,7 +1305,7 @@ $(document).on('select2:open', (e) => {
|
||||
const target = $(e.target);
|
||||
if (target && target.length) {
|
||||
const id = target[0].id || target[0].name;
|
||||
document.querySelector(`input[aria-controls*='${id}']`).focus();
|
||||
document.querySelector('input[aria-controls*='+id+']').focus();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -1197,10 +1197,10 @@ class pdf_crabe extends ModelePDFFactures
|
||||
if ($object->type != 2) {
|
||||
// Check a payment mode is defined
|
||||
if (empty($object->mode_reglement_code)
|
||||
&& empty($conf->global->FACTURE_CHQ_NUMBER)
|
||||
&& !getDolGlobalInt('FACTURE_CHQ_NUMBER')
|
||||
&& !getDolGlobalInt('FACTURE_RIB_NUMBER')) {
|
||||
$this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured");
|
||||
} elseif (($object->mode_reglement_code == 'CHQ' && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($object->fk_account) && empty($object->fk_bank))
|
||||
} elseif (($object->mode_reglement_code == 'CHQ' && !getDolGlobalInt('FACTURE_CHQ_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))
|
||||
|| ($object->mode_reglement_code == 'VIR' && !getDolGlobalInt('FACTURE_RIB_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))) {
|
||||
// Avoid having any valid PDF with setup that is not complete
|
||||
$outputlangs->load("errors");
|
||||
@ -1286,12 +1286,12 @@ class pdf_crabe extends ModelePDFFactures
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// If payment mode unregulated or payment mode forced to CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
$diffsizetitle = (empty($conf->global->PDF_DIFFSIZE_TITLE) ? 3 : $conf->global->PDF_DIFFSIZE_TITLE);
|
||||
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
|
||||
@ -1289,10 +1289,10 @@ class pdf_sponge extends ModelePDFFactures
|
||||
if ($object->type != 2) {
|
||||
// Check a payment mode is defined
|
||||
if (empty($object->mode_reglement_code)
|
||||
&& empty($conf->global->FACTURE_CHQ_NUMBER)
|
||||
&& !getDolGlobalInt('FACTURE_CHQ_NUMBER')
|
||||
&& !getDolGlobalInt('FACTURE_RIB_NUMBER')) {
|
||||
$this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured");
|
||||
} elseif (($object->mode_reglement_code == 'CHQ' && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($object->fk_account) && empty($object->fk_bank))
|
||||
} elseif (($object->mode_reglement_code == 'CHQ' && !getDolGlobalInt('FACTURE_CHQ_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))
|
||||
|| ($object->mode_reglement_code == 'VIR' && !getDolGlobalInt('FACTURE_RIB_NUMBER') && empty($object->fk_account) && empty($object->fk_bank))) {
|
||||
// Avoid having any valid PDF with setup that is not complete
|
||||
$outputlangs->load("errors");
|
||||
@ -1381,12 +1381,12 @@ class pdf_sponge extends ModelePDFFactures
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// If payment mode unregulated or payment mode forced to CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
$diffsizetitle = (empty($conf->global->PDF_DIFFSIZE_TITLE) ? 3 : $conf->global->PDF_DIFFSIZE_TITLE);
|
||||
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
|
||||
@ -1032,12 +1032,12 @@ class pdf_azur extends ModelePDFPropales
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// Si mode reglement non force ou si force a CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
$diffsizetitle = (empty($conf->global->PDF_DIFFSIZE_TITLE) ? 3 : $conf->global->PDF_DIFFSIZE_TITLE);
|
||||
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
|
||||
@ -1143,12 +1143,12 @@ class pdf_cyan extends ModelePDFPropales
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// Si mode reglement non force ou si force a CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
$diffsizetitle = (empty($conf->global->PDF_DIFFSIZE_TITLE) ? 3 : $conf->global->PDF_DIFFSIZE_TITLE);
|
||||
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
@ -1162,7 +1162,7 @@ class pdf_cyan extends ModelePDFPropales
|
||||
$posy = $pdf->GetY() + 2;
|
||||
}
|
||||
}
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER == -1) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER') == -1) {
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo', $this->emetteur->name), 0, 'L', 0);
|
||||
|
||||
@ -943,10 +943,10 @@ class pdf_eagle_proforma extends ModelePDFCommandes
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// Si mode reglement non force ou si force a CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - 3);
|
||||
@ -960,7 +960,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes
|
||||
$posy = $pdf->GetY() + 2;
|
||||
}
|
||||
}
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER == -1) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER') == -1) {
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - 3);
|
||||
$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo', $this->emetteur->name), 0, 'L', 0);
|
||||
|
||||
@ -841,12 +841,12 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
||||
// Show payment mode CHQ
|
||||
if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') {
|
||||
// Si mode reglement non force ou si force a CHQ
|
||||
if (!empty($conf->global->FACTURE_CHQ_NUMBER)) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER')) {
|
||||
$diffsizetitle = (empty($conf->global->PDF_DIFFSIZE_TITLE) ? 3 : $conf->global->PDF_DIFFSIZE_TITLE);
|
||||
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0) {
|
||||
$account = new Account($this->db);
|
||||
$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
|
||||
$account->fetch(getDolGlobalInt('FACTURE_CHQ_NUMBER'));
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
@ -860,7 +860,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
||||
$posy = $pdf->GetY() + 2;
|
||||
}
|
||||
}
|
||||
if ($conf->global->FACTURE_CHQ_NUMBER == -1) {
|
||||
if (getDolGlobalInt('FACTURE_CHQ_NUMBER') == -1) {
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->SetFont('', 'B', $default_font_size - $diffsizetitle);
|
||||
$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo', $this->emetteur->name), 0, 'L', 0);
|
||||
|
||||
@ -31,6 +31,8 @@
|
||||
* DOL_URL_ROOT.'/document.php?hashp=sharekey'
|
||||
*/
|
||||
|
||||
define('MAIN_SECURITY_FORCECSP', "default-src: 'none'");
|
||||
|
||||
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
||||
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
|
||||
@ -199,9 +199,7 @@ Hide=Hide
|
||||
ShowCardHere=Show card
|
||||
Search=Search
|
||||
SearchOf=Search
|
||||
SearchMenuShortCut=Ctrl + shift + f
|
||||
QuickAdd=Quick add
|
||||
QuickAddMenuShortCut=Ctrl + shift + l
|
||||
Valid=Valid
|
||||
Approve=Approve
|
||||
Disapprove=Disapprove
|
||||
|
||||
@ -199,9 +199,7 @@ Hide=Cacher
|
||||
ShowCardHere=Voir la fiche ici
|
||||
Search=Rechercher
|
||||
SearchOf=Recherche de
|
||||
SearchMenuShortCut=Ctrl + Maj + f
|
||||
QuickAdd=Création rapide
|
||||
QuickAddMenuShortCut=Ctrl + Maj + l
|
||||
Valid=Valider
|
||||
Approve=Approuver
|
||||
Disapprove=Désapprouver
|
||||
|
||||
@ -2081,12 +2081,21 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
||||
if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') {
|
||||
$logouthtmltext .= $langs->trans("Logout").'<br>';
|
||||
|
||||
$stringforfirstkey = $langs->trans("KeyboardShortcut");
|
||||
if ($conf->browser->name == 'chrome') {
|
||||
$stringforfirstkey .= ' ALT +';
|
||||
} elseif ($conf->browser->name == 'firefox') {
|
||||
$stringforfirstkey .= ' ALT + SHIFT +';
|
||||
} else {
|
||||
$stringforfirstkey .= ' CTL +';
|
||||
}
|
||||
|
||||
$logouttext .= '<a accesskey="l" href="'.DOL_URL_ROOT.'/user/logout.php?token='.newToken().'">';
|
||||
$logouttext .= img_picto($langs->trans('Logout'), 'sign-out', '', false, 0, 0, '', 'atoplogin valignmiddle');
|
||||
$logouttext .= img_picto($langs->trans('Logout').' ('.$stringforfirstkey.' l)', 'sign-out', '', false, 0, 0, '', 'atoplogin valignmiddle');
|
||||
$logouttext .= '</a>';
|
||||
} else {
|
||||
$logouthtmltext .= $langs->trans("NoLogoutProcessWithAuthMode", $_SESSION["dol_authmode"]);
|
||||
$logouttext .= img_picto($langs->trans('Logout'), 'sign-out', '', false, 0, 0, '', 'atoplogin valignmiddle opacitymedium');
|
||||
$logouttext .= img_picto($langs->trans('Logout').' ('.$stringforfirstkey.' l)', 'sign-out', '', false, 0, 0, '', 'atoplogin valignmiddle opacitymedium');
|
||||
}
|
||||
}
|
||||
|
||||
@ -2368,11 +2377,22 @@ function top_menu_user($hideloginname = 0, $urllogout = '')
|
||||
$urllogout = DOL_URL_ROOT.'/user/logout.php?token='.newToken();
|
||||
}
|
||||
|
||||
// accesskey is for Windows or Linux: ALT + key for chrome, ALT + SHIFT + KEY for firefox
|
||||
// accesskey is for Mac: CTRL + key for all browsers
|
||||
$stringforfirstkey = $langs->trans("KeyboardShortcut");
|
||||
if ($conf->browser->name == 'chrome') {
|
||||
$stringforfirstkey .= ' ALT +';
|
||||
} elseif ($conf->browser->name == 'firefox') {
|
||||
$stringforfirstkey .= ' ALT + SHIFT +';
|
||||
} else {
|
||||
$stringforfirstkey .= ' CTL +';
|
||||
}
|
||||
|
||||
// Defined the links for bottom of card
|
||||
$profilLink = '<a accesskey="c" href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="button-top-menu-dropdown" title="'.dol_escape_htmltag($langs->trans("YourUserFile")).'"><i class="fa fa-user"></i> '.$langs->trans("Card").'</a>';
|
||||
$profilLink = '<a accesskey="u" href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="button-top-menu-dropdown" title="'.dol_escape_htmltag($langs->trans("YourUserFile").' ('.$stringforfirstkey.' u)').'"><i class="fa fa-user"></i> '.$langs->trans("Card").'</a>';
|
||||
$urltovirtualcard = '/user/virtualcard.php?id='.((int) $user->id);
|
||||
$virtuelcardLink = dolButtonToOpenUrlInDialogPopup('publicvirtualcardmenu', $langs->trans("PublicVirtualCardUrl").(is_object($user) ? ' - '.$user->getFullName($langs) : ''), img_picto($langs->trans("PublicVirtualCardUrl"), 'card', ''), $urltovirtualcard, '', 'button-top-menu-dropdown marginleftonly nohover', "closeTopMenuLoginDropdown()", '', 'v');
|
||||
$logoutLink = '<a accesskey="l" href="'.$urllogout.'" class="button-top-menu-dropdown" title="'.dol_escape_htmltag($langs->trans("Logout")).'"><i class="fa fa-sign-out-alt padingright"></i><span class="hideonsmartphone">'.$langs->trans("Logout").'</span></a>';
|
||||
$virtuelcardLink = dolButtonToOpenUrlInDialogPopup('publicvirtualcardmenu', $langs->trans("PublicVirtualCardUrl").(is_object($user) ? ' - '.$user->getFullName($langs) : '').' ('.$stringforfirstkey.' v)', img_picto($langs->trans("PublicVirtualCardUrl").' ('.$stringforfirstkey.' v)', 'card', ''), $urltovirtualcard, '', 'button-top-menu-dropdown marginleftonly nohover', "closeTopMenuLoginDropdown()", '', 'v');
|
||||
$logoutLink = '<a accesskey="l" href="'.$urllogout.'" class="button-top-menu-dropdown" title="'.dol_escape_htmltag($langs->trans("Logout").' ('.$stringforfirstkey.' l)').'"><i class="fa fa-sign-out-alt padingright"></i><span class="hideonsmartphone">'.$langs->trans("Logout").'</span></a>';
|
||||
|
||||
$profilName = $user->getFullName($langs).' ('.$user->login.')';
|
||||
if (!empty($user->admin)) {
|
||||
@ -2525,9 +2545,20 @@ function top_menu_quickadd()
|
||||
|
||||
$html = '';
|
||||
|
||||
// accesskey is for Windows or Linux: ALT + key for chrome, ALT + SHIFT + KEY for firefox
|
||||
// accesskey is for Mac: CTRL + key for all browsers
|
||||
$stringforfirstkey = $langs->trans("KeyboardShortcut");
|
||||
if ($conf->browser->name == 'chrome') {
|
||||
$stringforfirstkey .= ' ALT +';
|
||||
} elseif ($conf->browser->name == 'firefox') {
|
||||
$stringforfirstkey .= ' ALT + SHIFT +';
|
||||
} else {
|
||||
$stringforfirstkey .= ' CTL +';
|
||||
}
|
||||
|
||||
$html .= '<!-- div for quick add link -->
|
||||
<div id="topmenu-quickadd-dropdown" class="atoplogin dropdown inline-block">
|
||||
<a class="dropdown-toggle login-dropdown-a" data-toggle="dropdown" href="#" title="'.$langs->trans('QuickAdd').' ('.$langs->trans('QuickAddMenuShortCut').')"><i class="fa fa-plus-circle"></i></a>
|
||||
<a accesskey="a" class="dropdown-toggle login-dropdown-a nofocusvisible" data-toggle="dropdown" href="#" title="'.$langs->trans('QuickAdd').' ('.$stringforfirstkey.' a)"><i class="fa fa-plus-circle"></i></a>
|
||||
<div class="dropdown-menu">'.printDropdownQuickadd().'</div>
|
||||
</div>';
|
||||
$html .= '
|
||||
@ -2544,6 +2575,7 @@ function top_menu_quickadd()
|
||||
console.log("Click on #topmenu-quickadd-dropdown .dropdown-toggle");
|
||||
openQuickAddDropDown();
|
||||
});
|
||||
|
||||
// Key map shortcut
|
||||
$(document).keydown(function(e){
|
||||
if( e.which === 76 && e.ctrlKey && e.shiftKey ){
|
||||
@ -2552,7 +2584,6 @@ function top_menu_quickadd()
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var openQuickAddDropDown = function() {
|
||||
event.preventDefault();
|
||||
$("#topmenu-quickadd-dropdown").toggleClass("open");
|
||||
@ -2759,6 +2790,17 @@ function top_menu_bookmark()
|
||||
return $html;
|
||||
}
|
||||
|
||||
// accesskey is for Windows or Linux: ALT + key for chrome, ALT + SHIFT + KEY for firefox
|
||||
// accesskey is for Mac: CTRL + key for all browsers
|
||||
$stringforfirstkey = $langs->trans("KeyboardShortcut");
|
||||
if ($conf->browser->name == 'chrome') {
|
||||
$stringforfirstkey .= ' ALT +';
|
||||
} elseif ($conf->browser->name == 'firefox') {
|
||||
$stringforfirstkey .= ' ALT + SHIFT +';
|
||||
} else {
|
||||
$stringforfirstkey .= ' CTL +';
|
||||
}
|
||||
|
||||
if (!defined('JS_JQUERY_DISABLE_DROPDOWN') && !empty($conf->use_javascript_ajax)) { // This may be set by some pages that use different jquery version to avoid errors
|
||||
include_once DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php';
|
||||
$langs->load("bookmarks");
|
||||
@ -2770,7 +2812,7 @@ function top_menu_bookmark()
|
||||
} else {
|
||||
$html .= '<!-- div for bookmark link -->
|
||||
<div id="topmenu-bookmark-dropdown" class="dropdown inline-block">
|
||||
<a class="dropdown-toggle login-dropdown-a" data-toggle="dropdown" href="#" title="'.$langs->trans('Bookmarks').' ('.$langs->trans('BookmarksMenuShortCut').')"><i class="fa fa-star"></i></a>
|
||||
<a accesskey="b" class="dropdown-toggle login-dropdown-a nofocusvisible" data-toggle="dropdown" href="#" title="'.$langs->trans('Bookmarks').' ('.$stringforfirstkey.' b)"><i class="fa fa-star"></i></a>
|
||||
<div class="dropdown-menu">
|
||||
'.printDropdownBookmarksList().'
|
||||
</div>
|
||||
@ -2831,6 +2873,8 @@ function top_menu_search()
|
||||
$arrayresult = null;
|
||||
include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php'; // This set $arrayresult
|
||||
|
||||
$searchInput = '<input name="search_all" id="top-global-search-input" class="dropdown-search-input search_component_input" placeholder="'.$langs->trans('Search').'" autocomplete="off">';
|
||||
|
||||
$defaultAction = '';
|
||||
$buttonList = '<div class="dropdown-global-search-button-list" >';
|
||||
// Menu with all searchable items
|
||||
@ -2838,16 +2882,13 @@ function top_menu_search()
|
||||
if (empty($defaultAction)) {
|
||||
$defaultAction = $item['url'];
|
||||
}
|
||||
$buttonList .= '<button class="dropdown-item global-search-item" data-target="'.dol_escape_htmltag($item['url']).'" >';
|
||||
$buttonList .= '<button class="dropdown-item global-search-item tdoverflowmax300" data-target="'.dol_escape_htmltag($item['url']).'" >';
|
||||
$buttonList .= $item['text'];
|
||||
$buttonList .= '</button>';
|
||||
}
|
||||
$buttonList .= '</div>';
|
||||
|
||||
|
||||
$searchInput = '<input name="search_all" id="top-global-search-input" class="dropdown-search-input" placeholder="'.$langs->trans('Search').'" autocomplete="off" >';
|
||||
|
||||
$dropDownHtml = '<form id="top-menu-action-search" name="actionsearch" method="GET" action="'.$defaultAction.'" >';
|
||||
$dropDownHtml = '<form id="top-menu-action-search" name="actionsearch" method="GET" action="'.$defaultAction.'">';
|
||||
|
||||
$dropDownHtml .= '
|
||||
<!-- search input -->
|
||||
@ -2865,10 +2906,20 @@ function top_menu_search()
|
||||
|
||||
$dropDownHtml .= '</form>';
|
||||
|
||||
// accesskey is for Windows or Linux: ALT + key for chrome, ALT + SHIFT + KEY for firefox
|
||||
// accesskey is for Mac: CTRL + key for all browsers
|
||||
$stringforfirstkey = $langs->trans("KeyboardShortcut");
|
||||
if ($conf->browser->name == 'chrome') {
|
||||
$stringforfirstkey .= ' ALT +';
|
||||
} elseif ($conf->browser->name == 'firefox') {
|
||||
$stringforfirstkey .= ' ALT + SHIFT +';
|
||||
} else {
|
||||
$stringforfirstkey .= ' CTL +';
|
||||
}
|
||||
|
||||
$html .= '<!-- div for Global Search -->
|
||||
<div id="topmenu-global-search-dropdown" class="atoplogin dropdown inline-block">
|
||||
<a class="dropdown-toggle login-dropdown-a" data-toggle="dropdown" href="#" title="'.$langs->trans('Search').' ('.$langs->trans('SearchMenuShortCut').')">
|
||||
<a accesskey="s" class="dropdown-toggle login-dropdown-a nofocusvisible" data-toggle="dropdown" href="#" title="'.$langs->trans('Search').' ('.$stringforfirstkey.' s)">
|
||||
<i class="fa fa-search" ></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-search">
|
||||
@ -3004,11 +3055,11 @@ function left_menu($menu_array_before, $helppagename = '', $notused = '', $menu_
|
||||
include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php'; // This make initHooks('searchform') then set $arrayresult
|
||||
|
||||
if ($conf->use_javascript_ajax && empty($conf->global->MAIN_USE_OLD_SEARCH_FORM)) {
|
||||
$searchform .= $form->selectArrayFilter('searchselectcombo', $arrayresult, $selected, '', 1, 0, (empty($conf->global->MAIN_SEARCHBOX_CONTENT_LOADED_BEFORE_KEY) ? 1 : 0), 'vmenusearchselectcombo', 1, $langs->trans("Search"), 1);
|
||||
$searchform .= $form->selectArrayFilter('searchselectcombo', $arrayresult, $selected, 'accesskey="s"', 1, 0, (empty($conf->global->MAIN_SEARCHBOX_CONTENT_LOADED_BEFORE_KEY) ? 1 : 0), 'vmenusearchselectcombo', 1, $langs->trans("Search"), 1);
|
||||
} else {
|
||||
if (is_array($arrayresult)) {
|
||||
foreach ($arrayresult as $key => $val) {
|
||||
$searchform .= printSearchForm($val['url'], $val['url'], $val['label'], 'maxwidth125', 'sall', (empty($val['shortcut']) ? '' : $val['shortcut']), 'searchleft'.$key, $val['img']);
|
||||
$searchform .= printSearchForm($val['url'], $val['url'], $val['label'], 'maxwidth125', 'search_all', (empty($val['shortcut']) ? '' : $val['shortcut']), 'searchleft'.$key, $val['img']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3022,7 +3073,7 @@ function left_menu($menu_array_before, $helppagename = '', $notused = '', $menu_
|
||||
$searchform = $hookmanager->resPrint;
|
||||
}
|
||||
|
||||
// Force special value for $searchform
|
||||
// Force special value for $searchform for text browsers or very old search form
|
||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) || empty($conf->use_javascript_ajax)) {
|
||||
$urltosearch = DOL_URL_ROOT.'/core/search_page.php?showtitlebefore=1';
|
||||
$searchform = '<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="'.$urltosearch.'" accesskey="s" alt="'.dol_escape_htmltag($langs->trans("ShowSearchFields")).'">'.$langs->trans("Search").'...</a></div></div>';
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019-2020 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2023 Christian Humpel <christian.humpel@gmail.com>
|
||||
* Copyright (C) 2023 Christian Humpel <christian.humpel@gmail.com>
|
||||
* Copyright (C) 2023 Vincent de Grandpré <vincent@de-grandpre.quebec>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -442,6 +443,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
$res = $object->fetch_thirdparty();
|
||||
$res = $object->fetch_optionals();
|
||||
|
||||
if (!empty($conf->global->STOCK_CONSUMPTION_FROM_MANUFACTURING_WAREHOUSE) && $object->fk_warehouse > 0) {
|
||||
$tmpwarehouse->fetch($object->fk_warehouse);
|
||||
$fk_default_warehouse = $object->fk_warehouse;
|
||||
}
|
||||
|
||||
$head = moPrepareHead($object);
|
||||
|
||||
print dol_get_fiche_head($head, 'production', $langs->trans("ManufacturingOrder"), -1, $object->picto);
|
||||
@ -924,6 +930,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
print '</td>';
|
||||
// Warehouse
|
||||
print '<td>';
|
||||
if (!empty($conf->global->STOCK_CONSUMPTION_FROM_MANUFACTURING_WAREHOUSE) && $tmpwarehouse->id > 0) {
|
||||
print img_picto('', $tmpwarehouse->picto)." ".$tmpwarehouse->label;
|
||||
}
|
||||
print '</td>';
|
||||
// Stock
|
||||
if (isModEnabled('stock')) {
|
||||
@ -932,7 +941,18 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
if (!$line->disable_stock_change && $tmpproduct->stock_reel < ($line->qty - $alreadyconsumed)) {
|
||||
print img_warning($langs->trans('StockTooLow')) . ' ';
|
||||
}
|
||||
print price2num($tmpproduct->stock_reel, 'MS'); // Available
|
||||
if (empty($conf->global->STOCK_CONSUMPTION_FROM_MANUFACTURING_WAREHOUSE) || empty($tmpwarehouse->id)) {
|
||||
print price2num($tmpproduct->stock_reel, 'MS'); // Available
|
||||
} else {
|
||||
// Print only the stock in the selected warehouse
|
||||
$tmpproduct->load_stock();
|
||||
$wh_stock = $tmpproduct->stock_warehouse[$tmpwarehouse->id];
|
||||
if (!empty($wh_stock)) {
|
||||
print price2num($wh_stock->real, 'MS');
|
||||
} else {
|
||||
print "0";
|
||||
}
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
@ -1123,6 +1143,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
});
|
||||
</script>';
|
||||
|
||||
if (in_array($action, array('consumeorproduce', 'consumeandproduceall')) &&
|
||||
!empty($conf->global->STOCK_CONSUMPTION_FROM_MANUFACTURING_WAREHOUSE)) {
|
||||
print '<script>$(document).ready(function () {
|
||||
$("#fk_default_warehouse").change();
|
||||
});</script>';
|
||||
}
|
||||
|
||||
// Lines to produce
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
* Copyright (C) 2019 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2023 Vincent de Grandpré <vincent@de-grandpre.quebec>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -172,7 +173,44 @@ if (!empty($search_categ) && $search_categ != '-1') {
|
||||
}
|
||||
$sql .= ")";
|
||||
}
|
||||
$sql .= " AND EXISTS (SELECT e.rowid FROM ".MAIN_DB_PREFIX."entrepot as e WHERE e.rowid = s.fk_entrepot AND e.entity IN (".getEntity('stock')."))";
|
||||
if (empty($conf->global->PRODUCT_STOCK_LIST_SHOW_VIRTUAL_WITH_NO_PHYSICAL)) {
|
||||
$sql .= " AND EXISTS (SELECT e.rowid FROM ".MAIN_DB_PREFIX."entrepot as e WHERE e.rowid = s.fk_entrepot AND e.entity IN (".getEntity('stock')."))";
|
||||
} else {
|
||||
$sql .= " AND
|
||||
(
|
||||
EXISTS
|
||||
(SELECT e.rowid
|
||||
FROM ".MAIN_DB_PREFIX."entrepot as e
|
||||
WHERE e.rowid = s.fk_entrepot AND e.entity IN (".getEntity('stock')."))
|
||||
OR (
|
||||
SELECT SUM(cd1.qty) as qty
|
||||
FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd1
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c1
|
||||
ON c1.rowid = cd1.fk_commande
|
||||
WHERE c1.entity IN (1) AND cd1.fk_product = p.rowid AND c1.fk_statut in (3,4) AND cd1.qty <> 0
|
||||
) IS NOT NULL
|
||||
OR (
|
||||
SELECT SUM(cd2.qty) as qty
|
||||
FROM ".MAIN_DB_PREFIX."commandedet as cd2
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."commande as c2 ON c2.rowid = cd2.fk_commande
|
||||
WHERE c2.entity IN (1) AND cd2.fk_product = p.rowid AND c2.fk_statut in (1,2) AND cd2.qty <> 0
|
||||
) IS NOT NULL
|
||||
OR (
|
||||
SELECT SUM(ed3.qty) as qty
|
||||
FROM ".MAIN_DB_PREFIX."expeditiondet as ed3
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."expedition as e3 ON e3.rowid = ed3.fk_expedition
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."commandedet as cd3 ON ed3.fk_origin_line = cd3.rowid
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."commande as c3 ON c3.rowid = cd3.fk_commande
|
||||
WHERE e3.entity IN (1) AND cd3.fk_product = p.rowid AND c3.fk_statut IN (1,2) AND e3.fk_statut IN (1,2) AND ed3.qty <> 0
|
||||
) IS NOT NULL
|
||||
OR (
|
||||
SELECT SUM(mp4.qty) as qty
|
||||
FROM ".MAIN_DB_PREFIX."mrp_production as mp4
|
||||
LEFT JOIN ".MAIN_DB_PREFIX."mrp_mo as m4 ON m4.rowid = mp4.fk_mo AND m4.entity IN (1) AND m4.status IN (1,2)
|
||||
WHERE mp4.fk_product = p.rowid AND mp4.qty <> 0
|
||||
) IS NOT NULL
|
||||
) ";
|
||||
}
|
||||
if ($sall) {
|
||||
$sql .= natural_search(array('p.ref', 'p.label', 'p.description', 'p.note'), $sall);
|
||||
}
|
||||
|
||||
@ -123,10 +123,10 @@ button.dropdown-item.global-search-item {
|
||||
|
||||
|
||||
/* CSS to hide the arrow to show open/close */
|
||||
div#topmenu-quickadd-dropdown, div#topmenu-bookmark-dropdown {
|
||||
div#topmenu-global-search-dropdown, div#topmenu-quickadd-dropdown, div#topmenu-bookmark-dropdown {
|
||||
padding-right: 5px;
|
||||
}
|
||||
div#topmenu-quickadd-dropdown a::after, div#topmenu-bookmark-dropdown a::after {
|
||||
div#topmenu-global-search-dropdown a::after, div#topmenu-quickadd-dropdown a::after, div#topmenu-bookmark-dropdown a::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -290,7 +290,7 @@ a.top-menu-dropdown-link {
|
||||
}
|
||||
|
||||
|
||||
#topmenu-login-dropdown, #topmenu-bookmark-dropdown, #topmenu-global-search-dropdown {
|
||||
#topmenu-login-dropdown, #topmenu-quickadd-dropdown, #topmenu-bookmark-dropdown, #topmenu-global-search-dropdown {
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
#topmenu-login-dropdown a:hover{
|
||||
@ -396,15 +396,15 @@ a.dropdown-item {
|
||||
content: "\f35d";
|
||||
}
|
||||
|
||||
.dropdown-item.active, .dropdown-item:hover, .dropdown-item:hover span::before, .dropdown-item:focus {
|
||||
.dropdown-item.active, .dropdown-item:hover, .dropdown-item:hover span::before, .dropdown-item:focus, .dropdown-item:focus span::before {
|
||||
color: #<?php echo $colortextbackhmenu; ?> !important;
|
||||
text-decoration: none;
|
||||
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
||||
}
|
||||
|
||||
/*
|
||||
* SEARCH
|
||||
*/
|
||||
* SEARCH
|
||||
*/
|
||||
|
||||
.dropdown-search-input {
|
||||
width: 100%;
|
||||
@ -436,9 +436,30 @@ a.dropdown-item {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.search-dropdown-body {
|
||||
padding: unset;
|
||||
}
|
||||
|
||||
.global-search-item {
|
||||
font-size: 1em;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
.global-search-item:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.global-search-header {
|
||||
color: #444 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* QUICK ADD
|
||||
*/
|
||||
|
||||
#topmenu-quickadd-dropdown .dropdown-menu {
|
||||
width: 310px !important;
|
||||
color: #444;
|
||||
@ -449,6 +470,7 @@ a.dropdown-item {
|
||||
}
|
||||
|
||||
.quickadd-item {
|
||||
font-size: 1em;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
@ -21,9 +21,15 @@ button.dropdown-item.global-search-item {
|
||||
}
|
||||
|
||||
|
||||
#topmenu-quickadd-dropdown a.login-dropdown-a, #topmenu-bookmark-dropdown a.login-dropdown-a {
|
||||
#topmenu-global-search-dropdown a.login-dropdown-a, #topmenu-quickadd-dropdown a.login-dropdown-a, #topmenu-bookmark-dropdown a.login-dropdown-a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div#topmenu-global-search-dropdown {
|
||||
position: fixed;
|
||||
<?php echo $right; ?>: 90px;
|
||||
top: 0px;
|
||||
}
|
||||
div#topmenu-quickadd-dropdown {
|
||||
position: fixed;
|
||||
<?php echo $right; ?>: 55px;
|
||||
@ -40,7 +46,7 @@ div#topmenu-bookmark-dropdown {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#topmenu-quickadd-dropdown .dropdown-menu, #topmenu-bookmark-dropdown .dropdown-menu {
|
||||
#topmenu-global-search-dropdown .dropdown-menu, #topmenu-quickadd-dropdown .dropdown-menu, #topmenu-bookmark-dropdown .dropdown-menu {
|
||||
min-width: 300px;
|
||||
max-width: 360px;
|
||||
}
|
||||
@ -125,10 +131,10 @@ button.dropdown-item.global-search-item {
|
||||
|
||||
|
||||
/* CSS to hide the arrow to show open/close */
|
||||
div#topmenu-quickadd-dropdown, div#topmenu-bookmark-dropdown {
|
||||
div#topmenu-global-search-dropdown, , div#topmenu-quickadd-dropdown, div#topmenu-bookmark-dropdown {
|
||||
padding-right: 2px;
|
||||
}
|
||||
div#topmenu-quickadd-dropdown a::after, div#topmenu-bookmark-dropdown a::after {
|
||||
div#topmenu-global-search-dropdown a::after, div#topmenu-quickadd-dropdown a::after, div#topmenu-bookmark-dropdown a::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -162,8 +168,9 @@ div#topmenu-quickadd-dropdown a::after, div#topmenu-bookmark-dropdown a::after {
|
||||
}
|
||||
|
||||
/*
|
||||
* MENU Dropdown
|
||||
*/
|
||||
* MENU Dropdown
|
||||
*/
|
||||
|
||||
.login_block.usedropdown .logout-btn{
|
||||
/* display: none; */
|
||||
}
|
||||
@ -400,15 +407,15 @@ a.dropdown-item {
|
||||
content: "\f35d";
|
||||
}
|
||||
|
||||
.dropdown-item.active, .dropdown-item:hover, .dropdown-item:hover::before, .dropdown-item:hover span::before, .dropdown-item:focus {
|
||||
.dropdown-item.active, .dropdown-item:hover, .dropdown-item:hover::before, .dropdown-item:hover span::before, .dropdown-item:focus, .dropdown-item:focus span::before {
|
||||
color: #<?php echo $colortextbackhmenu; ?> !important;
|
||||
text-decoration: none;
|
||||
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
||||
}
|
||||
|
||||
/*
|
||||
* SEARCH
|
||||
*/
|
||||
* SEARCH
|
||||
*/
|
||||
|
||||
.dropdown-search-input {
|
||||
width: 100%;
|
||||
@ -434,6 +441,92 @@ a.dropdown-item {
|
||||
|
||||
}
|
||||
|
||||
.search-dropdown-body {
|
||||
padding: unset;
|
||||
}
|
||||
|
||||
.global-search-item {
|
||||
font-size: 1em;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
.global-search-item:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.global-search-header {
|
||||
color: #444 !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* QUICK ADD
|
||||
*/
|
||||
|
||||
#topmenu-quickadd-dropdown .dropdown-menu {
|
||||
width: 310px !important;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.quickadd-body.dropdown-body {
|
||||
padding: unset;
|
||||
}
|
||||
|
||||
.quickadd-item {
|
||||
font-size: 1em;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
.quickadd-item:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.quickadd-header {
|
||||
color: #444 !important;
|
||||
}
|
||||
|
||||
div.quickadd {
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-align-content: center;
|
||||
-ms-flex-line-pack: center;
|
||||
align-content: center;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
div.quickadd a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.quickadd a:hover, div.quickadd a:active {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
div.quickaddblock {
|
||||
width: 95px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
div.quickaddblock:hover,
|
||||
div.quickaddblock:active,
|
||||
div.quickaddblock:focus {
|
||||
background: <?php print $colorbacklinepair1; ?>;
|
||||
}
|
||||
|
||||
|
||||
/* for the dropdown on action buttons */
|
||||
dropdown-holder {
|
||||
@ -491,6 +584,7 @@ dropdown-holder {
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
div#topmenu-global-search-dropdown,
|
||||
div#topmenu-quickadd-dropdown,
|
||||
div#topmenu-bookmark-dropdown {
|
||||
position: unset;
|
||||
|
||||
@ -2239,7 +2239,7 @@ td.showDragHandle {
|
||||
if (in_array($conf->browser->layout, array('phone', 'tablet')) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||
} else { ?>
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
top: 75px;
|
||||
<?php } ?>
|
||||
z-index: 90;
|
||||
-webkit-transform: translateZ(0);
|
||||
@ -2366,7 +2366,7 @@ div.backgroundsemitransparent {
|
||||
z-index: 91;
|
||||
background: var(--colorbackvmenu1);
|
||||
border-right: 1px solid rgba(0,0,0,0.3);
|
||||
padding-top: 20px;
|
||||
/* padding-top: 20px; */
|
||||
<?php
|
||||
if (in_array($conf->browser->layout, array('phone', 'tablet')) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { ?>
|
||||
top: 66px ! important;
|
||||
@ -3430,7 +3430,7 @@ a.vsmenu.addbookmarkpicto {
|
||||
}
|
||||
div.blockvmenufirst {
|
||||
padding-top: 10px;
|
||||
/* border-top: 1px solid #e0e0e0; */
|
||||
border-top: 1px solid #e0e0e0;
|
||||
}
|
||||
div.blockvmenusearch, div.blockvmenubookmarks
|
||||
{
|
||||
|
||||
@ -26,6 +26,8 @@
|
||||
* DOL_URL_ROOT.'/viewimage.php?hashp=sharekey
|
||||
*/
|
||||
|
||||
define('MAIN_SECURITY_FORCECSP', "default-src: 'none'");
|
||||
|
||||
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
||||
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language
|
||||
if (!defined('NOREQUIRESOC')) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user