$.getJSON('/api/spots', function(jsonData) { let headers = Object.keys(jsonData[0]); let table = $('').append(''); ["Time", "DX", "Frequency", "Mode", "Comment", "Source", "DE"].forEach(header => table.find('thead tr').append(``)); jsonData.forEach(row => { let $tr = $(''); var time = moment(row["time"], moment.ISO_8601); var time_formatted = time.format("HH:mm") $tr.append(``); $tr.append(``); $tr.append(``); $tr.append(``); $tr.append(''); $tr.append(``); $tr.append(``); table.find('tbody').append($tr); }); $('#table-container').html(table); }); function escapeHtml(str) { if (typeof str !== 'string') { return ''; } const escapeCharacter = (match) => { switch (match) { case '&': return '&'; case '<': return '<'; case '>': return '>'; case '"': return '"'; case '\'': return '''; case '`': return '`'; default: return match; } }; return str.replace(/[&<>"'`]/g, escapeCharacter); }
${header}
${time_formatted}${row["dx_flag"]} ${row["dx_call"]}${row["freq"]}${row["mode"]}' + escapeHtml(`${row["comment"]}`) + '${row["source"]}${row["de_flag"]} ${row["de_call"]}