Merge pull request #11986 from atm-john/develop_dropdown_bookmark

NEW :  dropdown bookmark and search
This commit is contained in:
Laurent Destailleur 2019-10-03 18:18:31 +02:00 committed by GitHub
commit ad4aa39ec5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 546 additions and 55 deletions

View File

@ -150,3 +150,140 @@ function printBookmarksList($aDb, $aLangs)
return $ret;
}
/**
* Add area with bookmarks in top menu
*
* @param DoliDb $aDb Database handler
* @param Translate $aLangs Object lang
* @return string
*/
function printDropdownBookmarksList($aDb, $aLangs)
{
global $conf, $user;
$db = $aDb;
$langs = $aLangs;
require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php';
if (! isset($conf->global->BOOKMARKS_SHOW_IN_MENU)) $conf->global->BOOKMARKS_SHOW_IN_MENU=5;
$langs->load("bookmarks");
$url= $_SERVER["PHP_SELF"];
if (! empty($_SERVER["QUERY_STRING"]))
{
$url.=(dol_escape_htmltag($_SERVER["QUERY_STRING"])?'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]):'');
}
else
{
global $sortfield,$sortorder;
$tmpurl='';
// No urlencode, all param $url will be urlencoded later
if ($sortfield) $tmpurl.=($tmpurl?'&':'').'sortfield='.$sortfield;
if ($sortorder) $tmpurl.=($tmpurl?'&':'').'sortorder='.$sortorder;
if (is_array($_POST))
{
foreach($_POST as $key => $val)
{
if (preg_match('/^search_/', $key) && $val != '') $tmpurl.=($tmpurl?'&':'').$key.'='.$val;
}
}
$url.=($tmpurl?'?'.$tmpurl:'');
}
$searchForm = '<!-- form with POST method by default, will be replaced with GET for external link by js -->'."\n";
$searchForm.= '<form id="top-menu-action-bookmark" name="actionbookmark" method="POST" action="" onsubmit="return false" >';
$searchForm.= '<input name="bookmark" id="top-bookmark-search-input" class="dropdown-search-input" placeholder="'.$langs->trans('Bookmarks').'" autocomplete="off" >';
$searchForm.= '</form>';
// Url to list bookmark
$listbtn = '<a class="top-menu-dropdown-link" title="'.$langs->trans('AddThisPageToBookmarks').'" href="'.DOL_URL_ROOT.'/bookmarks/list.php" >';
$listbtn.= '<span class="fa fa-list"></span> '.$langs->trans('Bookmarks').'</a>';
// Url to go on create new bookmark page
$newbtn = '';
if (! empty($user->rights->bookmark->creer))
{
//$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;urlsource='.urlencode($url).'&amp;url='.urlencode($url);
$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;url='.urlencode($url);
$newbtn.= '<a class="top-menu-dropdown-link" title="'.$langs->trans('AddThisPageToBookmarks').'" href="'.dol_escape_htmltag($urltoadd).'" >';
$newbtn.= '<span class="fa fa-star-o"></span> '.dol_escape_htmltag($langs->trans('AddThisPageToBookmarks')).'</a>';
}
$bookmarkList='<div id="dropdown-bookmarks-list" >';
// Menu with all bookmarks
if (! empty($conf->global->BOOKMARKS_SHOW_IN_MENU))
{
$sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark";
$sql.= " WHERE (fk_user = ".$user->id." OR fk_user is NULL OR fk_user = 0)";
$sql.= " AND entity IN (".getEntity('bookmarks').")";
$sql.= " ORDER BY position";
if ($resql = $db->query($sql) )
{
$i=0;
while ($i < $conf->global->BOOKMARKS_SHOW_IN_MENU && $obj = $db->fetch_object($resql))
{
$bookmarkList.='<a class="dropdown-item bookmark-item" id="bookmark-item-'.$obj->rowid.'" data-id="'.$obj->rowid.'" '.($obj->target == 1?' target="_blank"':'').' href="'.dol_escape_htmltag($obj->url).'" >';
$bookmarkList.= dol_escape_htmltag($obj->title);
$bookmarkList.='</a>';
$i++;
}
}
else
{
dol_print_error($db);
}
}
$bookmarkList.='</div>';
$html= '';
if (! empty($conf->global->BOOKMARKS_SHOW_IN_MENU)) {
$html.= '
<!-- search input -->
<div class="dropdown-header bookmark-header">
' . $searchForm . '
</div>
';
}
$html.= '
<!-- Menu Body -->
<div class="bookmark-body dropdown-body">
'.$bookmarkList.'
</div>
';
$html.= '
<!-- Menu Footer-->
<div class="bookmark-footer">
'.$newbtn.$listbtn.'
<div style="clear:both;"></div>
</div>
';
if (! empty($conf->global->BOOKMARKS_SHOW_IN_MENU)) {
$html .= '<script>
$( document ).on("keyup", "#top-bookmark-search-input", function () {
var filter = $(this).val(), count = 0;
$("#dropdown-bookmarks-list .bookmark-item").each(function () {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).addClass("hidden-search-result");
} else {
$(this).removeClass("hidden-search-result");
count++;
}
});
$("#top-bookmark-search-filter-count").text(count);
});
</script>';
}
return $html;
}

View File

@ -18,3 +18,4 @@ SetHereATitleForLink=Set a name for the bookmark
UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://URL) or an internal/relative link (/DOLIBARR_ROOT/htdocs/...)
ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab
BookmarksManagement=Bookmarks management
BookmarksMenuShortCut=Ctrl + shift + m

View File

@ -1602,6 +1602,10 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
print '<div class="login_block usedropdown">'."\n";
// Add login user link
$toprightmenu.='<div class="login_block_user">';
@ -1609,6 +1613,17 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead
$mode=-1;
$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_USE_TOP_MENU_SEARCH_DROPDOWN)){
// Add search dropdown
$toprightmenu.= top_menu_search($user, $langs);
}
if(!empty($conf->global->MAIN_USE_TOP_MENU_BOOKMARK_DROPDOWN)) {
// Add bookmark dropdown
$toprightmenu .= top_menu_bookmark($user, $langs);
}
// add user dropdown
$toprightmenu.= top_menu_user($user, $langs);
$toprightmenu.='</div></div>';
@ -1823,12 +1838,10 @@ function top_menu_user(User $user, Translate $langs)
else $appli.=" ".DOL_VERSION;
$btnUser = '<!-- div for user link -->
<div id="topmenu-login-dropdown" class="userimg atoplogin dropdown user user-menu">
<div id="topmenu-login-dropdown" class="userimg atoplogin dropdown user user-menu inline-block">
<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$user->id.'" class="dropdown-toggle login-dropdown-a" data-toggle="dropdown">
'.$userImage.'
<span class="hidden-xs maxwidth200 atoploginusername hideonsmartphone">'.dol_trunc($user->firstname ? $user->firstname : $user->login, 10).'</span>
<span class="fa fa-chevron-down login-dropdown-btn" id="dropdown-icon-down"></span>
<span class="fa fa-chevron-up login-dropdown-btn hidden" id="dropdown-icon-up"></span>
</a>
<div class="dropdown-menu">
<!-- User image -->
@ -1869,16 +1882,12 @@ function top_menu_user(User $user, Translate $langs)
if (!$(event.target).closest("#topmenu-login-dropdown").length) {
// Hide the menus.
$("#topmenu-login-dropdown").removeClass("open");
$("#dropdown-icon-down").show(); // use show/hide instead toggle for avoid conflict
$("#dropdown-icon-up").hide(); // use show/hide instead toggle for avoid conflict
}
});
$("#topmenu-login-dropdown .dropdown-toggle").on("click", function(event) {
event.preventDefault();
$("#topmenu-login-dropdown").toggleClass("open");
$("#dropdown-icon-down").toggle();
$("#dropdown-icon-up").toggle();
});
$("#topmenuloginmoreinfo-btn").on("click", function() {
@ -1893,6 +1902,203 @@ function top_menu_user(User $user, Translate $langs)
return $btnUser;
}
/**
* Build the tooltip on top menu bookmark
*
* @param user $user User object
* @param Translate $langs Language object
* @return string HTML content
*/
function top_menu_bookmark(User $user, Translate $langs)
{
global $langs, $conf, $db, $hookmanager, $user;
global $menumanager;
$html = '';
// Define $bookmarks
if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire)
{
include_once DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php';
$langs->load("bookmarks");
$html.= '<!-- div for bookmark link -->
<div id="topmenu-bookmark-dropdown" class="atoplogin 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>
<div class="dropdown-menu">
'.printDropdownBookmarksList($db, $langs).'
</div>
</div>';
$html .= '
<!-- Code to show/hide the user drop-down -->
<script>
$( document ).ready(function() {
$(document).on("click", function(event) {
if (!$(event.target).closest("#topmenu-bookmark-dropdown").length) {
// Hide the menus.
$("#topmenu-bookmark-dropdown").removeClass("open");
}
});
$("#topmenu-bookmark-dropdown .dropdown-toggle").on("click", function(event) {
openBookMarkDropDown();
});
// Key map shortcut
$(document).keydown(function(e){
if( e.which === 77 && e.ctrlKey && e.shiftKey ){
console.log(\'control + shift + m : trigger open bookmark dropdown\');
openBookMarkDropDown();
}
});
var openBookMarkDropDown = function() {
event.preventDefault();
$("#topmenu-bookmark-dropdown").toggleClass("open");
$("#top-bookmark-search-input").focus();
}
});
</script>
';
}
return $html;
}
/**
* Build the tooltip on top menu tsearch
*
* @param user $user User object
* @param Translate $langs Language object
* @return string HTML content
*/
function top_menu_search(User $user, Translate $langs)
{
global $langs, $conf, $db, $hookmanager, $user;
global $menumanager;
$html = '';
$usedbyinclude=1;
$arrayresult=null;
include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php'; // This set $arrayresult
$defaultAction = '';
$buttonList='<div class="dropdown-global-search-button-list" >';
// Menu with all bookmarks
foreach ($arrayresult as $keyItem => $item)
{
if(empty($defaultAction)){
$defaultAction= $item['url'];
}
$buttonList.='<button class="dropdown-item global-search-item" data-target="'.dol_escape_htmltag($item['url']).'" >';
$buttonList.= $item['text'];
$buttonList.='</button>';
}
$buttonList.='</div>';
$searchInput = '<input name="sall" id="top-global-search-input" class="dropdown-search-input" placeholder="'.$langs->trans('Search').'" autocomplete="off" >';
$dropDownHtml = '<!-- form with POST method by default, will be replaced with GET for external link by js -->'."\n";
$dropDownHtml.= '<form id="top-menu-action-bookmark" name="actionbookmark" method="POST" action="'.$defaultAction.'" >';
$dropDownHtml.= '
<!-- search input -->
<div class="dropdown-header search-dropdown-header">
' . $searchInput . '
</div>
';
$dropDownHtml.= '
<!-- Menu Body -->
<div class="dropdown-body search-dropdown-body">
'.$buttonList.'
</div>
';
$dropDownHtml.= '</form>';
$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').')">
<i class="fa fa-search" ></i>
</a>
<div class="dropdown-menu">
'.$dropDownHtml.'
</div>
</div>';
$html .= '
<!-- Code to show/hide the user drop-down -->
<script>
$( document ).ready(function() {
// prevent submiting form on press ENTER
$("#top-global-search-input").keydown(function (e) {
if (e.keyCode == 13) {
var inputs = $(this).parents("form").eq(0).find(":button");
if (inputs[inputs.index(this) + 1] != null) {
inputs[inputs.index(this) + 1].focus();
}
e.preventDefault();
return false;
}
});
// submit form action
$(".dropdown-global-search-button-list .global-search-item").on("click", function(event) {
$("#top-menu-action-bookmark").attr("action", $(this).data("target"));
$("#top-menu-action-bookmark").submit();
});
// close drop down
$(document).on("click", function(event) {
if (!$(event.target).closest("#topmenu-global-search-dropdown").length) {
// Hide the menus.
$("#topmenu-global-search-dropdown").removeClass("open");
}
});
// Open drop down
$("#topmenu-global-search-dropdown .dropdown-toggle").on("click", function(event) {
openGlobalSearchDropDown();
});
// Key map shortcut
$(document).keydown(function(e){
if( e.which === 70 && e.ctrlKey && e.shiftKey ){
console.log(\'control + shift + f : trigger open global-search dropdown\');
openGlobalSearchDropDown();
}
});
var openGlobalSearchDropDown = function() {
event.preventDefault();
$("#topmenu-global-search-dropdown").toggleClass("open");
$("#top-global-search-input").focus();
}
});
</script>
';
return $html;
}
/**
* Show left menu bar
*
@ -1930,55 +2136,47 @@ function left_menu($menu_array_before, $helppagename = '', $notused = '', $menu_
if (! is_object($form)) $form=new Form($db);
$selected=-1;
$usedbyinclude=1;
$arrayresult=null;
include_once DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php'; // This set $arrayresult
if(empty($conf->global->MAIN_USE_TOP_MENU_SEARCH_DROPDOWN)) {
$usedbyinclude = 1;
$arrayresult = null;
include DOL_DOCUMENT_ROOT . '/core/ajax/selectsearchbox.php'; // This 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);
}
else
{
if (is_array($arrayresult))
{
foreach($arrayresult as $key => $val)
{
$searchform.=printSearchForm($val['url'], $val['url'], $val['label'], 'maxwidth125', 'sall', $val['shortcut'], 'searchleft'.$key, img_picto('', $val['img'], '', false, 1, 1));
}
}
}
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);
} else {
if (is_array($arrayresult)) {
foreach ($arrayresult as $key => $val) {
$searchform .= printSearchForm($val['url'], $val['url'], $val['label'], 'maxwidth125', 'sall', $val['shortcut'], 'searchleft' . $key, img_picto('', $val['img'], '', false, 1, 1));
}
}
}
// Execute hook printSearchForm
$parameters=array('searchform'=>$searchform);
$reshook=$hookmanager->executeHooks('printSearchForm', $parameters); // Note that $action and $object may have been modified by some hooks
if (empty($reshook))
{
$searchform.=$hookmanager->resPrint;
}
else $searchform=$hookmanager->resPrint;
// Execute hook printSearchForm
$parameters = array('searchform' => $searchform);
$reshook = $hookmanager->executeHooks('printSearchForm', $parameters); // Note that $action and $object may have been modified by some hooks
if (empty($reshook)) {
$searchform .= $hookmanager->resPrint;
} else $searchform = $hookmanager->resPrint;
// Force special value for $searchform
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>';
}
elseif ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_USE_OLD_SEARCH_FORM))
{
$searchform='<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="#" alt="'.dol_escape_htmltag($langs->trans("ShowSearchFields")).'">'.$langs->trans("Search").'...</a></div><div id="divsearchforms2" style="display: none">'.$searchform.'</div>';
$searchform.='<script>
// Force special value for $searchform
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>';
} elseif ($conf->use_javascript_ajax && !empty($conf->global->MAIN_USE_OLD_SEARCH_FORM)) {
$searchform = '<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="#" alt="' . dol_escape_htmltag($langs->trans("ShowSearchFields")) . '">' . $langs->trans("Search") . '...</a></div><div id="divsearchforms2" style="display: none">' . $searchform . '</div>';
$searchform .= '<script>
jQuery(document).ready(function () {
jQuery("#divsearchforms1").click(function(){
jQuery("#divsearchforms2").toggle();
});
});
</script>' . "\n";
$searchform.='</div>';
}
$searchform .= '</div>';
}
}
// Define $bookmarks
if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire)
if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire && empty($conf->global->MAIN_USE_TOP_MENU_BOOKMARK_DROPDOWN))
{
include_once DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php';
$langs->load("bookmarks");

View File

@ -1,19 +1,17 @@
<?php
if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
/* <style type="text/css" > dont remove this line it's an ide hack */
/*
* Dropdown
*/
.open>.dropdown-menu{ /*, #topmenu-login-dropdown:hover .dropdown-menu*/
.open>.dropdown-menu{
display: block;
}
.dropdown-menu {
box-shadow: none;
border-color: #eee;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
@ -21,7 +19,6 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
text-align: left;
@ -38,6 +35,34 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
.dropdown-toggle{
text-decoration: none !important;
}
.dropdown-toggle::after {
/* font part */
font-family: "Font Awesome 5 Free";
font-size: 0.7em;
font-weight: 900;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
text-align:center;
text-decoration:none;
margin: auto 3px;
display: inline-block;
content: "\f078";
-webkit-transition: -webkit-transform .2s ease-in-out;
-ms-transition: -ms-transform .2s ease-in-out;
transition: transform .2s ease-in-out;
}
.open>.dropdown-toggle::after {
transform: rotate(180deg);
}
/*
* MENU Dropdown
*/
@ -75,12 +100,17 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
}
.side-nav-vert .user-menu .dropdown-menu > .user-header {
height: 175px;
min-height: 175px;
padding: 10px;
text-align: center;
white-space: normal;
}
#topmenu-global-search-dropdown .dropdown-menu{
width: 300px;
max-width: 100%;
}
.dropdown-user-image {
border-radius: 50%;
vertical-align: middle;
@ -98,6 +128,12 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
background: rgb(<?php echo $colorbackhmenu1 ?>);
}
.dropdown-menu .dropdown-header{
padding: 5px 10px 10px 10px;
}
.dropdown-menu > .user-footer {
background-color: #f9f9f9;
padding: 10px;
@ -107,14 +143,43 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
clear: both;
}
.dropdown-menu > .user-body {
.dropdown-menu > .bookmark-footer{
padding: 10px;
}
.dropdown-menu > .user-body, .dropdown-body{
padding: 15px;
border-bottom: 1px solid #f4f4f4;
border-top: 1px solid #dddddd;
white-space: normal;
}
#topmenu-login-dropdown{
.dropdown-menu > .bookmark-body, .dropdown-body{
padding: 10px 0;
overflow-y: auto;
max-height: 60vh ; /* fallback for browsers without support for calc() */
max-height: calc(90vh - 110px) ;
white-space: normal;
}
.dropdown-body::-webkit-scrollbar {
width: 8px;
}
.dropdown-body::-webkit-scrollbar-thumb {
-webkit-border-radius: 0;
border-radius: 0;
background: rgb(<?php echo $colorbackhmenu1 ?>);
}
.dropdown-body::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
-webkit-border-radius: 0;
border-radius: 0;
}
#topmenu-login-dropdown, #topmenu-bookmark-dropdown, #topmenu-global-search-dropdown {
padding: 0 5px 0 5px;
}
#topmenu-login-dropdown a:hover{
@ -166,3 +231,89 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
background-color: #f4f4f4;
border-color: #ddd;
}
.dropdown-menu a.top-menu-dropdown-link {
color: rgb(<?php print $colortextlink; ?>) !important;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
display: block;
margin: 5px 0px;
}
.dropdown-item {
display: block !important;
box-sizing: border-box;
width: 100%;
padding: .25rem 1.5rem .25rem 1rem;
clear: both;
font-weight: 400;
color: #212529 !important;
text-align: inherit;
background-color: transparent;
border: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.dropdown-item::before {
/* font part */
font-family: "Font Awesome 5 Free";
font-weight: 900;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
text-align:center;
text-decoration:none;
margin-right: 5px;
display: inline-block;
content: "\f0da";
color: rgba(0,0,0,0.3);
}
.dropdown-item.active, .dropdown-item:hover, .dropdown-item:focus {
color: #<?php echo $colortextbackhmenu; ?> !important;
text-decoration: none;
background: rgb(<?php echo $colorbackhmenu1 ?>);
}
/*
* SEARCH
*/
.dropdown-search-input {
width: 100%;
padding: 10px 35px 10px 20px;
background-color: transparent;
font-size: 14px;
line-height: 16px;
box-sizing: border-box;
color: #575756;
background-color: transparent;
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-size: 16px 16px;
background-position: 95% center;
border-radius: 50px;
border: 1px solid #c4c4c2 !important;
transition: all 250ms ease-in-out;
backface-visibility: hidden;
transform-style: preserve-3d;
}
.dropdown-search-input::placeholder {
color: color(#575756 a(0.8));
letter-spacing: 1.5px;
}
.hidden-search-result{
display: none !important;
}

View File

@ -200,7 +200,11 @@ $heightmenu=48; /* height of top menu, part with image */
$heightmenu2=49; /* height of top menu, part with login */
$disableimages = 0;
$maxwidthloginblock = 180;
if (! empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { $disableimages = 1; $maxwidthloginblock = 180; $minwidthtmenu=0; }
if (! empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE)) { $disableimages = 1; $maxwidthloginblock = $maxwidthloginblock + 50; $minwidthtmenu=0; }
if(!empty($conf->global->MAIN_USE_TOP_MENU_SEARCH_DROPDOWN)){ $maxwidthloginblock = $maxwidthloginblock + 55; }
if(! empty($conf->bookmark->enabled) && !empty($conf->global->MAIN_USE_TOP_MENU_BOOKMARK_DROPDOWN)) { $maxwidthloginblock = $maxwidthloginblock + 55; }
print '/*'."\n";