{% extends 'knp_menu.html.twig' %} {% block root %} {%- set listAttributes = item.childrenAttributes|merge({'class': 'sidebar-menu', 'data-widget': 'tree'}) -%} {%- set request = item.extra('request') ?: app.request -%} {{ block('list') -}} {% endblock %} {% block item %} {%- if item.displayed -%} {#- check role of the group #} {%- set display = item.extra('roles') is empty or is_granted(sonata_config.getOption('role_super_admin')) or item.extra('roles')|filter(role => is_granted(role))|length > 0 -%} {%- endif -%} {%- if item.displayed and display|default -%} {%- set options = options|merge({branch_class: 'treeview', currentClass: "active", ancestorClass: "active"}) -%} {%- do item.setChildrenAttribute('class', (item.childrenAttribute('class')~' active')|trim) -%} {%- do item.setChildrenAttribute('class', (item.childrenAttribute('class')~' treeview-menu')|trim) -%} {{ parent() }} {%- endif -%} {% endblock %} {% block linkElement %} {% apply spaceless %} {# NEXT_MAJOR: Remove the label_catalogue fallback #} {%- set translation_domain = item.extra('translation_domain', item.extra('label_catalogue', 'messages')) -%} {%- if item.extra('on_top') is defined and not item.extra('on_top') -%} {%- set icon = item.extra('icon')|default(item.level > 1 ? 'fa fa-angle-double-right' : '')|parse_icon -%} {%- else -%} {%- set icon = item.extra('icon')|parse_icon -%} {%- endif -%} {%- set is_link = true -%} {{ parent() }} {% endapply %} {% endblock %} {% block spanElement %} {% apply spaceless %} {# NEXT_MAJOR: Remove the label_catalogue fallback #} {%- set translation_domain = item.extra('translation_domain', item.extra('label_catalogue', 'messages')) -%} {%- set icon = item.extra('icon')|default('')|parse_icon -%} {{ icon|raw }} {{ parent() }} {%- if item.extra('keep_open') is not defined or not item.extra('keep_open') -%} {%- endif -%} {% endapply %} {% endblock %} {% block label %} {% apply spaceless %} {%- if is_link|default(false) -%} {{ icon|default('')|parse_icon }} {%- endif -%} {# We use method accessor instead of ".label" since `item` implements `ArrayAccess` and could have a property called "label". #} {%- set item_label = item.getLabel() -%} {%- if options.allow_safe_labels and item.extra('safe_label', false) -%} {{ item_label|raw }} {%- else -%} {# NEXT_MAJOR: Remove the label_catalogue fallback #} {%- set translation_domain = item.extra('translation_domain', item.extra('label_catalogue', 'messages')) -%} {{ item_label|trans(item.extra('label_translation_parameters', {}), translation_domain) }} {%- endif -%} {% endapply %} {% endblock %}