src/main/scala/fis/base/ui/FieldTable.scala
changeset 99 49eb72a46208
parent 72 077b875a2a0c
child 105 66aeb6b3a3a7
equal deleted inserted replaced
98:eac38214183d 99:49eb72a46208
    16 package fis.base.ui
    16 package fis.base.ui
    17 
    17 
    18 import net.liftweb.http.Templates
    18 import net.liftweb.http.Templates
    19 import net.liftweb.util._
    19 import net.liftweb.util._
    20 import net.liftweb.util.Helpers._ // CSS transforms
    20 import net.liftweb.util.Helpers._ // CSS transforms
    21 import scala.xml.NodeSeq
    21 import scala.xml.{NodeSeq, Text}
    22 
    22 
    23 /**
    23 /**
    24  * Template driven table, compatible w/ datatables.net.
    24  * Template driven table, compatible w/ datatables.net.
    25  * Template location: <code>/templates-hidden/datatable</code>.
    25  * Template location: <code>/templates-hidden/datatable</code>.
    26  */
    26  */
    27 trait FieldTable[T] {
    27 trait FieldTable[T] {
    28   protected def load: NodeSeq =
    28   protected def load: NodeSeq =
    29     Templates(List("templates-hidden", "datatable")) openOr NodeSeq.Empty
    29     Templates(List("templates-hidden", "datatable")) openOr NodeSeq.Empty
    30 
    30 
    31   protected def cols(cs: Iterable[ReadableField]) =
    31   protected def cols(cs: Iterable[ReadableField]) =
    32     ".field-name *" #> (cs map(_.displayName))
    32     ".field-name *" #> (cs map { f =>
       
    33     f.displayNameHtml openOr Text(f.displayName) })
    33 
    34 
    34   protected def cells(cs: Iterable[T]) =
    35   protected def cells(cs: Iterable[T]) =
    35     ".r" #> cs.map { v => "td *" #> (fields(v) map { _.asHtml }) }
    36     ".r" #> cs.map { v => "td *" #> (fields(v) map { _.asHtml }) }
    36 
    37 
    37   protected def fields(v: T): Iterable[ReadableField]
    38   protected def fields(v: T): Iterable[ReadableField]