{# templates/common/navbar.html.twig #}
{# --- Lógica de Colores --- #}
{% set navbarBg = '#101230' %}
{% if branding_current is defined and branding_current is not null and branding_current.primaryColor is not empty %}
{% set navbarBg = branding_current.primaryColor %}
{% endif %}
<nav class="navbar navbar-default navbar-static-top mante-navbar"
style="background-color: {{ navbarBg }}; border-color: transparent;">
<div class="container-fluid">
{# --- HEADER / LOGO --- #}
<div class="navbar-header">
<ul class="nav navbar-nav visible-xs-block visible-sm-block pull-left" style="margin: 0; list-style: none;">
<li>
<a class="sidebar-mobile-main-toggle" style="color: #fff; padding: 20px 15px; cursor: pointer; display: block;">
<i class="glyphicon glyphicon-menu-hamburger" style="font-size: 16px;"></i>
</a>
</li>
</ul>
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-navbar-collapse" aria-expanded="false" style="margin-top: 13px;">
<span class="sr-only">{% trans %}Toggle navigation{% endtrans %}</span>
<span class="icon-bar" style="background-color: #fff;"></span>
<span class="icon-bar" style="background-color: #fff;"></span>
<span class="icon-bar" style="background-color: #fff;"></span>
</button>
</div>
{# --- CONTENIDO COLAPSABLE --- #}
<div class="collapse navbar-collapse" id="main-navbar-collapse">
{# Lógica de Permisos #}
{% set current_access = app.session.get('current_access_type') ?? null %}
{% set modules = app.session.get('_modules') %}
{% set can_access_venues = modules.mvenues %}
{% set can_access_catering = modules.mcatering %}
{% set can_access_av = modules.mav %}
{# --- BOTONES CENTRALES (Módulos) --- #}
<div class="nav navbar-nav navbar-center-container">
<ul class="nav navbar-nav">
{% if can_access_venues and current_access != 'venues' %}
<li>
<a href="{{ path('switch_access', { type: 'venues' }) }}"
class="mante-nav-pill pill-venues">
{# Imagen por defecto (Blanca/Normal) #}
<img src="/uploads/branding/venues/logo.png" class="img-def" alt="Venues">
{# Imagen al pasar el ratón (Color/ManteVenues) #}
<img src="/uploads/branding/venues/logo_ManteVenues.png" class="img-hov" alt="Venues Hover">
</a>
</li>
{% endif %}
{% if can_access_catering and current_access != 'catering' %}
<li>
<a href="{{ path('switch_access', { type: 'catering' }) }}"
class="mante-nav-pill pill-catering">
<img src="/uploads/branding/catering/logo.png" class="img-def" alt="Catering">
<img src="/uploads/branding/catering/logo_ManteCatering.png" class="img-hov" alt="Catering Hover">
</a>
</li>
{% endif %}
{% if can_access_av and current_access != 'av' %}
<li>
<a href="{{ path('switch_access', { type: 'av' }) }}"
class="mante-nav-pill pill-av">
<img src="/uploads/branding/av/logo.png" class="img-def" alt="AV">
<img src="/uploads/branding/av/logo_ManteAv.png" class="img-hov" alt="AV Hover">
</a>
</li>
{% endif %}
</ul>
</div>
{# --- MENÚ USUARIO (Derecha) --- #}
<ul class="nav navbar-nav navbar-right">
<li class="dropdown dropdown-user">
<a href="#" id="userMenu" class="dropdown-toggle user-link" role="button" aria-haspopup="true" aria-expanded="false">
{% set avatarPath = app.user.picture is not empty ? app.user.picture : 'assets/images/placeholder.png' %}
<div class="user-avatar-wrapper">
<img src="{{ asset(avatarPath) }}" class="img-circle user-img" alt="">
</div>
<span class="user-name hidden-sm">{{ app.user.name }} {{ app.user.lastname }}</span>
<span class="caret text-white"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="userMenu" style="background-color: {{ navbarBg }}; border: 1px solid rgba(255,255,255,0.2);">
{% if app.user.id != 122 %}
<li>
<a href="/users/view/{{ app.user.id }}">
<i class="glyphicon glyphicon-user"></i> {% trans %}My profile{% endtrans %}
</a>
</li>
<li>
<a href="{{ path('me_notifications_list') }}">
<i class="glyphicon glyphicon-exclamation-sign"></i> {% trans %}Notifications{% endtrans %}
</a>
</li>
<li role="separator" class="divider"></li>
{% endif %}
<li>
<a href="/logout">
<i class="glyphicon glyphicon-log-out"></i> {% trans %}Logout{% endtrans %}
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
{# --- JAVASCRIPT --- #}
<script>
document.addEventListener('DOMContentLoaded', function(){
// Lógica simple para dropdown sin dependencia estricta de jQuery/Bootstrap JS
var trigger = document.getElementById('userMenu');
var item = trigger ? trigger.closest('.dropdown') : null;
var menu = item ? item.querySelector('.dropdown-menu') : null;
if(!trigger || !item || !menu) return;
function toggleDropdown(e) {
e.preventDefault();
e.stopPropagation();
item.classList.toggle('open');
// Compatibilidad Bootstrap 4+ si se actualiza a futuro
menu.classList.toggle('show');
var expanded = trigger.getAttribute('aria-expanded') === 'true';
trigger.setAttribute('aria-expanded', !expanded);
}
trigger.addEventListener('click', toggleDropdown);
document.addEventListener('click', function(e){
if(!item.contains(e.target)) {
item.classList.remove('open');
menu.classList.remove('show');
trigger.setAttribute('aria-expanded', 'false');
}
});
// Toggle sidebar en móviles
var toggleSidebarBtn = document.querySelector('.sidebar-mobile-main-toggle');
if(toggleSidebarBtn) {
toggleSidebarBtn.addEventListener('click', function(e){
e.preventDefault();
var sidebar = document.querySelector('.sidebar-main');
if (sidebar) {
sidebar.classList.toggle('sidebar-mobile-expanded');
}
});
}
});
</script>