From 4a0c271393c95059ebaab6f0459dc7016ee5872e Mon Sep 17 00:00:00 2001 From: ebremner <ebremner@uwaterloo.ca> Date: Thu, 3 Dec 2020 10:44:02 -0500 Subject: [PATCH] ISTWCMS-4199: fixing printing of parent item in menu level 1 --- source/_patterns/04-components/menu/menu.twig | 158 +++++++++++------- 1 file changed, 93 insertions(+), 65 deletions(-) diff --git a/source/_patterns/04-components/menu/menu.twig b/source/_patterns/04-components/menu/menu.twig index c6ed4b31..047f996e 100644 --- a/source/_patterns/04-components/menu/menu.twig +++ b/source/_patterns/04-components/menu/menu.twig @@ -1,20 +1,27 @@ {% import _self as menus %} +{% set menu_parent_hide = false %} + {{ menus.menu_links(items, attributes, 0, menu_name, menu_class, item_class, link_class) }} {% macro menu_links(items, attributes, menu_level, menu_name, menu_class, item_class, link_class, parent) %} + {% import _self as menus %} + {% if items %} {% if menu_level == 0 %} + {# double quotes around class using menu_name needed for interpolation #} {% set additional_classes = [ 'menu', "menu--#{menu_name}" ] %} + {% if menu_class %} {% set additional_classes = additional_classes|merge(menu_class) %} {% endif %} + {% set additional_attributes = { 'class': additional_classes } %} @@ -32,44 +39,57 @@ {% if item.active_trail %} {% set item_classes = item_classes|merge(['is-active-trail']) %} {% endif %} + {% if item.active %} {% set link_classes = link_classes|merge(['active']) %} {% endif %} + {% if item_class %} {% set item_classes = item_classes|merge(item_class) %} {% endif %} + {% if link_class %} {% set link_classes = link_classes|merge(link_class) %} {% endif %} + {# Check for submenu #} {% if item.submenu %} + {# Add class for indicating the item has a submenu #} {% set item_classes = item_classes|merge(['has-submenu']) %} + {# Check if we are in parent menu_level #} {% if menu_level == 0 %} + {# Look to see if the menu_items_count is set so and use for menu dropdown class #} {% if item.menu_items_count %} - {% if item.menu_items_count >= 30 %} + + {% if item.menu_items_count >= 30 %} {# PRINT OUT MENU LEVEL FOR TESTING #} {{ item.menu_items_count }} {% set item_classes = item_classes|merge(['has-submenu--large']) %} - {% elseif item.menu_items_count >= 10 %} - {# PRINT OUT MENU LEVEL FOR TESTING #} - {{ item.menu_items_count }} + {% elseif item.menu_items_count >= 10 %} + + {# PRINT OUT MENU LEVEL FOR TESTING #} + {{ item.menu_items_count }} {% set item_classes = item_classes|merge(['has-submenu--medium']) %} + {% elseif item.menu_items_count > 0 %} {# PRINT OUT MENU LEVEL FOR TESTING #} {{ item.menu_items_count }} {% set item_classes = item_classes|merge(['has-submenu--small']) %} + {% endif %} + {# Add the link class #} - {% set link_classes = ['menu--link__sub'] %} + {% set link_classes = ['menu--link__sub'] %} + {% endif %} @@ -81,75 +101,83 @@ #} - {% elseif menu_level <= 2 %} - {# Set the flag to not re-print the Parent #} - {% set menu_parent_hide = true %} {% endif %} + {% endif %} + {# Set the additional_item_attributes #} {% set additional_item_attributes = { 'class': item_classes } %} + {# Set the additional_link_classes #} {% set link_attributes = { 'class': link_classes } %} -{# - ERIC IN HERE - Check menu level 1 and parent and not have the hide parent flag -#} -{% if menu_level == 1 and parent and not menu_parent_hide %} - - <li {{ add_attributes(additional_item_attributes) }}> - - <a href="{{ parent.url }}" class="menu--link-parent" {{ add_attributes(link_attributes) }}> - <span class="link-text"> - {% if parent.title %} - {{ parent.title }} - {% elseif parent.text %} - {{ parent.text }} - {% endif %} - </span> - </a> - </li> - {% endif %} - -<li {{ add_attributes(additional_item_attributes) }}> - - <a - {% if item.submenu %} - tabindex="0" - aria-haspopup="true" - role="button" - {% else %} - href="{{ item.url }}" - {% endif %} - {{ add_attributes(link_attributes) }} - > - <span class="link-text"> - {% if item.title %} - {{ item.title }} - {% elseif item.text %} - {{ item.text }} - {% endif %} - </span> - </a> - {% if item.below %} - {{ menus.menu_links(item.below, attributes, menu_level + 1) }} - {% elseif item.submenu %} - {% if menu_level == 0 %} - - {{ menus.menu_links(item.submenu, attributes, menu_level + 1, '', '', '', '', item) }} - {% else %} - {{ menus.menu_links(item.submenu, attributes, menu_level + 1) }} - {% endif %} - {% endif %} -</li> - -{% endfor %} - -</ul> - -{% endif %} + {# + ERIC IN HERE + Check menu level 1 and parent and not have the hide parent flag + #} + {% if menu_level == 1 and parent and not menu_parent_hide %} + + {% set menu_parent_hide = true %} + + <li {{ add_attributes(additional_item_attributes) }}> + + <a href="{{ parent.url }}" class="menu--link-parent" {{ add_attributes(link_attributes) }}> + + <span class="link-text"> + {% if parent.title %} + {{ parent.title }} + {% elseif parent.text %} + {{ parent.text }} + {% endif %} + </span> + + </a> + + </li> + {% endif %} + + <li {{ add_attributes(additional_item_attributes) }}> + + <a + {% if item.submenu %} + tabindex="0" + aria-haspopup="true" + role="button" + {% else %} + href="{{ item.url }}" + {% endif %} + {{ add_attributes(link_attributes) }} + > + + <span class="link-text"> + {% if item.title %} + {{ item.title }} + {% elseif item.text %} + {{ item.text }} + {% endif %} + </span> + + </a> + + {% if item.below %} + {{ menus.menu_links(item.below, attributes, menu_level + 1) }} + {% elseif item.submenu %} + {% if menu_level == 0 %} + {{ menus.menu_links(item.submenu, attributes, menu_level + 1, '', '', '', '', item) }} + {% else %} + {{ menus.menu_links(item.submenu, attributes, menu_level + 1) }} + {% endif %} + {% endif %} + + </li> + + {% endfor %} + + </ul> + + {% endif %} {% endmacro %} -- GitLab