Back to Frontend

FlagshipContainer.Scala

common/app/views/fragments/audio/containers/flagshipContainer.scala.html

latest2.2 KB
Original Source

@import model.FrontProperties @import views.support.RemoveOuterParaHtml @import views.html.fragments.items.elements.facia_cards._ @import views.html.fragments.containers.facia_cards.containerHeader @import views.support.RenderClasses @import common.Localisation @import model.InlineImage @import layout.SliceWithCards @import conf.audio.FlagshipFrontContainer @import conf.AudioFlagship @(containerDefinition: layout.FaciaContainer, frontProperties: FrontProperties)(implicit request: RequestHeader) @getAllCards(slice: SliceWithCards) = @{ for { column <- slice.columns card <- column.cards } yield card } @getLatestEpisode(allCards: Seq[layout.FaciaCardAndIndex]) = @{ allCards.collectFirst { case layout.FaciaCardAndIndex(_, card: layout.ContentCard, _) if card.snapStuff.isEmpty => card } } @getSnapLink(allCards: Seq[layout.FaciaCardAndIndex]) = @{ allCards.collectFirst { case layout.FaciaCardAndIndex(_, card: layout.ContentCard, _) if card.snapStuff.nonEmpty => card } } @subscriptionLinks = {

Subscribe: @for((name: String, url: String) <- AudioFlagship.subscribeLinks) { @name } } @containerHeader(containerDefinition, frontProperties) @for(containerLayout <- containerDefinition.containerLayout) { @for(slice <- containerLayout.slices.headOption) { @defining(getAllCards(slice)) { allCards => @getLatestEpisode(allCards).map { card =>

@card.displayElement match { case Some(InlineImage(image)) => { @itemImage( image, inlineImage = true, widthsByBreakpoint = Some(card.squareImageWidthsByBreakpoint) ) } case _ => {

} }

Podcast @RemoveOuterParaHtml(card.header.headline)

@card.trailText.map { standfirst => @RemoveOuterParaHtml(standfirst) }

@fragments.inlineSvg("volume-high", "icon", Seq("fc-podcast-container__audio-icon")) @subscriptionLinks

@fragments.inlineSvg("volume-high", "icon", Seq("fc-podcast-container__audio-icon")) @subscriptionLinks @RemoveOuterParaHtml(card.header.headline) } @getSnapLink(allCards).map { card =>

@card.displayElement match { case Some(InlineImage(images)) => { @itemImage( images, inlineImage = true, widthsByBreakpoint = Some(card.mediaWidthsByBreakpoint) ) } case _ => {} }

Listen to previous episodes

More from the series

} } } }