Просмотр исходного кода

feature: Rerun button on execution dialog, easily rerun actions! (#465)

James Read 1 год назад
Родитель
Сommit
964dc7b48a
2 измененных файлов с 19 добавлено и 2 удалено
  1. 1 0
      webui.dev/index.html
  2. 18 2
      webui.dev/js/ExecutionDialog.js

+ 1 - 0
webui.dev/index.html

@@ -146,6 +146,7 @@
 			<div id = "execution-dialog-xterm"></div>
 
 			<div class = "buttons padded-content">
+				<button name = "rerun" title = "Rerun" id = "execution-dialog-rerun-action">Rerun</button>
 				<button name = "kill" title = "Kill" id = "execution-dialog-kill-action">Kill</button>
 
 				<form method = "dialog">

+ 18 - 2
webui.dev/js/ExecutionDialog.js

@@ -16,6 +16,7 @@ export class ExecutionDialog {
       this.toggleSize()
     }
 
+    this.domBtnRerun = document.getElementById('execution-dialog-rerun-action')
     this.domBtnKill = document.getElementById('execution-dialog-kill-action')
 
     this.domDuration = document.getElementById('execution-dialog-duration')
@@ -57,6 +58,8 @@ export class ExecutionDialog {
 
     //    window.terminal.close()
 
+    this.domBtnRerun.disabled = true
+    this.domBtnRerun.onclick = () => {}
     this.domBtnKill.disabled = true
     this.domBtnKill.onclick = () => {}
 
@@ -93,6 +96,16 @@ export class ExecutionDialog {
     this.dlg.showModal()
   }
 
+  rerunAction (actionId) {
+    const actionButton = document.getElementById('actionButton-' + actionId)
+
+    if (actionButton !== undefined) {
+      actionButton.btn.click()
+    }
+
+    this.dlg.close()
+  }
+
   killAction () {
     const killActionArgs = {
       executionTrackingId: this.executionTrackingId
@@ -186,12 +199,15 @@ export class ExecutionDialog {
 
     this.domOutput.hidden = false
 
-    if (!this.hideDetailsOnResult) {
-      this.domExecutionDetails.hidden = false
+    if (this.hideDetailsOnResult) {
+      this.domExecutionDetails.hidden = true
     }
 
     this.executionTrackingId = res.logEntry.executionTrackingId
 
+    this.domBtnRerun.disabled = !res.logEntry.executionFinished
+    this.domBtnRerun.onclick = () => { this.rerunAction(res.logEntry.actionId) }
+
     this.domBtnKill.disabled = res.logEntry.executionFinished
 
     this.domStatus.update(res.logEntry)