4
0

ActionStatusDisplay.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. this.statusElement.classList.add('action-status')
  16. if (logEntry.executionFinished) {
  17. this.statusElement.innerText = 'Completed'
  18. this.exitCodeElement.innerText = ' Exit code: ' + logEntry.exitCode
  19. if (logEntry.exitCode === 0) {
  20. this.statusElement.classList.add('action-success')
  21. } else if (logEntry.blocked) {
  22. this.statusElement.innerText = 'Blocked'
  23. this.statusElement.classList.add('action-blocked')
  24. this.exitCodeElement.innerText = ''
  25. } else if (logEntry.timedOut) {
  26. this.statusElement.innerText = 'Timed out'
  27. this.statusElement.classList.add('action-timeout')
  28. this.exitCodeElement.innerText = ''
  29. } else {
  30. this.statusElement.classList.add('action-nonzero-exit')
  31. }
  32. } else {
  33. this.statusElement.innerText = 'Still running...'
  34. this.exitCodeElement.innerText = ''
  35. }
  36. }
  37. }