ActionStatusDisplay.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. export class ActionStatusDisplay {
  2. constructor (parentElement) {
  3. this.exitCodeElement = document.createElement('span')
  4. this.statusElement = document.createElement('span')
  5. this.statusElement.innerText = 'unknown'
  6. parentElement.innerText = ''
  7. parentElement.appendChild(this.statusElement)
  8. parentElement.appendChild(this.exitCodeElement)
  9. }
  10. getText () {
  11. return this.statusElement.innerText
  12. }
  13. update (logEntry) {
  14. this.statusElement.classList.remove(...this.statusElement.classList)
  15. if (logEntry.executionFinished) {
  16. this.statusElement.innerText = 'Completed'
  17. this.exitCodeElement.innerText = ', Exit code: ' + logEntry.exitCode
  18. if (logEntry.exitCode === 0) {
  19. this.statusElement.classList.add('action-success')
  20. } else if (logEntry.blocked) {
  21. this.statusElement.innerText = 'Blocked'
  22. this.statusElement.classList.add('action-blocked')
  23. this.exitCodeElement.innerText = ''
  24. } else if (logEntry.timedOut) {
  25. this.statusElement.innerText = 'Timed out'
  26. this.statusElement.classList.add('action-timeout')
  27. this.exitCodeElement.innerText = ''
  28. } else {
  29. this.statusElement.classList.add('action-nonzero-exit')
  30. }
  31. } else {
  32. this.statusElement.innerText = 'Still running...'
  33. this.exitCodeElement.innerText = ''
  34. }
  35. }
  36. }