scala-news-reader
rss/atom news reader in scala
git clone https://9o.is/git/scala-news-reader.git
UserTopbar.scala
(2227B)
1 package com.joereader.snippet
2
3 import com.joereader._
4 import model._
5 import config._
6
7 import net.liftweb._
8 import common._
9 import http._
10
11 import net.liftmodules.extras.Gravatar
12 import scala.xml._
13
14 /* Someone needs an extreme makeover. */
15 object UserTopbar {
16 def render = {
17 User.currentUser match {
18 case Full(user) =>
19 <ul class="nav pull-right" id="user">
20 <li class="dropdown" data-dropdown="dropdown">
21 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
22 <img src={
23 val bwu = new BlogWriterUser(user)
24 bwu.image
25 } width="20" height="20" style="margin-right:10px"></img>
26 <span>
27 {user.name.get}
28 </span>
29 <b class="caret"></b>
30 </a>
31 <ul class="dropdown-menu">
32 <li>
33 <a href={Site.reader.url}>Reader</a>
34 </li>
35 <li>
36 <a href={Site.searchCategories.url}>Search Writers</a>
37 </li>
38 <li>
39 <a href={Site.savedArticles.url}>Saved Articles</a>
40 </li>
41 {
42 if(user.isWriter) {
43 <li>
44 <a href={Site.userProfileLoc.calcHref(user)}>Profile</a>
45 </li>
46 <li class="divider"></li>
47 }
48 }
49 {
50 user.blogs.objs.map { blog =>
51 <li>
52 <a href={Site.blogProfileLoc.calcHref(blog)}>{blog.name.get}</a>
53 </li>
54 }
55 }
56 <li class="divider"></li>
57 <li>
58 <a href={Site.editAccount.url}>Settings</a>
59 </li>
60 <li>
61 <a href={Site.logout.url}>Log Out</a>
62 </li>
63 </ul>
64 </li>
65 </ul>
66 case _ if S.request.flatMap(_.location).map(_.name).
67 filterNot(it => List("Login", "Register").contains(it)).isDefined =>
68 <ul class="nav pull-right">
69 <li>
70 <a href="/login">Sign In</a>
71 </li>
72 </ul>
73 case _ => NodeSeq.Empty
74 }
75 }
76 }