base/src/sqwl/cms/layout/ArticlesInCategory.scala
author Tomas Zeman <tzeman@volny.cz>
Thu, 13 Dec 2018 15:15:13 +0100
changeset 19 83fb90bdd15b
parent 12 e7512f9dc903
permissions -rw-r--r--
Rendering of tags and lists of articles
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
package sqwl.cms.layout
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
import scalatags.Text.all._
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
import scalatags.Text.{TypedTag, tags2}
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
import sqwl.cms._
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
object ArticlesInCategory extends config {
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
  def apply(cnt: iContent, st: ViewState): Option[TypedTag[String]] =
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
    st match {
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
      case ViewCategory(c) =>
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
        val l = cnt.articlesByCategory(c)
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
        Some(tags2.section(
19
83fb90bdd15b Rendering of tags and lists of articles
Tomas Zeman <tzeman@volny.cz>
parents: 12
diff changeset
    13
          div(cls:="list-group", l.map(art =>
83fb90bdd15b Rendering of tags and lists of articles
Tomas Zeman <tzeman@volny.cz>
parents: 12
diff changeset
    14
            a(href:=s"/${http.prefix}/${art.pathSegment}",
83fb90bdd15b Rendering of tags and lists of articles
Tomas Zeman <tzeman@volny.cz>
parents: 12
diff changeset
    15
              cls:="list-group-item", art.title)
12
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
          )),
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
          if (l.isEmpty) "V této kategorii není ještě článek." else ""
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
      ))
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
      case _ => None
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
    }
e7512f9dc903 Layout: categories, articles, primary view
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
}