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 }