diff --git a/addons/hr_attendance/static/src/js/attendance.js b/addons/hr_attendance/static/src/js/attendance.js index c1545d10470..c6766e99779 100644 --- a/addons/hr_attendance/static/src/js/attendance.js +++ b/addons/hr_attendance/static/src/js/attendance.js @@ -34,7 +34,7 @@ var AttendanceSlider = Widget.extend({ title: function() { var last_text = formats.format_value(self.last_sign, {type: "datetime"}); var current_text = formats.format_value(new Date(), {type: "datetime"}); - var duration = self.last_sign ? $.timeago(self.last_sign) : "none"; + var duration = self.last_sign ? moment(self.last_sign).fromNow() : "none"; if (self.get("signed_in")) { return _.str.sprintf(_t("Last sign in: %s,
%s.
Click to sign out."), last_text, duration); } else { diff --git a/addons/im_livechat/views/im_livechat_channel_templates.xml b/addons/im_livechat/views/im_livechat_channel_templates.xml index 0efd2310a14..52257ef1658 100644 --- a/addons/im_livechat/views/im_livechat_channel_templates.xml +++ b/addons/im_livechat/views/im_livechat_channel_templates.xml @@ -107,7 +107,6 @@ - diff --git a/addons/web/static/lib/jquery.timeago/jquery.timeago.js b/addons/web/static/lib/jquery.timeago/jquery.timeago.js deleted file mode 100644 index 91ba5fd7756..00000000000 --- a/addons/web/static/lib/jquery.timeago/jquery.timeago.js +++ /dev/null @@ -1,165 +0,0 @@ -/** - * Timeago is a jQuery plugin that makes it easy to support automatically - * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). - * - * Please note that the library has been slightly modified for i18n's sake. - * - * @name timeago - * @version 0.11.3 - * @requires jQuery v1.2.3+ - * @author Ryan McGeary - * @license MIT License - http://www.opensource.org/licenses/mit-license.php - * - * For usage and examples, visit: - * http://timeago.yarp.com/ - * - * Copyright (c) 2008-2012, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) - */ -(function($) { - $.timeago = function(timestamp) { - if (timestamp instanceof Date) { - return inWords(timestamp); - } else if (typeof timestamp === "string") { - return inWords($.timeago.parse(timestamp)); - } else if (typeof timestamp === "number") { - return inWords(new Date(timestamp)); - } else { - return inWords($.timeago.datetime(timestamp)); - } - }; - var $t = $.timeago; - - $.extend($.timeago, { - settings: { - refreshMillis: 60000, - allowFuture: false, - strings: { - prefixAgo: null, - prefixFromNow: null, - suffixAgo: "ago", - suffixFromNow: "from now", - seconds: "less than a minute", - minute: "about a minute", - minutes: "%d minutes", - hour: "about an hour", - hours: "about %d hours", - day: "a day", - days: "%d days", - month: "about a month", - months: "%d months", - year: "about a year", - years: "%d years", - wordSeparator: " ", - numbers: [] - }, - translator: null - }, - inWords: function(distanceMillis) { - var $l = this.settings.strings; - var prefix = $l.prefixAgo; - var suffix = $l.suffixAgo; - if (this.settings.allowFuture) { - if (distanceMillis < 0) { - prefix = $l.prefixFromNow; - suffix = $l.suffixFromNow; - } - } - - var seconds = Math.abs(distanceMillis) / 1000; - var minutes = seconds / 60; - var hours = minutes / 60; - var days = hours / 24; - var years = days / 365; - - function convert(stringOrFunction, number) { - var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction; - - // return the proper string and the numeric value that goes in it - return {'string': string, 'value': ($l.numbers && $l.numbers[number]) || number}; - } - - var stringAndNumber = seconds < 45 && convert($l.seconds, Math.round(seconds)) || - seconds < 90 && convert($l.minute, 1) || - minutes < 45 && convert($l.minutes, Math.round(minutes)) || - minutes < 90 && convert($l.hour, 1) || - hours < 24 && convert($l.hours, Math.round(hours)) || - hours < 42 && convert($l.day, 1) || - days < 30 && convert($l.days, Math.round(days)) || - days < 45 && convert($l.month, 1) || - days < 365 && convert($l.months, Math.round(days / 30)) || - years < 1.5 && convert($l.year, 1) || - convert($l.years, Math.round(years)); - - var string = stringAndNumber.string; - var value = stringAndNumber.value; - var separator = $l.wordSeparator === undefined ? " " : $l.wordSeparator; - - // compose and translate the final string - var fullString = $.trim([prefix, string, suffix].join(separator)); - var translatedString = $t.settings.translator ? - $t.settings.translator(fullString) : - fullString; - - return translatedString.replace(/%d/i, value); - }, - parse: function(iso8601) { - var s = $.trim(iso8601); - s = s.replace(/\.\d\d\d+/,""); // remove milliseconds - s = s.replace(/-/,"/").replace(/-/,"/"); - s = s.replace(/T/," ").replace(/Z/," UTC"); - s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400 - return new Date(s); - }, - datetime: function(elem) { - var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); - return $t.parse(iso8601); - }, - isTime: function(elem) { - // jQuery's `is()` doesn't play well with HTML5 in IE - return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time"); - } - }); - - $.fn.timeago = function() { - var self = this; - self.each(refresh); - - var $s = $t.settings; - if ($s.refreshMillis > 0) { - setInterval(function() { self.each(refresh); }, $s.refreshMillis); - } - return self; - }; - - function refresh() { - var data = prepareData(this); - if (!isNaN(data.datetime)) { - $(this).text(inWords(data.datetime)); - } - return this; - } - - function prepareData(element) { - element = $(element); - if (!element.data("timeago")) { - element.data("timeago", { datetime: $t.datetime(element) }); - var text = $.trim(element.text()); - if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) { - element.attr("title", text); - } - } - return element.data("timeago"); - } - - function inWords(date) { - return $t.inWords(distance(date)); - } - - function distance(date) { - return (new Date().getTime() - date.getTime()); - } - - // fix for IE6 suckage - document.createElement("abbr"); - document.createElement("time"); -}(jQuery)); diff --git a/addons/web/static/src/js/framework/translation.js b/addons/web/static/src/js/framework/translation.js index 47673756e81..69743e9787d 100644 --- a/addons/web/static/src/js/framework/translation.js +++ b/addons/web/static/src/js/framework/translation.js @@ -80,11 +80,6 @@ var _lt = function (s) { return {toString: function () { return _t(s); }}; }; -// provide timeago.js with our own translator method -if($.timeago){ // make timeago an optional dependency of translation - $.timeago.settings.translator = _t; -} - qweb.default_dict = { '_' : _, 'JSON': JSON, diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 2813acd5933..294f546db8e 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -16,7 +16,6 @@ - diff --git a/addons/website_slides/static/src/js/slides.js b/addons/website_slides/static/src/js/slides.js index 71d20378044..f351cc0eb66 100644 --- a/addons/website_slides/static/src/js/slides.js +++ b/addons/website_slides/static/src/js/slides.js @@ -24,7 +24,7 @@ $(document).ready(function () { if (datetime_obj && new Date().getTime() - datetime_obj.getTime() > 7 * 24 * 60 * 60 * 1000) { display_str = datetime_obj.toDateString(); } else { - display_str = $.timeago(datetime_obj); + display_str = moment(datetime_obj).fromNow(); } $(el).text(display_str); });