base/src/sqwl/cms/Layout.scala
changeset 5 de7c56ce0654
parent 4 1a1347e8c5be
child 7 50a354e5bda4
--- a/base/src/sqwl/cms/Layout.scala	Thu Nov 29 12:20:20 2018 +0100
+++ b/base/src/sqwl/cms/Layout.scala	Tue Dec 04 12:35:12 2018 +0100
@@ -1,13 +1,31 @@
 package sqwl.cms
 
+import BuildInfo.versions
+import scalatags.Text.all
 import scalatags.Text.all._
 import scalatags.Text.tags2
 import scalatags.Text.TypedTag
+import sqwl.cms.layout.Navbar
 
-object Layout {
+object Layout extends config {
+
+  lazy val bootstrapCss = s"/${http.prefix}/assets/bootstrap/${versions.bootstrap}/css/bootstrap.min.css"
+  lazy val bootstrapJs = s"/${http.prefix}/assets/bootstrap/${versions.bootstrap}/js/bootstrap.min.js"
+  lazy val fontAwesomeCss = s"/${http.prefix}/assets/font-awesome/${versions.fontAwesome}/css/all.min.css"
+  lazy val siteCss = s"/${http.prefix}/public/css/site.css?${BuildInfo.hgId}"
+  lazy val jquery = s"/${http.prefix}/assets/jquery/${versions.jquery}/jquery.min.js"
+
   def apply(content: iContent, st: ViewState): TypedTag[String] = {
     html(
       head(
+        tags2.style("""
+          |.nav, .pagination, .carousel, .panel-title a, .panel a { cursor: pointer; }""".stripMargin),
+        meta(charset:="utf-8"),
+        meta(name:="viewport", all.content:="width=device-width, initial-scale=1"),
+        link(rel:="stylesheet", href:=bootstrapCss),
+        link(rel:="stylesheet", href:=fontAwesomeCss),
+        link(rel:="stylesheet", href:=siteCss),
+        link(rel:="icon", href:="favicon.ico"),
         tags2.title(st match {
           case ViewArticle(v) => v.title
           case ViewCategory(v) => v.name
@@ -15,21 +33,21 @@
           case Dashboard => "SQWL"
           case News => "Novinky"
         })
-
       ),
-      body(
-        div("foo"),
-        st match {
-          case ViewArticle(article) => div(
-            a(href:=article.pathSegment, article.title),
-            raw(article.htmlContent)
-          )
-          case _ => ""
-        },
-        div(
-          content.categories map(c => div(a(href:=c.pathSegment, c.name)))
-        )
-
+      body(paddingTop:=120,
+        Navbar(content, st),
+        div(role:="main", cls:="container",
+          st match {
+            case ViewArticle(article) => div(
+              a(href:=article.pathSegment, article.title),
+              raw(article.htmlContent)
+            )
+            case _ => ""
+          }
+        ),
+        footer(id:="footer", p(raw(" "))),
+        script(src:=jquery),
+        script(src:=bootstrapJs)
       )
     )
   }