Some fix on MAIN_TOP_MENU_DROPDOWN option

This commit is contained in:
Laurent Destailleur 2019-03-22 11:49:10 +01:00
parent c43cf843a9
commit 3b4ea82741
3 changed files with 59 additions and 53 deletions

View File

@ -1583,8 +1583,8 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
} }
$loginBlockMoreClass = ''; $loginBlockMoreClass = '';
if(!empty($conf->global->MAIN_TOP_MENU_DROPDOWN)){ $loginBlockMoreClass = 'usedropdown'; } if (!empty($conf->global->MAIN_TOP_MENU_DROPDOWN)) { $loginBlockMoreClass = 'usedropdown'; }
print '<div class="login_block '.$loginBlockMoreClass.'">'."\n"; print '<div class="login_block '.$loginBlockMoreClass.'">'."\n";
// Add login user link // Add login user link
@ -1593,11 +1593,11 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
// Login name with photo and tooltip // Login name with photo and tooltip
$mode=-1; $mode=-1;
$toprightmenu.='<div class="inline-block nowrap"><div class="inline-block login_block_elem login_block_elem_name" style="padding: 0px;">'; $toprightmenu.='<div class="inline-block nowrap"><div class="inline-block login_block_elem login_block_elem_name" style="padding: 0px;">';
if(empty($conf->global->MAIN_TOP_MENU_DROPDOWN)){ if (empty($conf->global->MAIN_TOP_MENU_DROPDOWN)){
$toprightmenu.=$user->getNomUrl($mode, '', 1, 0, 11, 0, ($user->firstname ? 'firstname' : -1), 'atoplogin'); $toprightmenu.= $user->getNomUrl($mode, '', 1, 0, 11, 0, ($user->firstname ? 'firstname' : -1), 'atoplogin');
} }
else{ else {
$toprightmenu.= top_menu_user($user, $langs); $toprightmenu.= top_menu_user($user, $langs);
} }
$toprightmenu.='</div></div>'; $toprightmenu.='</div></div>';
@ -1692,7 +1692,7 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
} }
} }
// Logout link // Logout link
$toprightmenu.=@Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem logout-btn', 2); $toprightmenu.=@Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem logout-btn', 2);
@ -1712,30 +1712,35 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
} }
/**
function top_menu_user(user $user, $langs){ * Build the tooltip on user login
*
* @param user $user User object
* @param Translate $langs Language object
* @return string HTML content
*/
function top_menu_user(User $user, Translate $langs)
{
global $langs, $conf, $db, $hookmanager, $user; global $langs, $conf, $db, $hookmanager, $user;
global $dolibarr_main_authentication, $dolibarr_main_demo; global $dolibarr_main_authentication, $dolibarr_main_demo;
global $menumanager; global $menumanager;
$userImage = $userDropDownImage = ''; $userImage = $userDropDownImage = '';
if (! empty($user->photo)) if (! empty($user->photo))
{ {
$userImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'photouserphoto userphoto', 'small', 0, 1); $userImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'photouserphoto userphoto', 'small', 0, 1);
$userDropDownImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'dropdown-user-image', 'small', 0, 1); $userDropDownImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'dropdown-user-image', 'small', 0, 1);
} }
$dropdownBody = ''; $dropdownBody = '';
$dropdownBody.= '<span id="topmenuloginmoreinfo-btn"><i class="fa fa-caret-right"></i> '.$langs->trans("ShowMoreInfos").'</span>'; $dropdownBody.= '<span id="topmenuloginmoreinfo-btn"><i class="fa fa-caret-right"></i> '.$langs->trans("ShowMoreInfos").'</span>';
$dropdownBody.= '<div id="topmenuloginmoreinfo" >'; $dropdownBody.= '<div id="topmenuloginmoreinfo" >';
// login infos // login infos
if (!empty($user->admin)){ if (!empty($user->admin)) {
$dropdownBody.= '<br><b>' . $langs->trans("Administrator").'</b>: '.yn($user->admin); $dropdownBody.= '<br><b>' . $langs->trans("Administrator").'</b>: '.yn($user->admin);
} }
if (! empty($user->socid) ) // Add thirdparty for external users if (! empty($user->socid)) // Add thirdparty for external users
{ {
$thirdpartystatic = new Societe($db); $thirdpartystatic = new Societe($db);
$thirdpartystatic->fetch($user->socid); $thirdpartystatic->fetch($user->socid);
@ -1745,7 +1750,8 @@ function top_menu_user(user $user, $langs){
$type=($user->socid?$langs->trans("External").$company:$langs->trans("Internal")); $type=($user->socid?$langs->trans("External").$company:$langs->trans("Internal"));
$dropdownBody.= '<br><b>' . $langs->trans("Type") . ':</b> ' . $type; $dropdownBody.= '<br><b>' . $langs->trans("Type") . ':</b> ' . $type;
$dropdownBody.= '<br><b>' . $langs->trans("Status").'</b>: '.$user->getLibStatut(0); $dropdownBody.= '<br><b>' . $langs->trans("Status").'</b>: '.$user->getLibStatut(0);
$dropdownBody.= '<br>';
$dropdownBody.= '<br><u>'.$langs->trans("Connection").'</u>'; $dropdownBody.= '<br><u>'.$langs->trans("Connection").'</u>';
$dropdownBody.= '<br><b>'.$langs->trans("IPAddress").'</b>: '.$_SERVER["REMOTE_ADDR"]; $dropdownBody.= '<br><b>'.$langs->trans("IPAddress").'</b>: '.$_SERVER["REMOTE_ADDR"];
if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) $dropdownBody.= '<br><b>'.$langs->trans("ConnectedOnMultiCompany").':</b> '.$conf->entity.' (user entity '.$user->entity.')'; if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) $dropdownBody.= '<br><b>'.$langs->trans("ConnectedOnMultiCompany").':</b> '.$conf->entity.' (user entity '.$user->entity.')';
@ -1762,7 +1768,7 @@ function top_menu_user(user $user, $langs){
if ($conf->browser->layout == 'phone') $dropdownBody.= '<br><b>'.$langs->trans("Phone").':</b> '.$langs->trans("Yes"); if ($conf->browser->layout == 'phone') $dropdownBody.= '<br><b>'.$langs->trans("Phone").':</b> '.$langs->trans("Yes");
if (! empty($_SESSION["disablemodules"])) $dropdownBody.= '<br><b>'.$langs->trans("DisabledModules").':</b> <br>'.join(', ', explode(',', $_SESSION["disablemodules"])); if (! empty($_SESSION["disablemodules"])) $dropdownBody.= '<br><b>'.$langs->trans("DisabledModules").':</b> <br>'.join(', ', explode(',', $_SESSION["disablemodules"]));
$dropdownBody.= '</div>'; $dropdownBody.= '</div>';
// Execute hook // Execute hook
$parameters=array('user'=>$user, 'langs' => $langs); $parameters=array('user'=>$user, 'langs' => $langs);
$result=$hookmanager->executeHooks('printTopRightMenuLoginDropdownBody', $parameters); // Note that $action and $object may have been modified by some hooks $result=$hookmanager->executeHooks('printTopRightMenuLoginDropdownBody', $parameters); // Note that $action and $object may have been modified by some hooks
@ -1773,26 +1779,26 @@ function top_menu_user(user $user, $langs){
} }
else{ else{
$dropdownBody = $hookmanager->resPrint; // replace $dropdownBody = $hookmanager->resPrint; // replace
} }
} }
$logoutLink ='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/logout.php" class="button-top-menu-dropdown" ><i class="fa fa-sign-out-alt"></i> '.$langs->trans("Logout").'</a>'; $logoutLink ='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/logout.php" class="button-top-menu-dropdown" ><i class="fa fa-sign-out-alt"></i> '.$langs->trans("Logout").'</a>';
$profilLink ='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="button-top-menu-dropdown" ><i class="fa fa-user"></i> '.$langs->trans("Card").'</a>'; $profilLink ='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="button-top-menu-dropdown" ><i class="fa fa-user"></i> '.$langs->trans("Card").'</a>';
$profilName = $user->getFullName($langs).' ('.$user->login.')'; $profilName = $user->getFullName($langs).' ('.$user->login.')';
if($user->admin){ if($user->admin){
$profilName = '<i class="far fa-star classfortooltip" title="'.$langs->trans("Administrator").'" ></i> '.$profilName; $profilName = '<i class="far fa-star classfortooltip" title="'.$langs->trans("Administrator").'" ></i> '.$profilName;
} }
$btnUser = ' $btnUser = '
<div id="topmenu-login-dropdown" class="userimg atoplogin dropdown user user-menu"> <div id="topmenu-login-dropdown" class="userimg atoplogin dropdown user user-menu">
<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="dropdown-toggle" data-toggle="dropdown"> <a href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="dropdown-toggle" data-toggle="dropdown">
'.$userImage.' '.$userImage.'
<span class="hidden-xs">'.($user->firstname ? $user->firstname : $user->login).'</span> <span class="hidden-xs maxwidth200">'.dol_trunc($user->firstname ? $user->firstname : $user->login, 11).'</span>
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<!-- User image --> <!-- User image -->
@ -1807,7 +1813,7 @@ function top_menu_user(user $user, $langs){
<!-- Menu Body --> <!-- Menu Body -->
<div class="user-body">'.$dropdownBody.'</div> <div class="user-body">'.$dropdownBody.'</div>
<!-- Menu Footer--> <!-- Menu Footer-->
<div class="user-footer"> <div class="user-footer">
<div class="pull-left"> <div class="pull-left">
@ -1821,29 +1827,29 @@ function top_menu_user(user $user, $langs){
</div> </div>
</div> </div>
<script> <script>
$( document ).ready(function() { $( document ).ready(function() {
$(document).on("click", function(event) { $(document).on("click", function(event) {
if (!$(event.target).closest("#topmenu-login-dropdown").length) { if (!$(event.target).closest("#topmenu-login-dropdown").length) {
// Hide the menus. // Hide the menus.
$("#topmenu-login-dropdown").removeClass("open"); $("#topmenu-login-dropdown").removeClass("open");
} }
}); });
$("#topmenu-login-dropdown .dropdown-toggle").on("click", function(event) { $("#topmenu-login-dropdown .dropdown-toggle").on("click", function(event) {
event.preventDefault(); event.preventDefault();
$("#topmenu-login-dropdown").toggleClass("open"); $("#topmenu-login-dropdown").toggleClass("open");
}); });
$("#topmenuloginmoreinfo-btn").on("click", function() { $("#topmenuloginmoreinfo-btn").on("click", function() {
$("#topmenuloginmoreinfo").slideToggle(); $("#topmenuloginmoreinfo").slideToggle();
}); });
}); });
</script> </script>
'; ';
return $btnUser; return $btnUser;
} }

View File

@ -4,7 +4,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
/* /*
Dropdown Dropdown
*/ */
.open>.dropdown-menu{ /*, #topmenu-login-dropdown:hover .dropdown-menu*/ .open>.dropdown-menu{ /*, #topmenu-login-dropdown:hover .dropdown-menu*/
display: block; display: block;
@ -40,12 +40,12 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
/* /*
* MENU Dropdown * MENU Dropdown
*/ */
.login_block.usedropdown .logout-btn{ .login_block.usedropdown .logout-btn{
display: none; display: none;
} }
.tmenu .open.dropdown, .login_block .open.dropdown, .tmenu .open.dropdown, .login_block .dropdown:hover{ .tmenu .open.dropdown, .login_block .open.dropdown, .tmenu .open.dropdown, .login_block .dropdown:hover{
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
} }
@ -79,6 +79,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
height: 175px; height: 175px;
padding: 10px; padding: 10px;
text-align: center; text-align: center;
white-space: normal;
} }
.dropdown-user-image { .dropdown-user-image {
@ -166,4 +167,3 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
background-color: #f4f4f4; background-color: #f4f4f4;
border-color: #ddd; border-color: #ddd;
} }

View File

@ -1862,7 +1862,7 @@ div.login_block_user {
/*<?php if (empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { ?> /*<?php if (empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { ?>
min-width: 120px; min-width: 120px;
<?php } ?>*/ <?php } ?>*/
} }
div.login_block_other { div.login_block_other {
display: inline-block; display: inline-block;
@ -1879,7 +1879,6 @@ div.login_block_other { padding-top: 0; text-align: right; }
} }
.atoplogin, .atoplogin:hover { .atoplogin, .atoplogin:hover {
color: #<?php echo $colortextbackhmenu; ?> !important; color: #<?php echo $colortextbackhmenu; ?> !important;
font-weight: normal !important;
} }
.login_block_getinfo { .login_block_getinfo {
text-align: center; text-align: center;
@ -5714,6 +5713,7 @@ div.tabsElem a.tab {
} }
.login_block_elem { .login_block_elem {
padding: 0 !important; padding: 0 !important;
height: 38px;
} }
li.tmenu, li.tmenusel { li.tmenu, li.tmenusel {
min-width: 32px; min-width: 32px;