git push origin developMerge branch 'atm-john-theme_top_menu_login' into develop
This commit is contained in:
commit
d892b92450
@ -964,4 +964,5 @@ SelectAThirdPartyFirst=Select a third party first...
|
||||
YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
|
||||
Inventory=Inventory
|
||||
AnalyticCode=Analytic code
|
||||
TMenuMRP=MRP
|
||||
TMenuMRP=MRP
|
||||
ShowMoreInfos=Show More Infos
|
||||
@ -1582,7 +1582,10 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
||||
}
|
||||
}
|
||||
|
||||
print '<div class="login_block">'."\n";
|
||||
$loginBlockMoreClass = '';
|
||||
if (!empty($conf->global->MAIN_TOP_MENU_DROPDOWN)) { $loginBlockMoreClass = 'usedropdown'; }
|
||||
|
||||
print '<div class="login_block '.$loginBlockMoreClass.'">'."\n";
|
||||
|
||||
// Add login user link
|
||||
$toprightmenu.='<div class="login_block_user">';
|
||||
@ -1590,7 +1593,13 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
||||
// Login name with photo and tooltip
|
||||
$mode=-1;
|
||||
$toprightmenu.='<div class="inline-block nowrap"><div class="inline-block login_block_elem login_block_elem_name" style="padding: 0px;">';
|
||||
$toprightmenu.=$user->getNomUrl($mode, '', 1, 0, 11, 0, ($user->firstname ? 'firstname' : -1), 'atoplogin');
|
||||
|
||||
if (empty($conf->global->MAIN_TOP_MENU_DROPDOWN)){
|
||||
$toprightmenu.= $user->getNomUrl($mode, '', 1, 0, 11, 0, ($user->firstname ? 'firstname' : -1), 'atoplogin');
|
||||
}
|
||||
else {
|
||||
$toprightmenu.= top_menu_user($user, $langs);
|
||||
}
|
||||
$toprightmenu.='</div></div>';
|
||||
|
||||
$toprightmenu.='</div>'."\n";
|
||||
@ -1683,8 +1692,9 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Logout link
|
||||
$toprightmenu.=@Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem', 2);
|
||||
$toprightmenu.=@Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem logout-btn', 2);
|
||||
|
||||
$toprightmenu.='</div>';
|
||||
|
||||
@ -1702,6 +1712,147 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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 $dolibarr_main_authentication, $dolibarr_main_demo;
|
||||
global $menumanager;
|
||||
|
||||
$userImage = $userDropDownImage = '';
|
||||
if (! empty($user->photo))
|
||||
{
|
||||
$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);
|
||||
}
|
||||
|
||||
$dropdownBody = '';
|
||||
$dropdownBody.= '<span id="topmenuloginmoreinfo-btn"><i class="fa fa-caret-right"></i> '.$langs->trans("ShowMoreInfos").'</span>';
|
||||
$dropdownBody.= '<div id="topmenuloginmoreinfo" >';
|
||||
|
||||
// login infos
|
||||
if (!empty($user->admin)) {
|
||||
$dropdownBody.= '<br><b>' . $langs->trans("Administrator").'</b>: '.yn($user->admin);
|
||||
}
|
||||
if (! empty($user->socid)) // Add thirdparty for external users
|
||||
{
|
||||
$thirdpartystatic = new Societe($db);
|
||||
$thirdpartystatic->fetch($user->socid);
|
||||
$companylink = ' '.$thirdpartystatic->getNomUrl(2); // picto only of company
|
||||
$company=' ('.$langs->trans("Company").': '.$thirdpartystatic->name.')';
|
||||
}
|
||||
$type=($user->socid?$langs->trans("External").$company:$langs->trans("Internal"));
|
||||
$dropdownBody.= '<br><b>' . $langs->trans("Type") . ':</b> ' . $type;
|
||||
$dropdownBody.= '<br><b>' . $langs->trans("Status").'</b>: '.$user->getLibStatut(0);
|
||||
$dropdownBody.= '<br>';
|
||||
|
||||
$dropdownBody.= '<br><u>'.$langs->trans("Connection").'</u>';
|
||||
$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.')';
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("AuthenticationMode").':</b> '.$_SESSION["dol_authmode"].(empty($dolibarr_main_demo)?'':' (demo)');
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("ConnectedSince").':</b> '.dol_print_date($user->datelastlogin, "dayhour", 'tzuser');
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("PreviousConnexion").':</b> '.dol_print_date($user->datepreviouslogin, "dayhour", 'tzuser');
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("CurrentTheme").':</b> '.$conf->theme;
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("CurrentMenuManager").':</b> '.$menumanager->name;
|
||||
$langFlag=picto_from_langcode($langs->getDefaultLang());
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("CurrentUserLanguage").':</b> '.($langFlag?$langFlag.' ':'').$langs->getDefaultLang();
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("Browser").':</b> '.$conf->browser->name.($conf->browser->version?' '.$conf->browser->version:'').' ('.$_SERVER['HTTP_USER_AGENT'].')';
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("Layout").':</b> '.$conf->browser->layout;
|
||||
$dropdownBody.= '<br><b>'.$langs->trans("Screen").':</b> '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight'];
|
||||
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"]));
|
||||
$dropdownBody.= '</div>';
|
||||
|
||||
// Execute hook
|
||||
$parameters=array('user'=>$user, 'langs' => $langs);
|
||||
$result=$hookmanager->executeHooks('printTopRightMenuLoginDropdownBody', $parameters); // Note that $action and $object may have been modified by some hooks
|
||||
if (is_numeric($result))
|
||||
{
|
||||
if ($result == 0){
|
||||
$dropdownBody.= $hookmanager->resPrint; // add
|
||||
}
|
||||
else{
|
||||
$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>';
|
||||
$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.')';
|
||||
|
||||
if($user->admin){
|
||||
$profilName = '<i class="far fa-star classfortooltip" title="'.$langs->trans("Administrator").'" ></i> '.$profilName;
|
||||
}
|
||||
|
||||
$btnUser = '
|
||||
<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">
|
||||
'.$userImage.'
|
||||
<span class="hidden-xs maxwidth200">'.dol_trunc($user->firstname ? $user->firstname : $user->login, 11).'</span>
|
||||
</a>
|
||||
<div class="dropdown-menu">
|
||||
<!-- User image -->
|
||||
<div class="user-header">
|
||||
'.$userDropDownImage.'
|
||||
|
||||
<p>
|
||||
'.$profilName.'
|
||||
<br/><small class="classfortooltip" title="'.$langs->trans("PreviousConnexion").'" ><i class="fa fa-user-clock"></i> '.dol_print_date($user->datepreviouslogin, "dayhour", 'tzuser').'</small>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Menu Body -->
|
||||
<div class="user-body">'.$dropdownBody.'</div>
|
||||
|
||||
<!-- Menu Footer-->
|
||||
<div class="user-footer">
|
||||
<div class="pull-left">
|
||||
'.$profilLink.'
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
'.$logoutLink.'
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$(document).on("click", function(event) {
|
||||
if (!$(event.target).closest("#topmenu-login-dropdown").length) {
|
||||
// Hide the menus.
|
||||
$("#topmenu-login-dropdown").removeClass("open");
|
||||
}
|
||||
});
|
||||
|
||||
$("#topmenu-login-dropdown .dropdown-toggle").on("click", function(event) {
|
||||
event.preventDefault();
|
||||
$("#topmenu-login-dropdown").toggleClass("open");
|
||||
});
|
||||
|
||||
$("#topmenuloginmoreinfo-btn").on("click", function() {
|
||||
$("#topmenuloginmoreinfo").slideToggle();
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
';
|
||||
|
||||
|
||||
return $btnUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show left menu bar
|
||||
*
|
||||
|
||||
169
htdocs/theme/eldy/dropdown.css.php
Normal file
169
htdocs/theme/eldy/dropdown.css.php
Normal file
@ -0,0 +1,169 @@
|
||||
<?php
|
||||
if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
||||
/* <style type="text/css" > */
|
||||
/*
|
||||
Dropdown
|
||||
*/
|
||||
|
||||
|
||||
.open>.dropdown-menu{ /*, #topmenu-login-dropdown:hover .dropdown-menu*/
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
box-shadow: none;
|
||||
border-color: #eee;
|
||||
}
|
||||
.dropdown-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 1000;
|
||||
display: none;
|
||||
float: left;
|
||||
min-width: 160px;
|
||||
padding: 5px 0;
|
||||
margin: 2px 0 0;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
background-color: #fff;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid rgba(0,0,0,.15);
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
|
||||
box-shadow: 0 6px 12px rgba(0,0,0,.175);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* MENU Dropdown
|
||||
*/
|
||||
.login_block.usedropdown .logout-btn{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmenu .open.dropdown, .login_block .open.dropdown, .tmenu .open.dropdown, .login_block .dropdown:hover{
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tmenu .dropdown-menu, .login_block .dropdown-menu {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: auto;
|
||||
line-height:1.3em;
|
||||
}
|
||||
.tmenu .dropdown-menu, .login_block .dropdown-menu .user-body {
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
.user-body {
|
||||
color: #333;
|
||||
}
|
||||
.side-nav-vert .user-menu .dropdown-menu {
|
||||
border-top-right-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
padding: 1px 0 0 0;
|
||||
border-top-width: 0;
|
||||
width: 280px;
|
||||
}
|
||||
.side-nav-vert .user-menu .dropdown-menu {
|
||||
margin-top: 0;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.side-nav-vert .user-menu .dropdown-menu > .user-header {
|
||||
height: 175px;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.dropdown-user-image {
|
||||
border-radius: 50%;
|
||||
vertical-align: middle;
|
||||
z-index: 5;
|
||||
height: 90px;
|
||||
width: 90px;
|
||||
border: 3px solid;
|
||||
border-color: transparent;
|
||||
border-color: rgba(255, 255, 255, 0.2);
|
||||
max-width: 100%;
|
||||
max-height :100%;
|
||||
}
|
||||
|
||||
.dropdown-menu > .user-header{
|
||||
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
||||
}
|
||||
|
||||
.dropdown-menu > .user-footer {
|
||||
background-color: #f9f9f9;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.user-footer:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.dropdown-menu > .user-body {
|
||||
padding: 15px;
|
||||
border-bottom: 1px solid #f4f4f4;
|
||||
border-top: 1px solid #dddddd;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#topmenu-login-dropdown{
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
#topmenu-login-dropdown a:hover{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#topmenuloginmoreinfo-btn{
|
||||
display: block;
|
||||
text-aling: right;
|
||||
color:#666;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#topmenuloginmoreinfo{
|
||||
display: none;
|
||||
clear: both;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.button-top-menu-dropdown {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-image: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.user-footer .button-top-menu-dropdown {
|
||||
color: #666666;
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border-width: 1px;
|
||||
background-color: #f4f4f4;
|
||||
border-color: #ddd;
|
||||
}
|
||||
@ -263,7 +263,7 @@ hr { border: 0; border-top: 1px solid #ccc; }
|
||||
margin-top: 0;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
font-family: <?php print $fontlist ?>;
|
||||
font-family: <?php print $fontlist ?>;
|
||||
display: inline-block;
|
||||
padding: 4px 14px;
|
||||
text-align: center;
|
||||
@ -363,6 +363,9 @@ th .button {
|
||||
textarea.centpercent {
|
||||
width: 96%;
|
||||
}
|
||||
.small, small {
|
||||
font-size: 85%;
|
||||
}
|
||||
.center {
|
||||
text-align: center;
|
||||
margin: 0px auto;
|
||||
@ -376,6 +379,12 @@ textarea.centpercent {
|
||||
.justify {
|
||||
text-align: justify;
|
||||
}
|
||||
.pull-left {
|
||||
float: left!important;
|
||||
}
|
||||
.pull-right {
|
||||
float: right!important;
|
||||
}
|
||||
.nowrap {
|
||||
white-space: <?php print ($dol_optimize_smallscreen?'normal':'nowrap'); ?>;
|
||||
}
|
||||
@ -1312,6 +1321,16 @@ div#tmenu_tooltip {
|
||||
<?php } else { ?>
|
||||
padding-<?php echo $right; ?>: <?php echo ($maxwidthloginblock - 10); ?>px;
|
||||
<?php } ?>
|
||||
|
||||
-webkit-touch-callout: none; /* iOS Safari */
|
||||
-webkit-user-select: none; /* Safari */
|
||||
-khtml-user-select: none; /* Konqueror HTML */
|
||||
-moz-user-select: none; /* Firefox */
|
||||
-ms-user-select: none; /* Internet Explorer/Edge */
|
||||
user-select: none; /* Non-prefixed version, currently
|
||||
supported by Chrome and Opera */
|
||||
|
||||
|
||||
}
|
||||
|
||||
div.topmenuimage {
|
||||
@ -1810,13 +1829,15 @@ div.login_block {
|
||||
<?php print $right; ?>: 0;
|
||||
top: <?php print $disableimages?'4px':'0'; ?>;
|
||||
font-weight: bold;
|
||||
<?php echo (empty($disableimages) && $maxwidthloginblock)?'max-width: '.$maxwidthloginblock.'px;':''; ?>
|
||||
line-height: 10px;
|
||||
<?php // echo (empty($disableimages) && $maxwidthloginblock)?'max-width: '.$maxwidthloginblock.'px;':''; ?>
|
||||
<?php if (GETPOST('optioncss', 'aZ09') == 'print') { ?>
|
||||
display: none;
|
||||
<?php } ?>
|
||||
}
|
||||
div.login_block a {
|
||||
color: #<?php echo $colortextbackvmenu; ?>;
|
||||
color: #<?php echo $colortextbackhmenu; ?>;
|
||||
display: inline-block;
|
||||
}
|
||||
div.login_block table {
|
||||
display: inline;
|
||||
@ -1838,21 +1859,23 @@ div.login a:hover {
|
||||
}
|
||||
div.login_block_user {
|
||||
display: inline-block;
|
||||
padding-top: 3px;
|
||||
<?php if (empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { ?>
|
||||
/*<?php if (empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { ?>
|
||||
min-width: 120px;
|
||||
<?php } ?>
|
||||
<?php } ?>*/
|
||||
|
||||
}
|
||||
div.login_block_other {
|
||||
display: inline-block;
|
||||
clear: <?php echo $disableimages?'none':'both'; ?>;
|
||||
}
|
||||
div.login_block_other { padding-top: 3px; text-align: right; }
|
||||
div.login_block_other { padding-top: 0; text-align: right; }
|
||||
.login_block_elem {
|
||||
float: right;
|
||||
vertical-align: top;
|
||||
padding: 0px 3px 0px 4px !important;
|
||||
height: 16px;
|
||||
line-height: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
.atoplogin, .atoplogin:hover {
|
||||
color: #<?php echo $colortextbackhmenu; ?> !important;
|
||||
@ -1865,6 +1888,7 @@ div.login_block_other { padding-top: 3px; text-align: right; }
|
||||
}
|
||||
.login_block_getinfo .atoplogin, .login_block_getinfo .atoplogin:hover {
|
||||
color: #333 !important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
.alogin, .alogin:hover {
|
||||
font-weight: normal !important;
|
||||
@ -1885,9 +1909,10 @@ img.login, img.printer, img.entity {
|
||||
font-weight: bold;
|
||||
}
|
||||
.userimg.atoplogin img.userphoto, .userimgatoplogin img.userphoto { /* size for user photo in login bar */
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 8px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
background-size: contain;
|
||||
background-size: contain;
|
||||
}
|
||||
img.userphoto { /* size for user photo in lists */
|
||||
@ -5688,6 +5713,7 @@ div.tabsElem a.tab {
|
||||
}
|
||||
.login_block_elem {
|
||||
padding: 0 !important;
|
||||
height: 38px;
|
||||
}
|
||||
li.tmenu, li.tmenusel {
|
||||
min-width: 32px;
|
||||
@ -5719,3 +5745,6 @@ div.tabsElem a.tab {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<?php include dol_buildpath($path.'/theme/'.$theme.'/dropdown.css.php', 0); ?>
|
||||
|
||||
@ -1243,6 +1243,7 @@ div.login_block {
|
||||
/* border-right: none ! important; */
|
||||
top: inherit !important;
|
||||
}
|
||||
|
||||
.side-nav {
|
||||
<?php if (in_array($conf->browser->layout, array('phone','tablet')) && ((GETPOST('testmenuhider') || ! empty($conf->global->MAIN_TESTMENUHIDER)) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))) { ?>
|
||||
<?php } else { ?>
|
||||
@ -2003,6 +2004,10 @@ table.login_table_securitycode tr td {
|
||||
}
|
||||
|
||||
|
||||
.atoplogin.dropdown .dropdown-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.login_block {
|
||||
border-right: 1px solid rgba(0,0,0,0.3);
|
||||
padding-top: 5px;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user