Author: vdichev
Date: Sun Sep 20 21:32:46 2009
New Revision: 817107
URL: http://svn.apache.org/viewvc?rev=817107&view=rev
Log:
Clean up HTML for statistics snippets.
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
URL:
http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala?rev=817107&r1=817106&r2=817107&view=diff
==============================================================================
---
incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
(original)
+++
incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
Sun Sep 20 21:32:46 2009
@@ -172,58 +172,44 @@
</xml:group>
def popular(in: NodeSeq): NodeSeq =
- <xml:group>
- {PopStatsActor !? PopStatsActor.TopStats(ResendStat, 5, 1 week) match {
- case l: List[Tuple2[Long,Int]] =>
- <table>
- <thead>
- <tr> <th>Resent</th> <th>Message</th> </tr>
- </thead>
- <tbody>
- {
- val msgMap = Message.findMessages(l.map(_._1))
- l.map{
- case (msgId, freq) =>
- (for (m <- msgMap.get(msgId)) yield {
- <tr>
- <td>{freq}</td>
- <td>{m.author.obj.map(_.nickname.is).openOr("")}:
- {m.digestedXHTML}
- <!--{new
java.util.Date(m.when.toLong).toString}--></td>
- </tr>
- }).getOrElse(<br/>)
- }
- }
- </tbody>
- </table>
- case _ => <br/>
- }
+ PopStatsActor !? PopStatsActor.TopStats(ResendStat, 5, 1 week) match {
+ case l: List[Tuple2[Long,Int]] =>
+ val msgMap = Message.findMessages(l.map(_._1))
+ val messages =
+ for ((id, freq) <- l;
+ msg <- msgMap.get(id))
+ yield (msg, freq)
+ messages match {
+ case Nil => NodeSeq.Empty
+ case xs => bind("disp", in,
+ "item" ->
+ (lst => xs.flatMap{case (m,freq) => bind(
+ "item", lst,
+ "freq" -> freq,
+ "author" ->
m.author.obj.map(_.nickname.is).openOr(""),
+ "text" -> m.digestedXHTML,
+ "date" -> new
java.util.Date(m.when.toLong).toString)}))
+ }
+ case _ => NodeSeq.Empty
}
- </xml:group>
def links(in: NodeSeq): NodeSeq =
- <xml:group>
- {PopStatsActor !? PopStatsActor.TopStats(LinkClickedStat, 5, 1 week) match
{
- case l: List[Tuple2[Long,Int]] =>
- <table>
- <thead>
- <tr> <th>Clicked</th> <th>Link</th> </tr>
- </thead>
- <tbody>
- {
- l.map{
- case (linkId, freq) =>
- (for (u <- UrlStore.find(linkId)) yield {
- <tr>
- <td>{freq}</td> <td>{u.url.is}</td>
- </tr>
- }).getOrElse(<br/>)
- }
- }
- </tbody>
- </table>
- case _ => <br/>
- }
+ PopStatsActor !? PopStatsActor.TopStats(LinkClickedStat, 5, 1 week) match {
+ case Nil => NodeSeq.Empty
+ case xs: List[Tuple2[Long,Int]] =>
+ bind("disp", in,
+ "item" ->
+ (lst => xs.flatMap {
+ case (linkId, freq) =>
+ UrlStore.find(linkId).map { u => bind(
+ "item", lst,
+ "freq" -> freq,
+ "url" -> u.url.is
+ )
+ }.getOrElse(NodeSeq.Empty)
+ }
+ )
+ )
+ case _ => NodeSeq.Empty
}
- </xml:group>
}
Modified:
incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html
URL:
http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html?rev=817107&r1=817106&r2=817107&view=diff
==============================================================================
--- incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html
(original)
+++ incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html
Sun Sep 20 21:32:46 2009
@@ -321,12 +321,39 @@
<div class="b-stats">
<p id="stats-para">Popular messages</p>
- <lift:UserSnip.popular/>
+ <lift:UserSnip.popular>
+ <table>
+ <thead>
+ <tr> <th>Resent</th> <th>Message</th> </tr>
+ </thead>
+ <tbody>
+ <disp:item>
+ <tr>
+ <td><item:freq/></td>
+ <td><item:author/>:
+ <item:text/>
+ <!--<item:date/>--></td>
+ </tr>
+ </disp:item>
+ </tbody>
+ </table>
+ </lift:UserSnip.popular>
</div>
<div class="b-stats">
<p id="stats-para">Popular links</p>
- <lift:UserSnip.links/>
+ <lift:UserSnip.links>
+ <table>
+ <thead>
+ <tr> <th>Clicked</th> <th>Link</th> </tr>
+ </thead>
+ <tbody>
+ <disp:item>
+ <tr> <td><item:freq/></td> <td><item:url/></td> </tr>
+ </disp:item>
+ </tbody>
+ </table>
+ </lift:UserSnip.links>
</div>
<lift:ignore>