common/app/views/fragments/immersiveMainMedia.scala.html (119 lines of code) (raw):

@import common.{LinkTo, Localisation} @import layout.ContentWidths.MainMedia @import model.Badges.badgeFor @import model.ContentPage @import views.support.RenderClasses @import views.support.TrailCssClasses.toneClass @import views.support.ImmersiveMainCleaner @()(implicit page: ContentPage, request: RequestHeader, context: model.ApplicationContext) @defining(( page.item.tags.isTheMinuteArticle, page.item.elements.hasMainEmbed, page.item.fields.main.nonEmpty, page.item.tags.series.headOption, page.item.tags.isPaidContent )) { case (isTheMinuteArticle, hasEmbed, hasMainMedia, optSeries, isPaidContent) => <div class="@RenderClasses(Map( "content--minute-article" -> isTheMinuteArticle, "content--immersive-article-without-main-media" -> !hasMainMedia, "immersive-main-media" -> hasMainMedia ), "content", "content--immersive", "content--immersive-article", "tonal", s"tonal--${toneClass(page.item)}") "> <div class="gs-container immersive-main-media__logo"> @if(isTheMinuteArticle) { @badgeFor(page.item).map { badge => <div class="badge-slot"> <a href="@LinkTo {/@badge.seriesTag}"> <img class="badge-slot__img" src="@badge.imageUrl" alt=""/> <span class="u-h">View more @Localisation(page.item.content.sectionLabelName.getOrElse("")) articles</span> </a> </div> } } </div> <div class="immersive-main-media__media"> @if(page.item.elements.hasMainPicture) { @page.item.elements.mainPicture.map(_.images).orElse(page.item.trail.trailPicture).map { picture => @fragments.image( picture = picture, classes = Seq("immersive-main-media__media"), widths = MainMedia.immersive, imageAltText = "", isImmersiveMainMedia = true ) } } else { @if(hasMainMedia) { <div class="immersive-main-media__media__loading"> <div class="immersive-main-media__loading-animation is-updating"></div> <span class="u-h">Loading header</span> </div> @page.item match { case article: model.Article => { @ImmersiveMainCleaner(article, article.fields.main) } case content => { @Html(content.fields.main) } } } } </div> @if(isTheMinuteArticle) { <div class="content--minute-article--overlay"></div> } <div class="@RenderClasses(Map( "immersive-main-media__headline-container--dark" -> (!isTheMinuteArticle && hasMainMedia), "immersive-main-media__headline-container" -> hasMainMedia )) "> <div class="gs-container"> @if(!isTheMinuteArticle) { <div class="content__main-column"> @fragments.meta.metaInline(page.item) } <h1 class="@RenderClasses(Map( "content__headline--minute" -> isTheMinuteArticle, "content__headline--immersive--with-main-media" -> hasMainMedia, "content__headline--advertisement" -> isPaidContent ), "content__headline", "content__headline--immersive", "content__headline--immersive-article") "> @if(isTheMinuteArticle) { @optSeries.map { series => <a href="@LinkTo { /@series.id }" class="logo--minute-article"> <span class="u-h">The Minute - </span> @fragments.inlineSvg("minute-logo", "logo") </a> }.getOrElse { <div class="logo--minute-article"> <span class="u-h">The Minute - </span> @fragments.inlineSvg("minute-logo", "logo") </div> } } @Html(page.item.trail.headline) </h1> @if(isTheMinuteArticle) { @if(page.item.trail.shouldHidePublicationDate) { @fragments.meta.dateline(page.item.trail.webPublicationDate, page.item.fields.lastModified, page.item.content.hasBeenModified, page.item.fields.firstPublicationDate, page.item.tags.isLiveBlog, page.item.fields.isLive, isTheMinuteArticle) } @if(page.item.fields.standfirst.isDefined) { @fragments.standfirst(page.item) } } @if(!isTheMinuteArticle && page.item.fields.standfirst.isDefined) { <div class="hide-on-mobile"> @fragments.standfirst(page.item) </div> } @if(!isTheMinuteArticle) { </div> } </div> </div> </div> @if(page.item.fields.standfirst.isDefined && !isTheMinuteArticle) { <div class="content__wrapper--standfirst mobile-only"> @fragments.standfirst(page.item) </div> } }