/
showProposal.scala.html
102 lines (90 loc) · 6.18 KB
/
showProposal.scala.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
@(proposal: Proposal, publishedConfiguration: Option[String], slot: Option[Slot], maybeProgramSchedule: Option[ProgramSchedule])(implicit lang: Lang, flash: Flash, req: RequestHeader)
@views.html.Publisher.devoxxFR(proposal.id + " " + proposal.title, Some(s"${proposal.title} " + Messages("sw.all." + proposal.talkType.id))) {
<section class="bg-fixed bg-clip-content bg-center bg-cover bg-no-repeat md:mb-8 sm:mb-2" style="background-image: url('/assets/devoxx_fr_2023/devoxx_fr_call_for_paper_2023.jpeg')">
<div class="grid max-w-screen-xl px-4 py-8 mx-auto lg:gap-8 xl:gap-0 lg:py-16 lg:grid-cols-12">
<div class="mr-auto place-self-center lg:col-span-7 bg-gradient-to-b bg-dvx-mainback p-4">
<h1 class="max-w-2xl mb-4 text-3xl font-extrabold tracking-tight leading-none bg-clip-text text-transparent bg-gradient-to-bl from-yellow-100 to-orange-700">@proposal.title</h1>
<p class="max-w-2xl mb-6 font-light text-white lg:mb-8 md:text-lg lg:text-xl">@Messages(proposal.talkType.id)</p>
</div>
</div>
</section>
<section>
<div class="container mx-auto bg-white">
<div class="grid md:grid-cols-2 sm:grid-cols-1 gap-4 p-4">
<div class="md:col-span-full lg:col-span-1 row-start-1 row-end-3">
@if(slot.isDefined) {
@if(maybeProgramSchedule.exists(_.showSchedule)) {
@if(maybeProgramSchedule.exists(_.showRooms)) {
<p class="text-left"><span class="text-bold text-xl">@Messages("showProposal.room"):</span>
@slot.map(_.room.name)
}
<p class="text-left"><span class="text-bold text-xl text-black-800">@Messages("showProposal.schedule") :</span>
<span class="text-orange-500 md:text-xl">@slot.get.from.toDateTime(ConferenceDescriptor.current().timezone).toString("EEEE")
@slot.get.from.toDateTime(ConferenceDescriptor.current().timezone).toString("HH:mm")
@slot.get.to.toDateTime(ConferenceDescriptor.current().timezone).toString("HH:mm")
</span>
</p>
}
}
<h1 class="sm:text-xl md:text-2xl lg:text-3xl text-bold">@Messages("showProposal.summary")</h1>
<div class="text-gray-700 mb-4 pl-4 prose">
@Html(proposal.summaryAsHtml)
</div>
</div>
<div class="col-span-1">
@proposal.allSpeakers.map { speaker =>
<div class="py-4">
@speaker.avatarUrl.map { url =>
<img src="@url" class="w-32 rounded float-right m-4" alt="@speaker.cleanName" title="@speaker.cleanName">
}.getOrElse {
<img src="//www.gravatar.com/avatar/@Webuser.gravatarHash(speaker.email)?s=128" class="w-32 rounded float-right m-4" alt="@speaker.cleanName" title="@speaker.cleanName"/>
}
<p><span class="text-yellow-600 text-bold">> </span> @speaker.cleanName </p>
<div class="prose text-black-600 pb-3 text-sm">
@Html(speaker.bioAsHtml)
</div>
<a href="@routes.Publisher.showSpeaker(speaker.uuid, speaker.urlName)" class="btn-primary">@Messages("showProposal.bio")</a>
</div>
}
</div>
<div class="col-span-1">
<table class="table-auto divide-x divide-y">
<tbody class="divide-y divide-gray-200">
<tr>
<th scope="row" class="px-3 py-2 text-right">@Messages("showProposal.talkType")</th>
<td class="text-gray-800"><a href="@routes.Publisher.showByTalkType(proposal.talkType.id)">@Messages(proposal.talkType.id)</a></td>
</tr>
<tr>
<th scope="row" class="px-3 py-2 text-right">Track</th>
<td class="text-gray-800">@Messages(proposal.track.label)</td>
</tr>
<tr>
<th scope="row" class="px-3 py-2 text-right">@Messages("showProposal.level")</th>
<td class="text-gray-800">@Messages(proposal.audienceLevel + ".label")</td>
</tr>
@if(proposal.tags.isDefined) {
<tr>
<th scope="row" class="px-3 py-2 text-right">@Messages("showProposal.keywords")</th>
<td class="text-gray-800"> @proposal.tags.get.filter(tag => tag.value.nonEmpty).map { tag =>
<a href="@routes.Publisher.showByTag(tag.id)" class="btn-devoxx">@tag.value</a>
}
</td>
</tr>
}
</tbody>
</table>
<p class="text-left mb-3 mt-3">
@if(maybeProgramSchedule.exists(_.showRooms)) {
@Messages("publisher.room") @slot.map(_.room.name)
} else {
@Messages("publisher.proposal.roomHidden")
}
</p>
</div>
<div class="col-span-full">
<a href="@routes.Publisher.showByTalkType(proposal.talkType.id)" class="btn-primary">@Messages("showProposal.allTalks")</a>
</div>
</div>
</div>
</section>
}