scala-news-reader

rss/atom news reader in scala

git clone https://9o.is/git/scala-news-reader.git

UserWriterSnipView.scala

(1488B)


      1 package com.joereader.snippet
      2 
      3 import net.liftweb.util.Helpers._
      4 import scala.xml._
      5 import java.util.Date
      6 
      7 import dispatch._, Defaults._
      8 
      9 import com.joereader._
     10 import config._
     11 import lib.rss._
     12 import model._
     13 import Article._
     14 import SnipHelpers._
     15 
     16 /**
     17  * Snippets to view information about a writer only.
     18  */
     19 trait UserWriterSnipView extends UserSnip with BackgroundSnip {
     20 
     21   private def test = user.exists(_ isWriter)
     22 
     23   def username = serve(user =>
     24     Text(user.username.is))(test, NodeSeq.Empty)
     25 
     26   def about = serve(user =>
     27     Text(user.about.is))(test, NodeSeq.Empty)
     28 
     29   def bgImg(html: NodeSeq) = serve(html) {
     30     user =>
     31 
     32       "* [id]" #> imgBgId &
     33         "* [src]" #> imageBgUrl(user)
     34   }(test, NodeSeq.Empty)
     35 
     36   def followingList(html: NodeSeq) = serve(html) {
     37     user =>
     38       val following = user.following.random(6)
     39 
     40       "*" #> following.map(bwu =>
     41         <a href={ bwu.link }>
     42           <img src={ bwu.image }/>
     43         </a>)
     44   }(test, NodeSeq.Empty)
     45 
     46   def followingAmount(html: NodeSeq) = serve(html) {
     47     user =>
     48       val following: Int = user.following.get.size
     49       if (following > 0)
     50         "*" #>
     51           <a href={ Site.userFollowingLoc.calcHref(user) }>
     52             Following { following }
     53           </a>
     54       else
     55         "*" #> NodeSeq.Empty
     56   }(test, NodeSeq.Empty)
     57 
     58   def showIfWriter(html: NodeSeq) =
     59     if (test) html else NodeSeq.Empty
     60 
     61   def showIfWriterAndLoggedIn(html: NodeSeq) =
     62     if (test && User.isLoggedIn) html else NodeSeq.Empty
     63 }