diff -r 5492a4e4e60d -r 22424e6508cd src/main/scala/net/tz/lift/snippet/Panel.scala --- a/src/main/scala/net/tz/lift/snippet/Panel.scala Wed Aug 17 08:47:55 2011 +0200 +++ b/src/main/scala/net/tz/lift/snippet/Panel.scala Wed Aug 17 08:48:43 2011 +0200 @@ -46,12 +46,28 @@ new Panel(fields.map(AttrRow(_))) } -class Panel(attrs: => Iterable[AttrRow]) extends Function1[NodeSeq, NodeSeq] -{ +class Panel(attrs: => Iterable[AttrRow]) extends CssTr { def apply(in: NodeSeq): NodeSeq = {attrs.map(_())}
def &(other: Function1[NodeSeq, NodeSeq]) = new Function1[NodeSeq, NodeSeq] { def apply(in: NodeSeq): NodeSeq = List(Panel.this, other) flatMap (_(in)) } } +import net.liftweb.http.TemplateFinder +import net.liftweb.util.Helpers._ // CSS transforms + +/** + * A panel using template in /templates-hidden/panel for + * values rendering. + */ +class TplPanel(cells: List[(NodeSeq, NodeSeq)]) extends CssTr { + def apply(in: NodeSeq): NodeSeq = TemplateFinder.findAnyTemplate( + List("templates-hidden", "panel")) map { xml => + (".row *" #> cells.map { r => + ".n *" #> r._1 & + ".v *" #> r._2 + })(xml) + } openOr NodeSeq.Empty +} + // vim: set ts=2 sw=2 et: