Add action open close top dropdown menu
This commit is contained in:
parent
d8223bfe98
commit
ef241f70e7
@ -1722,6 +1722,9 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
|
|||||||
|
|
||||||
|
|
||||||
function top_menu_user(user $user, $langs){
|
function top_menu_user(user $user, $langs){
|
||||||
|
global $langs, $conf, $db, $hookmanager, $user;
|
||||||
|
global $dolibarr_main_authentication, $dolibarr_main_demo;
|
||||||
|
global $menumanager;
|
||||||
|
|
||||||
$userImage = $userDropDownImage = '';
|
$userImage = $userDropDownImage = '';
|
||||||
if (! empty($user->photo))
|
if (! empty($user->photo))
|
||||||
@ -1730,10 +1733,70 @@ function top_menu_user(user $user, $langs){
|
|||||||
$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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// login infos
|
||||||
|
$dropdownBody = '';
|
||||||
|
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.= '<div id="toplogin-moreinfo" >';
|
||||||
|
$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;
|
||||||
|
$s=picto_from_langcode($langs->getDefaultLang());
|
||||||
|
$dropdownBody.= '<br><b>'.$langs->trans("CurrentUserLanguage").':</b> '.($s?$s.' ':'').$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"]));
|
||||||
|
|
||||||
|
|
||||||
|
// 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" >'.$langs->trans("Logout").'</a>';
|
||||||
|
$profilLink ='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="button-top-menu-dropdown" >'.$langs->trans("Card").'</a>';
|
||||||
|
|
||||||
|
|
||||||
|
$profilName = $user->getFullName($langs).' ('.$user->login.')';
|
||||||
|
|
||||||
|
if($user->admin){
|
||||||
|
$profilName = '<i class="far fa-star" title="'.$langs->trans("Administrator").'" ></i> '.$profilName;
|
||||||
|
}
|
||||||
|
|
||||||
$btnUser = '
|
$btnUser = '
|
||||||
<div class="userimg atoplogin dropdown user user-menu open">
|
<div id="topmenu-login-dropdown" class="userimg atoplogin dropdown user user-menu">
|
||||||
<a href="#" 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">'.($user->firstname ? $user->firstname : $user->login).'</span>
|
||||||
</a>
|
</a>
|
||||||
@ -1741,41 +1804,42 @@ function top_menu_user(user $user, $langs){
|
|||||||
<!-- User image -->
|
<!-- User image -->
|
||||||
<div class="user-header">
|
<div class="user-header">
|
||||||
'.$userDropDownImage.'
|
'.$userDropDownImage.'
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
'.$user->getFullName($langs).'
|
'.$profilName.'
|
||||||
<small>'.dol_print_date($user->date_creation).'</small>
|
<br/><small>'.dol_print_date(time()).$user->date_creation.'</small>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Menu Body -->
|
<!-- Menu Body -->
|
||||||
<div class="user-body">
|
<div class="user-body">'.$dropdownBody.'</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-4 text-center">
|
|
||||||
<a href="#">btn01</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-4 text-center">
|
|
||||||
<a href="#">btn02</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-4 text-center">
|
|
||||||
<a href="#">btn03</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- /.row -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Menu Footer-->
|
<!-- Menu Footer-->
|
||||||
<div class="user-footer">
|
<div class="user-footer">
|
||||||
<div class="pull-left">
|
<div class="pull-left">
|
||||||
<a href="#" class="btn btn-default btn-flat">Profile</a>
|
'.$profilLink.'
|
||||||
</div>
|
</div>
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<a href="#" class="btn btn-default btn-flat">Sign out</a>
|
'.$logoutLink.'
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
$(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");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
';
|
';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
|||||||
.open>.dropdown-menu {
|
.open>.dropdown-menu {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-color: #eee;
|
border-color: #eee;
|
||||||
@ -42,15 +43,22 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
|||||||
* MENU Dropdown
|
* MENU Dropdown
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.tmenu .open.dropdown, .login_block .open.dropdown{
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
.tmenu .dropdown-menu, .login_block .dropdown-menu {
|
.tmenu .dropdown-menu, .login_block .dropdown-menu {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
left: auto;
|
left: auto;
|
||||||
|
line-height:1.3em;
|
||||||
}
|
}
|
||||||
.tmenu .dropdown-menu, .login_block .dropdown-menu .user-body {
|
.tmenu .dropdown-menu, .login_block .dropdown-menu .user-body {
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
}
|
}
|
||||||
|
.user-body {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
.side-nav-vert .user-menu .dropdown-menu {
|
.side-nav-vert .user-menu .dropdown-menu {
|
||||||
border-top-right-radius: 0;
|
border-top-right-radius: 0;
|
||||||
border-top-left-radius: 0;
|
border-top-left-radius: 0;
|
||||||
@ -70,17 +78,6 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.dropdown-menu > li.user-header > img {
|
|
||||||
z-index: 5;
|
|
||||||
height: 90px;
|
|
||||||
width: 90px;
|
|
||||||
border: 3px solid;
|
|
||||||
border-color: transparent;
|
|
||||||
border-color: rgba(255, 255, 255, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.dropdown-user-image {
|
.dropdown-user-image {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
@ -98,4 +95,52 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
|||||||
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown-menu > .user-footer {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu > .user-footer:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu > .user-body {
|
||||||
|
padding: 15px;
|
||||||
|
border-bottom: 1px solid #f4f4f4;
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu > .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;
|
||||||
|
}
|
||||||
|
|
||||||
@ -362,6 +362,9 @@ th .button {
|
|||||||
textarea.centpercent {
|
textarea.centpercent {
|
||||||
width: 96%;
|
width: 96%;
|
||||||
}
|
}
|
||||||
|
.small, small {
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
.center {
|
.center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 0px auto;
|
margin: 0px auto;
|
||||||
@ -375,6 +378,12 @@ textarea.centpercent {
|
|||||||
.justify {
|
.justify {
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
}
|
}
|
||||||
|
.pull-left {
|
||||||
|
float: left!important;
|
||||||
|
}
|
||||||
|
.pull-right {
|
||||||
|
float: right!important;
|
||||||
|
}
|
||||||
.nowrap {
|
.nowrap {
|
||||||
white-space: <?php print ($dol_optimize_smallscreen?'normal':'nowrap'); ?>;
|
white-space: <?php print ($dol_optimize_smallscreen?'normal':'nowrap'); ?>;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user