Files
caddy-proxy-manager/manager/src/frontend/js/lib/marionette.js
Jamie Curnow 6e7435c35d Initial commit
2017-12-21 09:02:37 +10:00

47 lines
1.1 KiB
JavaScript

'use strict';
import _ from 'underscore';
import Mn from 'backbone.marionette';
let render = Mn.Renderer.render;
Mn.Renderer.render = function (template, data, view) {
data = _.clone(data);
/**
* @param {String} string
* @returns {String}
*/
data.escape = function (string) {
let entityMap = {
'&': '&',
'<': '&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;
};
return render.call(this, template, data, view);
};
module.exports = Mn;