Skip to content

Commit

Permalink
Add months to nicedates plugin. Fix bug 744001.
Browse files Browse the repository at this point in the history
  • Loading branch information
glogiotatidis committed May 2, 2012
1 parent dd386e9 commit 84592ae
Show file tree
Hide file tree
Showing 4 changed files with 153 additions and 141 deletions.
236 changes: 118 additions & 118 deletions media/js/jquery.prettydate.js
@@ -1,118 +1,118 @@
/*
* jQuery pretty date plug-in 1.0.0
*
* http://bassistance.de/jquery-plugins/jquery-plugin-prettydate/
*
* Based on John Resig's prettyDate http://ejohn.org/blog/javascript-pretty-date
*
* Copyright (c) 2009 Jörn Zaefferer
*
* $Id: jquery.validate.js 6096 2009-01-12 14:12:04Z joern.zaefferer $
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/

(function($) {

$.prettyDate = {

template: function(source, params) {
if ( arguments.length == 1 )
return function() {
var args = $.makeArray(arguments);
args.unshift(source);
return $.prettyDate.template.apply( this, args );
};
if ( arguments.length > 2 && params.constructor != Array ) {
params = $.makeArray(arguments).slice(1);
}
if ( params.constructor != Array ) {
params = [ params ];
}
$.each(params, function(i, n) {
source = source.replace(new RegExp('\\{' + i + '\\}', 'g'), n);
});
return source;
},

now: function() {
return new Date();
},

fromUTC: function (utcDate, isUTC) {
if (!isUTC) {
return utcDate;
} else {
var date = new Date();
date.setUTCDate(utcDate.getDate());
date.setUTCHours(utcDate.getHours());
date.setUTCMonth(utcDate.getMonth());
date.setUTCFullYear(utcDate.getFullYear());
date.setUTCMinutes(utcDate.getMinutes());
date.setUTCSeconds(utcDate.getSeconds());
date.setUTCMilliseconds(utcDate.getMilliseconds());
return date;
}
},

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

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

var messages = $.prettyDate.messages;
return day_diff == 0 && (
diff < 60 && messages.now ||
diff < 120 && messages.minute ||
diff < 3600 && messages.minutes(Math.floor( diff / 60 )) ||
diff < 7200 && messages.hour ||
diff < 86400 && messages.hours(Math.floor( diff / 3600 ))) ||
day_diff == 1 && messages.yesterday ||
day_diff < 7 && messages.days(day_diff) ||
day_diff < 31 && messages.weeks(Math.ceil( day_diff / 7 ));
}

};

$.prettyDate.messages = {
now: 'just now',
minute: '1 minute ago',
minutes: $.prettyDate.template('{0} minutes ago'),
hour: '1 hour ago',
hours: $.prettyDate.template('{0} hours ago'),
yesterday: 'Yesterday',
days: $.prettyDate.template('{0} days ago'),
weeks: $.prettyDate.template('{0} weeks ago')
};

$.fn.prettyDate = function(options) {
options = $.extend({
value: function() {
return $(this).attr(options.attribute);
},
interval: 10000,
attribute: 'title',
isUTC: false
}, options);
var elements = this;
function format() {
elements.each(function() {
var date = $.prettyDate.format(options.value.apply(this), options.isUTC);
if ( date && $(this).text() != date )
$(this).text( date );
});
}
format();
if (options.interval)
setInterval(format, options.interval);
return this;
};

})(jQuery);
/*
* jQuery pretty date plug-in 1.0.0
*
* http://bassistance.de/jquery-plugins/jquery-plugin-prettydate/
*
* Based on John Resig's prettyDate http://ejohn.org/blog/javascript-pretty-date
*
* Copyright (c) 2009 Jörn Zaefferer
*
* $Id: jquery.validate.js 6096 2009-01-12 14:12:04Z joern.zaefferer $
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/

(function($) {
$.prettyDate = {
template: function(source, params) {
if ( arguments.length == 1 )
return function() {
var args = $.makeArray(arguments);
args.unshift(source);
return $.prettyDate.template.apply( this, args );
};
if ( arguments.length > 2 && params.constructor != Array ) {
params = $.makeArray(arguments).slice(1);
}
if ( params.constructor != Array ) {
params = [ params ];
}
$.each(params, function(i, n) {
source = source.replace(new RegExp('\\{' + i + '\\}', 'g'), n);
});
return source;
},

now: function() {
return new Date();
},

fromUTC: function (utcDate, isUTC) {
if (!isUTC) {
return utcDate;
} else {
var date = new Date();
date.setUTCDate(utcDate.getDate());
date.setUTCHours(utcDate.getHours());
date.setUTCMonth(utcDate.getMonth());
date.setUTCFullYear(utcDate.getFullYear());
date.setUTCMinutes(utcDate.getMinutes());
date.setUTCSeconds(utcDate.getSeconds());
date.setUTCMilliseconds(utcDate.getMilliseconds());
return date;
}
},

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

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

var messages = $.prettyDate.messages;
return day_diff == 0 && (
diff < 60 && messages.now ||
diff < 120 && messages.minute ||
diff < 3600 && messages.minutes(Math.floor( diff / 60 )) ||
diff < 7200 && messages.hour ||
diff < 86400 && messages.hours(Math.floor( diff / 3600 ))) ||
day_diff == 1 && messages.yesterday ||
day_diff < 7 && messages.days(day_diff) ||
day_diff < 28 && messages.weeks(Math.ceil( day_diff / 7 )) ||
day_diff < 168 && messages.months(Math.ceil(day_diff / 28));
}

};

$.prettyDate.messages = {
now: 'just now',
minute: '1 minute ago',
minutes: $.prettyDate.template('{0} minutes ago'),
hour: '1 hour ago',
hours: $.prettyDate.template('{0} hours ago'),
yesterday: 'Yesterday',
days: $.prettyDate.template('{0} days ago'),
weeks: $.prettyDate.template('{0} weeks ago'),
months: $.prettyDate.template('{0} months ago'),
};

$.fn.prettyDate = function(options) {
options = $.extend({
value: function() {
return $(this).attr(options.attribute);
},
interval: 10000,
attribute: 'title',
isUTC: false
}, options);
var elements = this;
function format() {
elements.each(function() {
var date = $.prettyDate.format(options.value.apply(this), options.isUTC);
if ( date && $(this).text() != date )
$(this).text( date );
});
}
format();
if (options.interval)
setInterval(format, options.interval);
return this;
};

})(jQuery);
7 changes: 7 additions & 0 deletions remo/base/helpers.py
@@ -1,5 +1,6 @@
import base64
import binascii
import time

from django.conf import settings
from django.contrib.auth.models import User
Expand Down Expand Up @@ -41,6 +42,12 @@ def format_datetime_iso(obj):
return obj.isoformat()


@register.filter
def format_datetime_unix(obj):
"""Return unix representation of obj."""
return time.mktime(obj.timetuple())


@register.function
def get_static_map_url(width, height, lon, lat, zoom=4):
"""Return static map url."""
Expand Down

0 comments on commit 84592ae

Please sign in to comment.