Author: andre
Date: 2010-07-08 09:04:59 +0200 (Thu, 08 Jul 2010)
New Revision: 42833

Added:
   mmweb/trunk/src/main/webapp/html/style/js/main.js
Modified:
   mmweb/trunk/src/main/webapp/index.jspx
Log:
added tweets to homepage, including a javascript tom format them

Added: mmweb/trunk/src/main/webapp/html/style/js/main.js
===================================================================
--- mmweb/trunk/src/main/webapp/html/style/js/main.js                           
(rev 0)
+++ mmweb/trunk/src/main/webapp/html/style/js/main.js   2010-07-08 07:04:59 UTC 
(rev 42833)
@@ -0,0 +1,46 @@
+/*
+  Main javascript, depends on jQuery
+  @author:  Andre van Toly
+  @version: '$Id:  $'
+*/
+
+function tweets() {
+    $('li.tweet em a').each(function(i) {
+        var time = $(this).text();
+        $(this).text( relative(time) );
+    });
+    $('li.tweet').each(function(i) {
+        var txt = $(this).html();
+        txt = txt.replace(/\B@([_a-z0-9]+)/ig, function(r) { return 
r.charAt(0)+'<a 
href="http://twitter.com/'+r.substring(1)+'">'+r.substring(1)+'</a>';});
+        $(this).html(txt);
+    });
+}
+
+function relative(time_value) {
+    var values = time_value.split(" ");
+    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + 
values[3];
+    var parsed_date = Date.parse(time_value);
+    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
+    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
+    delta = delta + (relative_to.getTimezoneOffset() * 60);
+  
+    if (delta < 60) {
+        return 'less than a minute ago';
+    } else if(delta < 120) {
+        return 'about a minute ago';
+    } else if(delta < (60*60)) {
+        return (parseInt(delta / 60)).toString() + ' minutes ago';
+    } else if(delta < (120*60)) {
+        return 'about an hour ago';
+    } else if(delta < (24*60*60)) {
+        return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
+    } else if(delta < (48*60*60)) {
+        return '1 day ago';
+    } else {
+        return (parseInt(delta / 86400)).toString() + ' days ago';
+    }
+}
+
+$(document).ready(function() {
+    tweets();
+});

Modified: mmweb/trunk/src/main/webapp/index.jspx
===================================================================
--- mmweb/trunk/src/main/webapp/index.jspx      2010-07-08 06:47:02 UTC (rev 
42832)
+++ mmweb/trunk/src/main/webapp/index.jspx      2010-07-08 07:04:59 UTC (rev 
42833)
@@ -2,6 +2,8 @@
     version="2.0"
     xmlns:jsp="http://java.sun.com/JSP/Page";
     xmlns:c="http://java.sun.com/jsp/jstl/core";
+    xmlns:x="http://java.sun.com/jsp/jstl/xml";
+    xmlns:os="http://www.opensymphony.com/oscache";
     xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
     xmlns:mmweb="urn:jsptagdir:/WEB-INF/tags/mmweb">
   <mmweb:html styleClass="home">
@@ -39,11 +41,33 @@
             <li><a href="#">Bugtracker</a></li>
             <li><a href="#">Mailinglists</a></li>
           </ul>
-          <h4 class="twitter"><a href="#mmbase">Follow us on twitter</a></h4>
-          <ul class="nolist">
-            <li>[mihxil] http://www.mmbase.org/jira is running again. Thanks a 
lot, Justin. - 1 day ago</li>
-            <li>[elfuego] We've put Jira offline, for security reasons. 
http://mmbase.org/jira/ Read http://bit.ly/c2Ugm6 for more info. - 2 days 
ago</li>
-          </ul>
+
+          <!-- mmbase tweets -->
+          <mm:content expires="120" escaper="none">
+            <div class="tweets">
+              <h4><a href="http://twitter.com/elfuego2";>Follow us on 
twitter</a></h4>
+              <ul>
+                <os:cache key="tweet.feed.elfuego2" time="120">
+                  <c:catch var="ex1">
+                    <c:import var="url" 
url="http://twitter.com/statuses/user_timeline/mmbase.xml?callback=twitterCallback2&amp;count=3";
 />
+                    <x:parse var="doc" doc="${url}" />
+                    <x:forEach var="n" select="$doc/statuses/status">
+                      <li class="tweet">
+                        <c:set var="id"><x:out select="$n/id" /></c:set>
+                        <mm:import id="text" reset="true"><x:out 
select="$n/text" /></mm:import>
+                        ${mm:escape('links', text)}
+                        <em><a 
href="http://twitter.com/elfuego2/statuses/${id}";><x:out select="$n/created_at" 
/></a></em>
+                      </li>
+                    </x:forEach>
+                  </c:catch>
+                  <c:if test="${! empty ex1}">
+                    <li class="tweet"><os:usecached /></li>
+                  </c:if>
+                </os:cache>
+              </ul>
+            </div>
+          </mm:content>
+
           <h4><a href="#">Bugtracker the last 7 days</a></h4>
           <ul class="nolist">
               <li><a href="#">3 new issues</a></li>

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to