--- a/src/main/scala/net/tz/lift/snippet/Panel.scala Wed Aug 17 08:48:43 2011 +0200
+++ b/src/main/scala/net/tz/lift/snippet/Panel.scala Sat Aug 20 10:43:23 2011 +0200
@@ -15,6 +15,7 @@
*/
package net.tz.lift.snippet
+import net.liftweb.common._
import net.liftweb.mapper.MappedField
import scala.xml.{NodeSeq, Text}
@@ -60,10 +61,17 @@
* A panel using template in <code>/templates-hidden/panel</code> for
* values rendering.
*/
-class TplPanel(cells: List[(NodeSeq, NodeSeq)]) extends CssTr {
+class TplPanel(caption: Box[String], cells: List[(NodeSeq, NodeSeq)],
+ path: Box[List[String]]) extends CssTr {
+
+ def this(cells: List[(NodeSeq, NodeSeq)], p: List[String]) =
+ this(Empty, cells, Full(p))
+ def this(cells: List[(NodeSeq, NodeSeq)]) = this(Empty, cells, Empty)
+
def apply(in: NodeSeq): NodeSeq = TemplateFinder.findAnyTemplate(
- List("templates-hidden", "panel")) map { xml =>
- (".row *" #> cells.map { r =>
+ path.openOr(List("templates-hidden", "panel"))) map { xml =>
+ (".caption *" #> caption &
+ ".row *" #> cells.map { r =>
".n *" #> r._1 &
".v *" #> r._2
})(xml)