i18n and improvements

This commit is contained in:
Jamie Curnow
2018-07-18 16:55:09 +10:00
parent d49c3ba3af
commit b6cff5a7d8
34 changed files with 314 additions and 412 deletions

View File

@@ -1,36 +1,14 @@
'use strict';
const numeral = require('numeral');
const moment = require('moment');
module.exports = {
/**
* @param {Integer} number
* @param {Integer} number
* @returns {String}
*/
niceNumber: function (number) {
return numeral(number).format('0,0');
},
/**
* @param {String|Integer} date
* @returns {String}
*/
shortTime: function (date) {
let shorttime = '';
if (typeof date === 'number') {
shorttime = moment.unix(date).format('H:mm A');
} else {
shorttime = moment(date).format('H:mm A');
}
return shorttime;
},
replaceSlackLinks: function (content) {
return content.replace(/<(http[^|>]+)\|([^>]+)>/gi, '<a href="$1" target="_blank">$2</a>');
}
};

View File

@@ -1,10 +1,9 @@
'use strict';
const _ = require('underscore');
const Mn = require('backbone.marionette');
const moment = require('moment');
const numeral = require('numeral');
const i18n = require('../app/i18n');
const _ = require('underscore');
const Mn = require('backbone.marionette');
const moment = require('moment');
const i18n = require('../app/i18n');
let render = Mn.Renderer.render;
@@ -14,30 +13,6 @@ Mn.Renderer.render = function (template, data, view) {
data.i18n = i18n;
/**
* @param {Integer} number
* @returns {String}
*/
data.niceNumber = function (number) {
return numeral(number).format('0,0');
};
/**
* @param {Integer} seconds
* @returns {String}
*/
data.secondsToTime = function (seconds) {
let sec_num = parseInt(seconds, 10);
let minutes = Math.floor(sec_num / 60);
let sec = sec_num - (minutes * 60);
if (sec < 10) {
sec = '0' + sec;
}
return minutes + ':' + sec;
};
/**
* @param {String} date
* @returns {String}
@@ -50,68 +25,6 @@ Mn.Renderer.render = function (template, data, view) {
return moment(date).format(format);
};
/**
* @param {String} date
* @returns {String}
*/
data.shortDate = function (date) {
let shortdate = data.formatDbDate(date, 'YYYY-MM-DD');
return moment().format('YYYY-MM-DD') === shortdate ? 'Today' : shortdate;
};
/**
* @param {String} date
* @returns {String}
*/
data.shortTime = function (date) {
return data.formatDbDate(date, 'H:mm A');
};
/**
* @param {String} string
* @returns {String}
*/
data.escape = function (string) {
let entityMap = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#39;',
'/': '&#x2F;'
};
return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
};
/**
* @param {String} string
* @param {Integer} length
* @returns {String}
*/
data.trim = function (string, length) {
if (string.length > length) {
let trimmedString = string.substr(0, length);
return trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(' '))) + '...';
}
return string;
};
/**
* @param {String} name
* @returns {String}
*/
data.niceVarName = function (name) {
return name.replace('_', ' ')
.replace(/^(.)|\s+(.)/g, function ($1) {
return $1.toUpperCase();
});
};
return render.call(this, template, data, view);
};