bc67082157fcd615 Invalid link to active sessions
authorTomas Zeman <tzeman@volny.cz>
Tue, 12 Apr 2011 19:10:31 +0200
changeset 9 9fac266526df
parent 8 4b65e897b199
child 10 397aca5b6f87
bc67082157fcd615 Invalid link to active sessions
src/main/scala/radview/snippet/SessionSnippet.scala
--- a/src/main/scala/radview/snippet/SessionSnippet.scala	Tue Apr 12 19:10:27 2011 +0200
+++ b/src/main/scala/radview/snippet/SessionSnippet.scala	Tue Apr 12 19:10:31 2011 +0200
@@ -23,19 +23,23 @@
 import net.liftweb.sitemap.Loc._
 import net.liftweb.util._
 import net.liftweb.util.{Cell => _}
+import net.liftweb.util.Helpers.urlEncode
 import net.tz.lift.snippet._
 import net.tz.lift.util._
 import radview.model.{Cdr, CdrSession, Cell}
 import scala.xml.{Elem, NodeSeq, Text}
 
 object AsCdrSession {
-  def unapply(in: String): Option[CdrSession] = Cdr.session(in)
+  def unapply(in: String): Option[CdrSession] =
+    Cdr.session(in.split('+').mkString("/"))
 }
 
 object SessionSnippet extends Loc[CdrSession] with SnippetHelpers {
 
   object showCdr extends RequestVar[Boolean](false)
 
+  def encode(s: String) = urlEncode(s.split('/').mkString("+"))
+
   val name = "session"
   val prefix = "session"
   val tpl = "session"
@@ -43,7 +47,7 @@
   val defaultValue = Empty
   val link = new Link[CdrSession](List(prefix), true) {
     override def createPath(s: CdrSession): String =
-      mkPath(prefix, s.sid)
+      mkPath(prefix, encode(s.sid))
   }
   val text = LinkText[CdrSession](s => Text("Session " + s.sid))
 
@@ -57,7 +61,7 @@
       (RResp(List("session")), s)
   })
 
-  def url(sid: String): String = "/" + prefix + "/" + sid
+  def url(sid: String): String = "/" + prefix + "/" + encode(sid)
   def url(s: CdrSession): String = url(s, false)
   def url(s: CdrSession, _showCdr: Boolean): String = link.createPath(s) +
     (if (_showCdr) "/cdr" else "")