common/app/views/fragments/contentMeta.scala.html (77 lines of code) (raw):
@(item: model.ContentType, page: model.Page, showExtras: Boolean = true)(implicit request: RequestHeader)
@import model._
@import views.support.Commercial.isPaidContent
@import _root_.model.ContentDesignType.RichContentDesignType
@import views.support.RenderClasses
@byline() = {
@item match {
case v: Video => { @fragments.meta.byline(v.bylineWithSource, v.tags) }
case c => { @fragments.meta.byline(c.trail.byline, c.tags) }
}
}
@iconModifier() = @{
if (item.content.isGallery) List("social-icon-media") else Nil
}
@metaBody() = {
@if(item.content.showCircularBylinePicAtSide && !item.content.isImmersive) {
@fragments.meta.bylineImage(item.tags)
}
@if(!(item.content.isGallery || item.content.isImmersive)) {
<div class="meta__contact-wrap">
@if(!item.content.hasTonalHeaderByline || item.metadata.designType.nameOrDefault == "analysis") {
@if(item.metadata.designType.nameOrDefault != "interview" || item.tags.isVideo){
@byline()
}
}
@item.content.contributorBio.map { bio => <p class="meta__bio" data-link-name="byline" data-component="meta-byline">@bio</p> }
@if(item.content.tags.contributors.length == 1) {
@if(item.content.hasTonalHeaderByline && (item.tags.contributors.headOption.exists(_.properties.twitterHandle.nonEmpty) || item.tags.contributors.headOption.exists(_.properties.emailAddress.nonEmpty))) {
<p class="meta__contact-header">Contact author</p>
}
@fragments.meta.contactAuthor(item.tags)
}
@if(!(item.trail.shouldHidePublicationDate || item.content.isGallery)) {
@fragments.meta.dateline(item.trail.webPublicationDate, item.fields.lastModified, item.content.hasBeenModified, item.fields.firstPublicationDate, item.tags.isLiveBlog, item.fields.isLive)
}
</div>
}
@if(item.content.isImmersive) {
@if(!(item.trail.shouldHidePublicationDate || item.content.isGallery)) {
@fragments.meta.dateline(item.trail.webPublicationDate, item.fields.lastModified, item.content.hasBeenModified, item.fields.firstPublicationDate, item.tags.isLiveBlog, item.fields.isLive)
}
}
@if(showExtras) {
<div class="meta__extras">
<div class="meta__social" data-component="share">
@fragments.social(item.sharelinks.pageShares, "top", iconModifier = iconModifier())
</div>
<div class="meta__numbers">
<div class="u-h meta__number js-sharecount">
</div>
<div class="u-h meta__number" data-discussion-id="@item.content.discussionId" data-commentcount-format="content" data-discussion-closed="@{
!item.trail.isCommentable
}">
</div>
</div>
</div>
}
}
<div class="@RenderClasses(Map(
"content__meta-container--no-byline" -> item.trail.byline.isEmpty,
"content__meta-container--liveblog" -> item.tags.isLiveBlog,
"content__meta-container--showcase" -> (item.elements.hasShowcaseMainElement && !item.content.isImmersive),
"content__meta-container--tonal-header" -> (item.content.hasTonalHeaderByline && item.metadata.designType.nameOrDefault != "analysis"),
"content__meta-container--twitter" -> (item.tags.contributors.length == 1 && item.tags.contributors.headOption.exists(_.properties.twitterHandle.nonEmpty)),
"content__meta-container--email" -> (item.tags.contributors.length == 1 && item.tags.contributors.headOption.exists(_.properties.emailAddress.nonEmpty)),
), "content__meta-container", "js-content-meta", "u-cf", item.content.contributorBio.map("content__meta-container--" ++ _).getOrElse(""))
">
@if(
item.tags.isVideo ||
item.tags.isAudio ||
(item.tags.isArticle && (item.content.isImmersive || !isPaidContent(page))) ||
item.tags.isGallery
) {
@fragments.commercial.badge(item, page)
}
@metaBody()
</div>