trello-sprinter
Version:
Provides summarizations of sprint activity in a Trello project
147 lines (119 loc) • 2.56 kB
JavaScript
export const Util = function() {}
Util.merge = function(obj1, obj2) {
var obj = {};
for(const key in obj1) {
if(obj1.hasOwnProperty(key)) {
obj[key] = obj1[key];
}
}
for(const key in obj2) {
if(obj2.hasOwnProperty(key)) {
obj[key] = obj2[key];
}
}
return obj;
}
/**
* Remove all HTML tags from a string.
* @param str String to process
* @returns string without tags
*/
Util.strip_tags = function(str) {
return str.replace(/<(?:.|\n)*?>/gm, '');
}
Util.createElement = function(type, cls) {
let e = document.createElement(type);
if(cls !== undefined) {
Util.addClass(e, cls);
}
return e;
}
Util.addClass = function(el, classNames) {
const names = classNames.split(' ');
for(const name of names) {
if (el.classList)
el.classList.add(name);
else
el.className += ' ' + name;
}
}
Util.removeClass = function(el, className) {
if (el.classList)
el.classList.remove(className);
else
el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
Util.ready = function(fn) {
if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading"){
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
/**
* Convert a JavaScript Date object to a string.
*
* This uses formatting that is subset of the PHP date() function.
* @param date Date object
* @param format Optional format string (default is 'n-d-Y h:ia').
* @returns {string}
*/
Util.formatDatetime = function(date, format) {
function pad(i, n) {
var s = '' + i;
while(s.length < n) {
s = '0' + s;
}
return s;
}
if(format === undefined) {
format = 'n-d-Y h:ia';
}
var hours = date.getHours();
var hour = hours;
var am = 'a';
if(hours == 0) {
hour = 12;
} else if(hours == 12) {
am = 'p';
} else if(hours > 12) {
hour = hours - 12;
am = 'p';
}
var str = '';
for(var i=0; i<format.length; i++) {
switch(format.charAt(i)) {
case 'n':
str += date.getMonth() + 1;
break;
case 'm':
str += pad(date.getMonth() + 1, 2);
break;
case 'd':
str += pad(date.getDate(), 2);
break;
case 'Y':
str += date.getFullYear();
break;
case 'g':
str += hour;
break;
case 'h':
str += pad(hour, 2);
break;
case 'i':
str += pad(date.getMinutes(), 2);
break;
case 's':
str += pad(date.getSeconds(), 2);
break;
case 'a':
str += am;
break;
default:
str += format.charAt(i);
break;
}
}
return str;
}