Back to Frontend

Youtube.Scala

common/app/views/fragments/atoms/youtube.scala.html

latest3.0 KB
Original Source

@import views.support.{RenderClasses, Video700} @import model.pressed.CardStyle @import model.ImageMedia @import model.content.MediaWrapper._ @import model.content.MediaWrapper @import model.content.MediaAsset @import model.VideoFaciaProperties @import views.html.fragments.items.elements.facia_cards.title @import layout.PaidCard @import model.pressed.PressedContent @( media: model.content.MediaAtom, displayCaption: Boolean, displayDuration: Boolean = true, playable: Boolean = true, posterImageOverride: Option[ImageMedia] = None, cardStyle: Option[CardStyle] = None, mediaWrapper: Option[MediaWrapper] = None, faciaHeaderProperties: Option[VideoFaciaProperties] = None, isPaidFor: Boolean = false, pressedContent: Option[PressedContent] = None, verticalVideo: Boolean = false, )(implicit request: RequestHeader) @videoJsError() = @{

This video has been removed. This could be because it launched early, our rights have expired, there was a legal issue, or for another reason.

} @defining(media.activeAssets.headOption) { activeAsset: Option[MediaAsset] => @defining(media.expired.getOrElse(false)){expired: Boolean => @defining(playable){sixteenByNine: Boolean => @defining(media.channelId.getOrElse("")){ channelId: String => } } @for(asset <- activeAsset if playable && !expired) { @* Append a UUID to ensure a unqiue DOM id for all YouTube atoms This fixes the scenario when there are muliple instances of the same assetId i.e. the same video on the page. This is most likely to occur in a liveblog where the video can be in a main media position and in a block. *@

@* Below is only rendered on video cards within the video container *@ @if(mediaWrapper.contains(MediaWrapper.VideoContainer)){ @if(verticalVideo) { @if(media.formattedDuration.getOrElse("0:00") != "0:00") { @media.formattedDuration } }

@for(f <- faciaHeaderProperties) { @title(f.header, 0, 0, "u-faux-block-link__cta", None, isPaidFor, isLink = if (verticalVideo) {false} else { true }) @if(f.showByline) { @f.byline } @if(!verticalVideo) { @if(media.formattedDuration.getOrElse("0:00") != "0:00") { @media.formattedDuration } } } } } @defining(posterImageOverride orElse media.posterImage) { bestPosterImage => @if(bestPosterImage.isEmpty && expired) { @videoJsError() } @bestPosterImage.map { image => true, "vjs-big-play-button" -> !expired))" style="background-image: url(@Video700.bestSrcFor(image))"> @if(!expired) { @if(mediaWrapper.contains(ImmersiveMainMedia)) {

Play Video @fragments.inlineSvg("play", "icon")

} else { @if(isPaidFor) {

@pressedContent.map{ pc => @PaidCard.fromPressedContent(pc).branding.map{ b => Advertiser content } } } Play Video @fragments.inlineSvg("play", "icon") @for(duration <- media.formattedDuration.filter(_ => displayDuration)) { @if(duration != "0:00" && !verticalVideo) {

@duration

} } } } else { @videoJsError() } } } } } @if(displayCaption & !mediaWrapper.contains(ImmersiveMainMedia)) { @mediaAtomCaption(media.title, mediaWrapper.contains(MainMedia)) }