Skip to content
This repository has been archived by the owner on Sep 27, 2018. It is now read-only.

Commit

Permalink
Issues #83-#84. Display time of tweets.
Browse files Browse the repository at this point in the history
  • Loading branch information
Florent Biville committed Feb 28, 2013
1 parent 42787cf commit 9de40ac
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 5 deletions.
36 changes: 36 additions & 0 deletions src/main/webapp/static/js/ext/jquery-prettydate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* JavaScript Pretty Date
* Copyright (c) 2011 John Resig (ejohn.org)
* Licensed under the MIT and GPL licenses.
*/

// Takes an ISO time and returns a string representing how
// long ago the date represents.
function prettyDate(time) {
var date = new Date((time || "").replace(/-/g, "/").replace(/[TZ]/g, " ")),
diff = (((new Date()).getTime() - date.getTime()) / 1000),
day_diff = Math.floor(diff / 86400);

if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31)
return;

return day_diff == 0 && (
diff < 60 && "just now" ||
diff < 120 && "1 minute ago" ||
diff < 3600 && Math.floor(diff / 60) + " minutes ago" ||
diff < 7200 && "1 hour ago" ||
diff < 86400 && Math.floor(diff / 3600) + " hours ago") ||
day_diff == 1 && "Yesterday" ||
day_diff < 7 && day_diff + " days ago" ||
day_diff < 31 && Math.ceil(day_diff / 7) + " weeks ago";
}

// If jQuery is included in the page, adds a jQuery plugin to handle it as well
if (typeof jQuery != "undefined")
jQuery.fn.prettyDate = function () {
return this.each(function () {
var date = prettyDate(this.title);
if (date)
jQuery(this).text(date);
});
};
7 changes: 5 additions & 2 deletions src/main/webapp/static/js/lib/twitterHelper.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*global twitterlib: true*/
/*global twitterlib: true
prettyDate: true*/
define([
"jquery",
"lib/logger",
Expand All @@ -7,14 +8,16 @@ define([
"text!tpl/tweet.tpl",
"underscore",
"ext/async",
"ext/jquery-prettydate",
"ext/twitterlib"], function($, logger, stringUtils, templateHelper, tweetTemplate, _, async) {

var displayTweets = function(tweets) {
var htmlTweets = $("#tweets ul");
_.map(tweets, function(tweet) {
var html = $(templateHelper.template(tweetTemplate, {
"from_user": tweet.from_user,
"text": tweet.text
"text": tweet.text,
"time": prettyDate(tweet.created_at)
}));
htmlTweets.append(html);
});
Expand Down
8 changes: 5 additions & 3 deletions src/main/webapp/static/tpl/tweet.tpl
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<li class="tweet">
<span class="tweet_author">{{from_user}}}</span>
<br />
<span class="tweet_content">{{text}}</span>
<ul>
<li class="tweet_author">{{from_user}}}</li>
<li class="tweet_time">{{time}}}</li>
<li class="tweet_content">{{text}}}</li>
</ul>
</li>

0 comments on commit 9de40ac

Please sign in to comment.