diff options
author | Jakob Odersky <jakob@inpher.io> | 2019-10-09 17:10:43 -0400 |
---|---|---|
committer | Jakob Odersky <jakob@inpher.io> | 2019-10-09 20:33:16 -0400 |
commit | 0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7 (patch) | |
tree | 2df0258f81050e6fed51d38e217c4f6256518e12 /shared/TextTemplates.scala | |
parent | faed28c54900fc0b359700873367095f51425794 (diff) | |
download | scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.tar.gz scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.tar.bz2 scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.zip |
Migrate build to mill
Diffstat (limited to 'shared/TextTemplates.scala')
-rw-r--r-- | shared/TextTemplates.scala | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/shared/TextTemplates.scala b/shared/TextTemplates.scala new file mode 100644 index 0000000..0dd45c5 --- /dev/null +++ b/shared/TextTemplates.scala @@ -0,0 +1,64 @@ +package triad + +object TextTemplates extends Templates(scalatags.Text) { + import bundle.all._ + + def scripts(js: Boolean = true) = + if (js) + Seq( + div(id := "scalajs-error", style := "display: none;")( + "ScalaJS raised an exception. See the log for more information." + ), + script(`type` := "text/javascript", + src := "/out.js"), + script(`type` := "text/javascript")( + raw( + """|document.addEventListener("DOMContentLoaded", function(event) { + | try { + | // root element that will contain the ScalaJS application + | var root = document.getElementById("conversation"); + | + | // clear any existing content + | while (root.firstChild) { + | root.removeChild(root.firstChild); + | } + | + | // run ScalaJS application + | console.info("Starting ScalaJS application...") + | triad.Main().main(root) + | } catch(ex) { + | // display warning message in case of exception + | document.getElementById("scalajs-error").style.display = "block"; + | throw ex; + | } + |}); + |""".stripMargin + ) + ) + ) + else Seq.empty + + def page(messages: Seq[Message], js: Boolean = true) = 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), + scripts(js) + ) + ) + +} |