rowView = ({ assignments, workerId }) => {
const formatDay = day => new Date(day).toISOString().split('.')[0];
const formatDuration = duration => moment.duration(duration, 'ms').humanize();
let cell = value => `<td>${value}</td>`;
let durationCell = value => {
let color = 'green';
if (value < 900000) {
color = 'red';
} else if (value < 1200000) {
color = '#CCCC00';
}
return `<td style="color: ${color}">${formatDuration(value)}</td>`;
};
let row = (assignment, workerId, assignmentsCount) => `<tr>
${workerId ? `<td rowspan="${assignmentsCount}">${workerId}</td>` : ''}
${cell(assignment.id)}
${cell(formatDay(assignment.ts))}
${durationCell(assignment.duration)}
</td></tr>`;
let rows = `${row(assignments[0], workerId, assignments.length)}`;
for (let assignment of assignments.slice(1)) {
rows += `${row(assignment)}`;
}
return rows;
}