diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 6f73d504d11..3157348062a 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -5949,8 +5949,9 @@ function printCommonFooter($zone='private')
print ''."\n";
print 'jQuery(".menuhider").click(function() {';
print ' console.log("We click on .menuhider");'."\n";
- print " $('.side-nav').toggle();";
- print " $('.login_block').toggle();";
+ //print " $('.side-nav').animate({width:'toggle'},200);\n"; // OK with eldy theme but not with md
+ print " $('.side-nav').toggle()\n";
+ print " $('.login_block').toggle()\n";
print '});'."\n";
}
diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php
index 4b19ffd5f3b..bd762083d2f 100644
--- a/htdocs/core/menus/standard/auguria_menu.php
+++ b/htdocs/core/menus/standard/auguria_menu.php
@@ -115,7 +115,7 @@ class MenuManager
/**
* Show menu
*
- * @param string $mode 'top', 'left', 'jmobile'
+ * @param string $mode 'top', 'left', 'jmobile' (used to get full xml ul/li menu)
* @param array $moredata An array with more data to output
* @return int 0 or nb of top menu entries if $mode = 'topnb'
*/
@@ -136,17 +136,20 @@ class MenuManager
if ($mode == 'top') print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,0,$mode);
if ($mode == 'left') print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu,0,'','',$moredata);
-
+
if ($mode == 'topnb')
{
print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1,$mode);
return $this->menu->getNbOfVisibleMenuEntries();
}
-
- if ($mode == 'jmobile')
+
+ if ($mode == 'jmobile') // Used to get menu in xml ul/li
{
print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1,$mode);
+ // $this->menu->liste is top menu
+ //var_dump($this->menu->liste);exit;
+ $lastlevel = array();
print ''."\n";
foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{
@@ -157,9 +160,17 @@ class MenuManager
$relurl=dol_buildpath($val['url'],1);
$relurl=preg_replace('/__LOGIN__/',$user->login,$relurl);
$relurl=preg_replace('/__USERID__/',$user->id,$relurl);
+ $canonurl=preg_replace('/\?.*$/','',$val['url']);
- print ''.$val['titre'].''."\n";
- // Search submenu fot this entry
+ print '';
+
+ // Add font-awesome
+ if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '';
+
+ print $val['titre'];
+ print ''."\n";
+
+ // Search submenu fot this mainmenu entry
$tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all';
$submenu=new Menu();
@@ -177,21 +188,50 @@ class MenuManager
// We add sub entry
print str_pad('',1).'
'; // ui-btn to highlight on clic
print '';
- if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation
+ if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation
{
- if ($val['mainmenu'] == 'cashdesk') print $langs->trans("Access");
- else print $langs->trans("Dashboard");
+ if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) print $langs->trans("Access");
+ else print $langs->trans("Dashboard");
}
else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard");
print '';
print ''."\n";
}
- foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
+
+ if ($val['level']==0)
+ {
+ if ($val['enabled'])
+ {
+ $lastlevel[0]='enabled';
+ }
+ else if ($showmenu) // Not enabled but visible (so greyed)
+ {
+ $lastlevel[0]='greyed';
+ }
+ else
+ {
+ $lastlevel[0]='hidden';
+ }
+ }
+
+ $lastlevel2 = array();
+ foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{
$showmenu=true;
if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu=false;
- if ($showmenu) // Visible (option to hide when not allowed is off or allowed)
+ // If at least one parent is not enabled, we do not show any menu of all children
+ if ($val2['level'] > 0)
+ {
+ $levelcursor = $val2['level']-1;
+ while ($levelcursor >= 0)
+ {
+ if ($lastlevel2[$levelcursor] != 'enabled') $showmenu=false;
+ $levelcursor--;
+ }
+ }
+
+ if ($showmenu) // Visible (option to hide when not allowed is off or allowed)
{
$relurl2=dol_buildpath($val2['url'],1);
$relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2);
@@ -199,8 +239,17 @@ class MenuManager
$canonurl2=preg_replace('/\?.*$/','',$val2['url']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2='';
- if ($val2['level']==0) print str_pad('',$val2['level']+1).''; // ui-btn to highlight on clic
- else print str_pad('',$val2['level']+1).''; // ui-btn to highlight on clic
+
+ $disabled='';
+ if (! $val2['enabled'])
+ {
+ $disabled=" vsmenudisabled";
+ }
+
+ print str_pad('',$val2['level']+1);
+ print ''; // ui-btn to highlight on clic
if ($relurl2)
{
if ($val2['enabled']) // Allowed
@@ -208,12 +257,25 @@ class MenuManager
print '';
+ $lastlevel2[$val2['level']]='enabled';
}
else // Not allowed but visible (greyed)
{
print '';
@@ -176,6 +177,7 @@ class MenuManager
print $val['titre'];
print ''."\n";
+
// Search submenu fot this mainmenu entry
$tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all';
@@ -195,9 +197,7 @@ class MenuManager
{
// We add sub entry
print str_pad('',1).''; // ui-btn to highlight on clic
- print '';
+ print '';
if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation
{
if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) print $langs->trans("Access");
@@ -208,11 +208,39 @@ class MenuManager
print ''."\n";
}
- foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu']
+ if ($val['level']==0)
+ {
+ if ($val['enabled'])
+ {
+ $lastlevel[0]='enabled';
+ }
+ else if ($showmenu) // Not enabled but visible (so greyed)
+ {
+ $lastlevel[0]='greyed';
+ }
+ else
+ {
+ $lastlevel[0]='hidden';
+ }
+ }
+
+ $lastlevel2 = array();
+ foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{
$showmenu=true;
if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu=false;
+ // If at least one parent is not enabled, we do not show any menu of all children
+ if ($val2['level'] > 0)
+ {
+ $levelcursor = $val2['level']-1;
+ while ($levelcursor >= 0)
+ {
+ if ($lastlevel2[$levelcursor] != 'enabled') $showmenu=false;
+ $levelcursor--;
+ }
+ }
+
if ($showmenu) // Visible (option to hide when not allowed is off or allowed)
{
$relurl2=dol_buildpath($val2['url'],1);
@@ -221,8 +249,17 @@ class MenuManager
$canonurl2=preg_replace('/\?.*$/','',$val2['url']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2='';
- if ($val2['level']==0) print str_pad('',$val2['level']+1).''; // ui-btn to highlight on clic
- else print str_pad('',$val2['level']+1).''; // ui-btn to highlight on clic
+
+ $disabled='';
+ if (! $val2['enabled'])
+ {
+ $disabled=" vsmenudisabled";
+ }
+
+ print str_pad('',$val2['level']+1);
+ print ''; // ui-btn to highlight on clic
if ($relurl2)
{
if ($val2['enabled']) // Allowed
@@ -230,13 +267,28 @@ class MenuManager
print '';
+ $lastlevel2[$val2['level']]='enabled';
}
else // Not allowed but visible (greyed)
{
print ''."\n";
}
+
+
}
//var_dump($submenu);
print '';
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index bee5aac9d36..8e0a9b856ea 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -1790,6 +1790,7 @@ a.vsmenu:link, a.vsmenu:visited, a.vsmenu:hover, a.vsmenu:active, span.vsmenu {
font.vsmenudisabled { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #aaa; }
a.vsmenu:link, a.vsmenu:visited { color: #; white-space: nowrap; }
font.vsmenudisabledmargin { margin: 1px 1px 1px 6px; }
+li a.vsmenudisabled, li.vsmenudisabled { color: #aaa !important; }
a.help:link, a.help:visited, a.help:hover, a.help:active, span.help { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #aaa; text-decoration: none; }
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 9ec18cca050..e98c631c758 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -1678,7 +1678,7 @@ div.login_block {
vertical-align: middle;
background: #FFF;
width: 228px;
- height: 42px;
+ height: 43px;
display: none;