Skip to content

Commit e50cf88

Browse files
committed
MIR-1517 moves active class to nav link, moves home link from footer to main nav, moves browse to search, adds style for active main menu link, adds single menu entry template and enables navigation.scss again
1 parent 0b96fd1 commit e50cf88

File tree

5 files changed

+117
-48
lines changed

5 files changed

+117
-48
lines changed

mir-layout/src/main/resources/META-INF/resources/mir-layout/scss/flatmir/layout.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@
2727
// flatmir overrides
2828
@import "lib/base";
2929
@import "lib/fonts";
30+
@import "lib/navbar";

mir-layout/src/main/resources/META-INF/resources/mir-layout/scss/flatmir/lib/navbar.scss

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
// Navbar
33
// --------------------------------------------------
44

5+
.nav-link {
6+
&.active {
7+
font-weight: 600;
8+
}
9+
}
10+
511
// overwrite bootwatch flatly settings
612
// for link colors in navbars
713
// was set to $success before
@@ -30,7 +36,8 @@
3036
.navbar-nav {
3137
.nav-link {
3238
color: $navbar-dark-color;
33-
@include hover-focus() {
39+
&:hover,
40+
&:focus {
3441
color: $navbar-dark-hover-color !important;
3542
}
3643
}
@@ -46,7 +53,8 @@
4653
.navbar-nav {
4754
.nav-link {
4855
color: $navbar-light-color;
49-
@include hover-focus() {
56+
&:hover,
57+
&:focus {
5058
color: $navbar-light-hover-color !important;
5159
}
5260
}

mir-layout/src/main/resources/xsl/mir-flatmir-layout-utils.xsl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
class="collapse navbar-collapse mir-main-nav__entries justify-content-between">
5151

5252
<ul class="navbar-nav me-auto mt-2 mt-lg-0">
53+
<xsl:call-template name="mir.generate_single_menu_entry">
54+
<xsl:with-param name="menuID" select="'main'"/>
55+
</xsl:call-template>
5356
<xsl:for-each select="$loaded_navigation_xml/menu">
5457
<xsl:choose>
5558
<!-- Ignore some menus, they are shown elsewhere in the layout -->

mir-module/src/main/resources/META-INF/resources/config/navigation.xml

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
<menu id="main" dir="/content/main">
44
<label xml:lang="de">Hauptmenü</label>
55
<label xml:lang="en">Main menu</label>
6-
</menu>
7-
<menu id="brand" dir="/content/brand">
8-
<label xml:lang="de">MIR-Menü</label>
9-
<label xml:lang="en">MIR menu</label>
106
<item href="/content/index.xml" type="intern">
117
<label xml:lang="de">Start</label>
128
<label xml:lang="en">Start</label>
139
</item>
10+
</menu>
11+
<menu id="brand" dir="/content/brand">
12+
<label xml:lang="de">MIR-Menü</label>
13+
<label xml:lang="en">MIR menu</label>
1414
<item href="/content/brand/impressum.xml" type="intern">
1515
<label xml:lang="de">Impressum</label>
1616
<label xml:lang="en">Impressum</label>
@@ -25,7 +25,6 @@
2525
<label xml:lang="en">Footer menu</label>
2626
</menu>
2727
<menu id="search">
28-
<!-- search menu -->
2928
<label xml:lang="de">Suche</label>
3029
<label xml:lang="en">Search</label>
3130
<item href="/content/search/simple.xed" type="intern">
@@ -48,26 +47,25 @@
4847
<label xml:lang="de">expert</label>
4948
<label xml:lang="en">expert</label>
5049
</item>
51-
</menu>
52-
<menu id="browse">
53-
<!-- search menu -->
54-
<label xml:lang="de">Blättern</label>
55-
<label xml:lang="en">Browse</label>
56-
<item href="/content/browse/institutes.xml" type="intern">
57-
<label xml:lang="de">Einrichtungen</label>
58-
<label xml:lang="en">Institutions</label>
59-
</item>
60-
<item href="/content/browse/genres.xml" type="intern">
61-
<label xml:lang="de">Dokumenttypen</label>
62-
<label xml:lang="en">Genres</label>
63-
</item>
64-
<item href="/content/browse/sdnb.xml" type="intern">
65-
<label xml:lang="de">Sachgruppen</label>
66-
<label xml:lang="en">SNDB</label>
67-
</item>
68-
<item href="/servlets/MCRActionMappingServlet/personindex/browse" type="extern">
69-
<label xml:lang="de">Personen</label>
70-
<label xml:lang="en">Persons</label>
50+
<item id="browse" href="/content/browse/" type="intern">
51+
<label xml:lang="de">Blättern</label>
52+
<label xml:lang="en">Browse</label>
53+
<item href="/content/browse/institutes.xml" type="intern">
54+
<label xml:lang="de">Einrichtungen</label>
55+
<label xml:lang="en">Institutions</label>
56+
</item>
57+
<item href="/content/browse/genres.xml" type="intern">
58+
<label xml:lang="de">Dokumenttypen</label>
59+
<label xml:lang="en">Genres</label>
60+
</item>
61+
<item href="/content/browse/sdnb.xml" type="intern">
62+
<label xml:lang="de">Sachgruppen</label>
63+
<label xml:lang="en">SNDB</label>
64+
</item>
65+
<item href="/servlets/MCRActionMappingServlet/personindex/browse" type="extern">
66+
<label xml:lang="de">Personen</label>
67+
<label xml:lang="en">Persons</label>
68+
</item>
7169
</item>
7270
</menu>
7371
<menu id="publish" dir="/content/publish">

mir-module/src/main/resources/xsl/layout/mir-navigation.xsl

Lines changed: 80 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,29 @@
5555
</xsl:param>
5656
<xsl:choose>
5757
<xsl:when test="string-length($url ) &gt; 0">
58-
<xsl:variable name="itemClasses">
59-
<xsl:choose>
60-
<xsl:when test="item">
61-
<xsl:value-of select="'dropdown-submenu'" />
62-
</xsl:when>
63-
<xsl:otherwise>
64-
<xsl:if test="$active">
65-
<xsl:value-of select="'active'" />
66-
</xsl:if>
67-
</xsl:otherwise>
68-
</xsl:choose>
58+
<xsl:variable name="listItemClass">
59+
<xsl:text>mir-list-item</xsl:text>
60+
<xsl:if test="item">
61+
<xsl:text> dropdown-submenu</xsl:text>
62+
</xsl:if>
63+
<xsl:if test="$active">
64+
<xsl:text> active</xsl:text>
65+
</xsl:if>
6966
</xsl:variable>
70-
<li>
71-
<xsl:attribute name="class">
72-
<xsl:copy-of select="$itemClasses" />
73-
</xsl:attribute>
74-
<a href="{$url}" class="dropdown-item">
67+
<li class="{$listItemClass}">
68+
<xsl:variable name="itemClass">
69+
<xsl:text>dropdown-item</xsl:text>
70+
<xsl:if test="item">
71+
<xsl:text> submenu dropdown-toggle</xsl:text>
72+
</xsl:if>
73+
<xsl:if test="$active">
74+
<xsl:text> active</xsl:text>
75+
</xsl:if>
76+
</xsl:variable>
77+
<a href="{$url}" class="{$itemClass}">
7578
<xsl:if test="@target">
7679
<xsl:copy-of select="@target" />
7780
</xsl:if>
78-
<xsl:if test="item">
79-
<xsl:attribute name="class">
80-
<xsl:value-of select="'submenu dropdown-toggle dropdown-item'" />
81-
</xsl:attribute>
82-
</xsl:if>
8381
<xsl:apply-templates select="." mode="linkText" />
8482
</a>
8583
<xsl:if test="item">
@@ -154,4 +152,65 @@
154152
</xsl:otherwise>
155153
</xsl:choose>
156154
</xsl:template>
155+
156+
157+
<xsl:template name="mir.generate_single_menu_entry">
158+
<xsl:param name="menuID" />
159+
<xsl:variable name="menuItem" select="$loaded_navigation_xml/menu[@id=$menuID]/item" />
160+
<li class="nav-item">
161+
<xsl:variable name="activeClass">
162+
<xsl:choose>
163+
<xsl:when test="$menuItem/@href = $browserAddress">
164+
<xsl:text>active</xsl:text>
165+
</xsl:when>
166+
<xsl:otherwise>
167+
<xsl:text>not-active</xsl:text>
168+
</xsl:otherwise>
169+
</xsl:choose>
170+
</xsl:variable>
171+
<xsl:variable name="fullUrl">
172+
<xsl:call-template name="mir.resolveFullUrl">
173+
<xsl:with-param name="link" select="$menuItem/@href" />
174+
</xsl:call-template>
175+
</xsl:variable>
176+
<a id="{$menuID}" href="{$fullUrl}" class="nav-link {$activeClass}">
177+
<xsl:apply-templates select="$menuItem" mode="linkText" />
178+
</a>
179+
</li>
180+
</xsl:template>
181+
182+
<xsl:template name="mir.resolveFullUrl">
183+
<xsl:param name="link" />
184+
<xsl:param name="appBaseUrl" select="$WebApplicationBaseURL" />
185+
<xsl:choose>
186+
<xsl:when test="starts-with($link,'http:')
187+
or starts-with($link,'https:')
188+
or starts-with($link,'mailto:')
189+
or starts-with($link,'ftp:')">
190+
<xsl:value-of select="$link" />
191+
</xsl:when>
192+
<xsl:when test="starts-with($link,'/')">
193+
<xsl:choose>
194+
<xsl:when test="substring($appBaseUrl, string-length($appBaseUrl), 1) = '/'">
195+
<xsl:value-of
196+
select="concat(substring($appBaseUrl, 1, string-length($appBaseUrl) - 1), $link)" />
197+
</xsl:when>
198+
<xsl:otherwise>
199+
<xsl:value-of select="concat($appBaseUrl, $link)" />
200+
</xsl:otherwise>
201+
</xsl:choose>
202+
</xsl:when>
203+
<xsl:otherwise>
204+
<xsl:choose>
205+
<xsl:when test="substring($appBaseUrl, string-length($appBaseUrl), 1) = '/'">
206+
<xsl:value-of select="concat($appBaseUrl, $link)" />
207+
</xsl:when>
208+
<xsl:otherwise>
209+
<xsl:value-of select="concat($appBaseUrl, '/', $link)" />
210+
</xsl:otherwise>
211+
</xsl:choose>
212+
</xsl:otherwise>
213+
</xsl:choose>
214+
</xsl:template>
215+
157216
</xsl:stylesheet>

0 commit comments

Comments
 (0)