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&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