example/src/sqwl/cms/Content.scala
changeset 21 1fa630ed9b8a
parent 18 8cfd67425811
child 27 8529ce302f7c
equal deleted inserted replaced
20:677672b9e386 21:1fa630ed9b8a
     3 
     3 
     4 import java.nio.file.{Path, Paths}
     4 import java.nio.file.{Path, Paths}
     5 
     5 
     6 import enumeratum.EnumEntry.Hyphencase
     6 import enumeratum.EnumEntry.Hyphencase
     7 import enumeratum._
     7 import enumeratum._
     8 import scala.io.Source
     8 
     9 import scalatags.Text.all._
     9 import scala.collection.immutable
    10 
    10 
    11 sealed abstract class Category(val name: String) extends EnumEntry with
    11 sealed abstract class Category(val name: String) extends EnumEntry with
    12   iCategory with Hyphencase {
    12   iCategory with Hyphencase {
    13   override def pathSegment: String = entryName
    13   override def pathSegment: String = entryName
    14 }
    14 }
    15 
    15 
    16 object Category extends Enum[Category] {
    16 object Category extends Enum[Category] {
    17   val values = findValues
    17   val values: immutable.IndexedSeq[Category] = findValues
    18   case object Cat1 extends Category("Category 1")
    18   case object Cat1 extends Category("Category 1")
    19   case object Cat2 extends Category("Category 2")
    19   case object Cat2 extends Category("Category 2")
    20   case object Cat3 extends Category("Category 3")
    20   case object Cat3 extends Category("Category 3")
    21   case object Cat4 extends Category("Category 4")
    21   case object Cat4 extends Category("Category 4")
    22   case object Cat5 extends Category("Category 5")
    22   case object Cat5 extends Category("Category 5")
    27   with Hyphencase {
    27   with Hyphencase {
    28   override def pathSegment: String = entryName
    28   override def pathSegment: String = entryName
    29 }
    29 }
    30 
    30 
    31 object Tag extends Enum[Tag] {
    31 object Tag extends Enum[Tag] {
    32   val values = findValues
    32   val values: immutable.IndexedSeq[Tag] = findValues
    33   case object Tag1 extends Tag("Tag 1")
    33   case object Tag1 extends Tag("Tag 1")
    34   case object Tag2 extends Tag("Tag 2")
    34   case object Tag2 extends Tag("Tag 2")
    35   case object Tag3 extends Tag("Tag 3")
    35   case object Tag3 extends Tag("Tag 3")
    36   case object Tag4 extends Tag("Tag 4")
    36   case object Tag4 extends Tag("Tag 4")
    37   case object Tag5 extends Tag("Tag 5")
    37   case object Tag5 extends Tag("Tag 5")
    43 
    43 
    44   def appTitle: String = "Content management system example"
    44   def appTitle: String = "Content management system example"
    45 
    45 
    46   def appTitleShort: String = "CMS"
    46   def appTitleShort: String = "CMS"
    47 
    47 
    48   def icon =
    48   def icon: (String, Path) =
    49     ("icon.png", Paths.get("example/content/public/images/icon.png"))
    49     ("icon.png", Paths.get("example/content/public/images/icon.png"))
    50 
    50 
    51   def publicAssets: Path = Paths.get("example/content/public")
    51   def publicAssets: Path = Paths.get("example/content/public")
    52 
    52 
    53   def styleSheet =
    53   def styleSheet: (String, Path) =
    54     ("site.css", Paths.get("example/content/public/css/site.css"))
    54     ("site.css", Paths.get("example/content/public/css/site.css"))
    55 
    55 
    56   def articlesByTag(t: iTag): Seq[iArticle] =
    56   def articlesByTag(t: iTag): Seq[iArticle] =
    57     Articles.values.filter(_.tags contains(t))
    57     Articles.values.filter(_.tags contains t)
    58 
    58 
    59   def articlesByCategory(c: iCategory): Seq[iArticle] =
    59   def articlesByCategory(c: iCategory): Seq[iArticle] =
    60     Articles.values.filter(_.category contains(c))
    60     Articles.values.filter(_.category contains c)
    61 
    61 
    62   def tags: Seq[iTag] = Tag.values
    62   def tags: Seq[iTag] = Tag.values
    63 
    63 
    64   def categories: Seq[iCategory] = Category.values
    64   def categories: Seq[iCategory] = Category.values
    65 
    65