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>


Reply via email to