common/app/views/fragments/footer.scala.html (173 lines of code) (raw):
@(showNav: Boolean = true)(implicit page: model.Page, request: RequestHeader)
@import common.editions.{Au, International, Uk, Us, Europe}
@import common.{Edition, LinkTo}
@import conf.switches.Switches.EmailInlineInFooterSwitch
@import navigation.ReaderRevenueSite.{SupportContribute, SupportSubscribe}
@import navigation.UrlHelpers.{Footer, getReaderRevenueUrl}
@import navigation.{FooterLink, FooterLinks, NavMenu}
@import org.joda.time.DateTime
@import views.support.RenderClasses
@footerListItem(link: FooterLink) = {
<li class="colophon__item">
<a
data-link-name="@link.dataLinkName"
href="@if(link.url.startsWith("/")) {@LinkTo{@link.url}} else {@link.url}"
class="@link.extraClasses"
>
@Html(link.text)
</a>
</li>
}
<footer class="l-footer u-cf" data-link-name="footer" data-component="footer">
<div class="footer__primary">
@defining(NavMenu(page, Edition(request))) { navMenu: NavMenu =>
@fragments.nav.subNav(navMenu, page.metadata.designType, isFooter = true)
}
</div>
<div class="l-footer__secondary js-footer__secondary @if(EmailInlineInFooterSwitch.isSwitchedOff) {l-footer__secondary--no-email} gs-container" role="contentinfo">
<div class="footer__pillars u-cf">
@defining(NavMenu(page, Edition(request))) { navMenu: NavMenu =>
<ul class="pillars pillars--footer">
@navMenu.pillars.map { link =>
<li class="pillars__item">
<a class="@RenderClasses(Map(
"pillar-link--current-section" -> ((link.title == navMenu.currentPillar.map(_.title).getOrElse("")))
), "pillar-link", s"pillar-link--${link.title}")"
href="@LinkTo(link.url)"
data-link-name="footer : primary : @link.title">
@link.title
</a>
</li>
}
</ul>
}
</div>
<div class="colophon">
@defining(Edition(request)) { currentEdition =>
@if(EmailInlineInFooterSwitch.isSwitchedOn && !page.metadata.isFoundation) {
@emailSignUpLink(currentEdition)
}
<div class="@RenderClasses(Map(
"colophon__lists-container--foundation" -> page.metadata.isFoundation,
), "colophon__lists-container")">
@if(!page.metadata.isFoundation) {
@FooterLinks.getFooterByEdition(currentEdition).map { linkGroup =>
<ul class="colophon__list">
@linkGroup.map { link: FooterLink => @footerListItem(link)}
</ul>
}
@readerRevenueLinks(Edition(request).id.toLowerCase())
} else {
<div class="colophon__list">
@fragments.inlineSvg("guardian-foundation", "logo")
</div>
<ul class="colophon__list">
<li class="colophon__item">
<a data-link-name="foundation : footer : about us" href="@LinkTo {/the-guardian-foundation/2016/dec/21/who-we-are-and-what-we-do}">
About us
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : contact us" href="@LinkTo {/the-guardian-foundation/2018/dec/19/get-in-touch}">
Contact us
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : work for us" href="@LinkTo {/the-guardian-foundation/2018/dec/05/work-for-the-guardian-foundation}">
Work for us
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : Privacy Policy" href="@LinkTo {/the-guardian-foundation/2018/may/21/guardian-foundation-privacy-policy}">
Privacy policy
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : cookie" href="@LinkTo {/info/cookies}">
Cookie policy
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : terms" href="@LinkTo {/help/terms-of-service}">
Terms & conditions
</a>
</li>
<li class="colophon__item">
<a data-link-name="foundation : footer : twitter" href="https://twitter.com/gdn_foundation">
Twitter
</a>
</li>
</ul>
@readerRevenueLinks(Edition(request).id.toLowerCase())
}
</div>
@if(currentEdition.id == "AU") {
<div class="colophon__acknowledgment">
Guardian Australia acknowledges the traditional owners and
custodians of Country throughout Australia and their
connections to land, waters and community. We pay respect by
giving voice to social justice, acknowledging our shared
history and valuing the cultures of First Nations.
</div>
}
}
</div>
<div class="copyright-container">
<a class="footer__back-to-top" data-link-name="back to top" href="#top">
<span class="back-to-top__text">Back to top</span>
<span class="back-to-top__icon-container">
@fragments.inlineSvg("arrow-up", "icon")
</span>
</a>
<div class="really-serious-copyright">
@if(!page.metadata.isFoundation) {
© @{new DateTime().year.getAsText} Guardian News & Media Limited or its affiliated companies. All rights reserved.
} else {
© @{new DateTime().year.getAsText} The Guardian Foundation. The Guardian Foundation | Kings Place | 90 York Way | London | N1 9GU | United Kingdom. Registered charity: 1153865
}
</div>
</div>
</div>
</footer>
@readerRevenueLinks(editionId: String) = {
<div class="colophon__list">
<div class="cta-bar__text">
<div class="cta-bar__heading">
Support the Guardian
</div>
<div class="cta-bar__subheading">
Available for everyone, funded by readers
</div>
</div>
<a class="cta-bar__cta js-change-become-member-link js-acquisition-link"
data-link-name="footer : contribute-cta"
data-edition="@{editionId}"
href="@getReaderRevenueUrl(SupportContribute, Footer)">
Support us
@fragments.inlineSvg("arrow-right", "icon")
</a>
</div>
}
@emailSignUpLink(currentEdition: Edition) = {
<section class="footer__email-container">
<div class="colophon__section">
@currentEdition match {
case Uk => {
@fragments.email.signup.emailFooterLink("morning-briefing", "/global/2022/sep/20/sign-up-for-the-first-edition-newsletter-our-free-news-email")
}
case Us => {
@fragments.email.signup.emailFooterLink("us-morning-newsletter", "/info/2018/sep/17/guardian-us-morning-briefing-sign-up-to-stay-informed")
}
case Au => {
@fragments.email.signup.emailFooterLink("morning-mail", "/australia-news/2022/sep/23/morning-mail-newsletter-best-daily-news-email-guardian-australia-free-sign-up-inbox-subscribe")
}
case International => {
@fragments.email.signup.emailFooterLink("morning-briefing", "/global/2022/sep/20/sign-up-for-the-first-edition-newsletter-our-free-news-email")
}
case Europe => {
@fragments.email.signup.emailFooterLink("morning-briefing", "/global/ng-interactive/2022/apr/13/first-edition-sign-up-guardian")
}
}
</div>
</section>
}