Skip to content

Instantly share code, notes, and snippets.

@dph01
dph01 / gist:1703611
Created January 30, 2012 09:49
TBUtils
package code.snippet
import scala.xml._
import net.liftweb.util.Helpers._
import scala.xml.transform._
import net.liftweb.common.Logger
object TBUtils extends Logger {
/* Transforms the XML produced by Menu.build such that any menus defined as:
Menu("Test") / "test" >> LocGroup("test") >> PlaceHolder submenus (
Menu("Test 2") / "test2",
<div class="topbar">
<div class="fill">
<div class="container">
<a class="brand" href="/">My App</a>
<span class="lift:TBUtils.menuToTBNav?eager_eval=true">
<span class="lift:Menu.builder?
top:class=nav;li_item:class=active;linkToSelf=true;expandAll=true"></span>
</span>
</div>
</div>
@dph01
dph01 / gist:1704979
Created January 30, 2012 15:29
topbar1
<div class="topbar">
<div class="fill">
<div class="container">
<a class="brand" href="/">My App</a>
<span class="lift:TBUtils.menuToTBNav?eager_eval=true">
<span class="lift:Menu.builder?
top:class=nav;li_item:class=active;linkToSelf=true;expandAll=true"></span>
</span>
</div>
</div>
@dph01
dph01 / gist:1705102
Created January 30, 2012 15:53
menu1
Menu("Home") / "index",
Menu("Page 1") / "page1",
Menu("Page 2") / "page2",
Menu("Page 3") / "page3" >> PlaceHolder >> submenus (
Menu("Page 3a") / "page3a",
Menu("Page 3b") / "page3b"
),
@dph01
dph01 / gist:1817391
Created February 13, 2012 14:50
twitter nav menu definition
def userLinkText = User.currentUser.map(_.shortName).openOr("not logged in").toString
val entries = List(Menu("Home") / "index" >> LocGroup("main"),
Menu("Page 1") / "page1" >> LocGroup("main"),
Menu("Page 2") / "page2" >> LocGroup("main"),
Menu("Page 3") / "page3" >> LocGroup("main") >> PlaceHolder submenus (
Menu("Page 3a") / "page3a" ,
Menu("Page 3b") / "page3b" ,
Menu("Page 3c") / "page3c") ,
User.loginMenuLoc.open_!,
@dph01
dph01 / gist:1817453
Created February 13, 2012 15:00
User object
object User extends User with MetaMegaProtoUser[User] {
...
override def loginMenuLocParams = LocGroup("user") :: super.loginMenuLocParams
override def createUserMenuLocParams = LocGroup("user") :: super.createUserMenuLocParams
}
@dph01
dph01 / gist:1817530
Created February 13, 2012 15:16
using TBNav
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/">My App</a>
<!-- create the 'main' menu items -->
<span data-lift="lift:TBNav.menuToTBNav?eager_eval=true">
<span data-lift="lift:Menu.builder?top:class=nav;li_item:class=active;linkToSelf=true;expandAll=true;group=main"></span>
</span>
<!-- create the 'user' (e.g. login/logout etc) menu items -->
<span data-lift="lift:TBNav.menuToTBNav?eager_eval=true">
def serve(reqdFile: String) : Box[LiftResponse] = {
debug("request headers: " + S.request.map( _.headers.map(h => h._1 + "\t\t" + h._2 + "\n").toString).openOr(""))
User.currentUser match {
case Full(user) => {
try {
// e.g. turn 1092345.mp4 into (1092345,mp4)
var (baseName, ext) = Media.splitExtension(reqdFile)
// should be only one in the database, check to make sure, don't want to
// show someone else's video by accident!!
val mediaList = Media.findAll(By(Media.baseNamePhysical,baseName),By(Media.fileExtension,ext))
class StatelessTestRV extends Logger {
object searchResults extends RequestVar[List[String]](Nil)
def doSearch(param: String) = {
// dummy results ....
"one" :: "two" :: "three" :: Nil
}
def processSubmit(param: String) = {
S.functionLifespan(true) {
pf(toMatch)() match {
case Full(v) =>
(true, Full(LiftRules.convertResponse((liftSession.checkRedirect(v), Nil,
S.responseCookies, req))))
case Empty =>
(true, LiftRules.notFoundOrIgnore(req, Full(liftSession)))
case f: Failure =>
(true, Full(liftSession.checkRedirect(req.createNotFound(f))))
}