From 92329c1a571b6d8bf1b433641d7112800260c6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P?= Date: Thu, 23 Feb 2023 21:32:45 +0100 Subject: [PATCH] Cosmetic changes --- js/views/report.js | 85 ++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/js/views/report.js b/js/views/report.js index 1976aa7..9e617df 100644 --- a/js/views/report.js +++ b/js/views/report.js @@ -6,57 +6,62 @@ import { document.addEventListener('readystatechange', async () => { const report = await fetchReport(location.search.replace("?id=", '')); - const resKeys = Object.keys(report.resource); // Default value... let resType = 'Object'; - if (resKeys.length) { - resType = resKeys[0].split(' ')[0]; + // TODO + if (!resKeys.length) { + location.href = '/404.html'; + return; + } - document.querySelector('#rep-tit') - .innerText = `${resType} ${report.displayname}`; - - const repTable = document.querySelector('#resource tbody'); - // TODO manage files and nested objects - // e.g. if (typeof report.resource[key] == 'object') ... - for (const key of resKeys) { - const row = document.createElement('tr'); - let rowspan = ''; - let innerList = null; - - if (typeof report.resource[key] == 'object') { - const boolValue = '@value' in report.resource[key]; - innerList = document.createElement('ul'); + resType = resKeys[0].split(' ')[0]; - if (! boolValue) { - rowspan = Object.keys(report.resource[key]).length; + document.querySelector('#rep-tit') + .innerText = `${resType} ${report.displayname}`; - for (const k in report.resource[key]) { - const li = document.createElement('li'); - li.innerHTML = - `${k.replace(key,'')}: - ${report.resource[key][k]}`; + const repTable = document.querySelector('#resource tbody'); + // TODO manage files and nested objects + for (const key of resKeys) { + const row = document.createElement('tr'); + let rowspan = ''; + let innerList = null; + + // TODO refactor + if (typeof report.resource[key] == 'object') { + const boolValue = '@value' in report.resource[key]; + innerList = document.createElement('ul'); - if (report.resource[key][k] !== null) { - innerList.appendChild(li); - } + if (!boolValue) { + rowspan = Object.keys(report.resource[key]).length; + + for (const k in report.resource[key]) { + const li = document.createElement('li'); + li.innerHTML = + `${k.replace(key,'')}: + ${report.resource[key][k]}`; + + if (report.resource[key][k] !== null) { + innerList.appendChild(li); } - } else { - innerList.innerHTML = `
  • ${report.resource[key]['@value']}
  • `; } + } else { + innerList.innerHTML = `
  • ${report.resource[key]['@value']}
  • `; } - - if (!key.includes('Coordinates')) { - let value = innerList !== null ? - innerList.outerHTML : report.resource[key]; - row.innerHTML = ` - ${key.replace(resType, '')} - ${value} - `; - } - - repTable.appendChild(row); } + + // TODO Pop coordinates before traversing the object + if (!key.includes('Coordinates')) { + let value = innerList !== null ? + innerList.outerHTML : report.resource[key]; + + row.innerHTML = ` + ${key.replace(resType, '')} + ${value} + `; + } + + repTable.appendChild(row); } }) \ No newline at end of file