src/main/scala/net/tz/lift/snippet/DataTable.scala
changeset 21 641c7190c566
parent 15 995184977e9b
child 42 7c811cdfa4c3
equal deleted inserted replaced
20:f1551f9d3d3e 21:641c7190c566
     1 /*
     1 /*
     2  * Copyright 2011 Tomas Zeman <tzeman@volny.cz>
     2  * Copyright 2011-2012 Tomas Zeman <tzeman@volny.cz>
     3  *
     3  *
     4  * Licensed under the Apache License, Version 2.0 (the "License");
     4  * Licensed under the Apache License, Version 2.0 (the "License");
     5  * you may not use this file except in compliance with the License.
     5  * you may not use this file except in compliance with the License.
     6  * You may obtain a copy of the License at
     6  * You may obtain a copy of the License at
     7  *
     7  *
    13  * See the License for the specific language governing permissions and
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    14  * limitations under the License.
    15  */
    15  */
    16 package net.tz.lift.snippet
    16 package net.tz.lift.snippet
    17 
    17 
    18 import net.liftweb.http.TemplateFinder
    18 import net.liftweb.http.Templates
    19 import net.liftweb.util.Helpers._ // CSS transforms
    19 import net.liftweb.util.Helpers._ // CSS transforms
    20 import scala.xml.NodeSeq
    20 import scala.xml.NodeSeq
    21 
    21 
    22 /**
    22 /**
    23  * Template driven table, compatible w/ datatables.net.
    23  * Template driven table, compatible w/ datatables.net.
    24  * Template location: <code>/templates-hidden/datatable</code>.
    24  * Template location: <code>/templates-hidden/datatable</code>.
    25  */
    25  */
    26 class DataTable(cols: List[String], cells: List[List[NodeSeq]]) extends CssTr {
    26 class DataTable(cols: List[String], cells: List[List[NodeSeq]]) extends CssTr {
    27   def apply(in: NodeSeq): NodeSeq = TemplateFinder.findAnyTemplate(
    27   def apply(in: NodeSeq): NodeSeq = Templates(
    28     List("templates-hidden", "datatable")) map { xml =>
    28     List("templates-hidden", "datatable")) map { xml =>
    29     (".field-name *" #> cols &
    29     (".field-name *" #> cols &
    30     ".row *" #> cells.map { vals => "td *" #> vals })(xml)
    30     ".row *" #> cells.map { vals => "td *" #> vals })(xml)
    31   } openOr NodeSeq.Empty
    31   } openOr NodeSeq.Empty
    32 }
    32 }