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
|
import scalatags.Text.all._
object Templates {
def message(msg: Message): Tag = {
div(cls := "col-xs-12 col-sm-6 col-md-3 col-lg-2")(
div(cls := s"card text-white mb-3 bg-primary")(
div(cls := "card-header")(
msg.author
),
div(`class` := "card-body")(
div(`class` := "card-text")(
msg.content
)
)
)
)
}
def conversation(messages: Seq[Message]): Tag =
div(`class` := "container-fluid")(
div(id := "conversation", `class` := "row")(
for (msg <- messages.sortBy(_.date)) yield message(msg)
)
)
def page(messages: Seq[Message]): Tag = html(
head(
link(
rel := "stylesheet",
`type` := "text/css",
href := "/assets/lib/bootstrap-4.1.0/css/bootstrap-reboot.min.css"
),
link(
rel := "stylesheet",
`type` := "text/css",
href := "/assets/lib/bootstrap-4.1.0/css/bootstrap-grid.min.css"
),
link(
rel := "stylesheet",
`type` := "text/css",
href := "/assets/lib/bootstrap-4.1.0/css/bootstrap.min.css"
),
link(
rel := "stylesheet",
`type` := "text/css",
href := "/assets/main.css"
),
meta(
name := "viewport",
content := "width=device-width, initial-scale=1, shrink-to-fit=no"
)
),
body(
conversation(messages)
)
)
}
|