| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import './ActionButton.js' // To define action-button
- export function marshalActionButtonsJsonToHtml (json) {
- const currentIterationTimestamp = Date.now()
- for (const jsonButton of json.actions) {
- let htmlButton = document.querySelector('#actionButton_' + jsonButton.id)
- if (htmlButton == null) {
- htmlButton = document.createElement('action-button')
- htmlButton.constructFromJson(jsonButton)
- document.getElementById('root-group').appendChild(htmlButton)
- } else {
- htmlButton.updateFromJson(jsonButton)
- htmlButton.updateDom()
- }
- htmlButton.updateIterationTimestamp = currentIterationTimestamp
- }
- // Remove existing, but stale buttons (that were not updated in this round)
- for (const existingButton of document.querySelector('#contentActions').querySelectorAll('action-button')) {
- if (existingButton.updateIterationTimestamp !== currentIterationTimestamp) {
- existingButton.remove()
- }
- }
- }
- export function marshalLogsJsonToHtml (json) {
- for (const logEntry of json.logs) {
- const tpl = document.getElementById('tplLogRow')
- const row = tpl.content.cloneNode(true)
- if (logEntry.stdout.length === 0) {
- logEntry.stdout = '(empty)'
- }
- if (logEntry.stderr.length === 0) {
- logEntry.stderr = '(empty)'
- }
- let logTableExitCode = logEntry.exitCode
- if (logEntry.exitCode === 0) {
- logTableExitCode = 'OK'
- }
- if (logEntry.timedOut) {
- logTableExitCode += ' (timed out)'
- }
- row.querySelector('.timestamp').innerText = logEntry.datetime
- row.querySelector('.content').innerText = logEntry.actionTitle
- row.querySelector('.icon').innerHTML = logEntry.actionIcon
- row.querySelector('pre.stdout').innerText = logEntry.stdout
- row.querySelector('pre.stderr').innerText = logEntry.stderr
- row.querySelector('.exit-code').innerText = logTableExitCode
- for (const tag of logEntry.tags) {
- const domTag = document.createElement('span')
- domTag.classList.add('tag')
- domTag.innerText = tag
- row.querySelector('.tags').append(domTag)
- }
- document.querySelector('#logTableBody').prepend(row)
- }
- }
|