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 }