diff --git a/src/core/ChefWorker.js b/src/core/ChefWorker.js index 1360c8bf..adbca918 100644 --- a/src/core/ChefWorker.js +++ b/src/core/ChefWorker.js @@ -25,6 +25,7 @@ self.chef = new Chef(); self.OpModules = OpModules; self.OperationConfig = OperationConfig; +self.inputNum = -1; // Tell the app that the worker has loaded and is ready to operate @@ -94,6 +95,7 @@ async function bake(data) { self.loadRequiredModules(data.recipeConfig); try { + self.inputNum = data.inputNum; const response = await self.chef.bake( data.input, // The user's input data.recipeConfig, // The configuration of the recipe @@ -127,6 +129,7 @@ async function bake(data) { }) }); } + self.inputNum = -1; } @@ -206,7 +209,8 @@ self.sendStatusMessage = function(msg) { self.postMessage({ action: "statusMessage", data: { - message: msg + message: msg, + inputNum: self.inputNum || -1 } }); }; diff --git a/src/web/OutputWaiter.mjs b/src/web/OutputWaiter.mjs index e7cd0d2f..c0f1ba0e 100755 --- a/src/web/OutputWaiter.mjs +++ b/src/web/OutputWaiter.mjs @@ -83,8 +83,7 @@ class OutputWaiter { const newOutput = { data: null, inputNum: inputNum, - // statusMessage: `Input ${inputNum} has not been baked yet.`, - statusMessage: "", + statusMessage: `Input ${inputNum} has not been baked yet.`, error: null, status: "inactive" }; @@ -356,6 +355,9 @@ class OutputWaiter { if (value) { this.manager.controls.hideStaleIndicator(); + // Don't add the bombe if it's already there! + if (animation.children.length > 0) return; + // Start a timer to add the Bombe to the DOM just before we make it // visible so that there is no stuttering this.appendBombeTimeout = setTimeout(function() { diff --git a/src/web/WorkerWaiter.mjs b/src/web/WorkerWaiter.mjs index e3ab2895..aeab8e8d 100644 --- a/src/web/WorkerWaiter.mjs +++ b/src/web/WorkerWaiter.mjs @@ -169,7 +169,6 @@ class WorkerWaiter { break; case "statusMessage": // Status message should be done per output - // log.error(r); this.manager.output.updateOutputMessage(r.data.message, r.data.inputNum); break; case "optionUpdate": @@ -305,7 +304,7 @@ class WorkerWaiter { log.debug(`Baking input ${nextInput.inputNum}.`); this.manager.output.updateOutputStatus("baking", nextInput.inputNum); - this.manager.output.updateOutputMessage("Baking...", nextInput.inputNum); + this.manager.output.updateOutputMessage(`Baking input ${nextInput.inputNum}...`, nextInput.inputNum); this.chefWorkers[workerIdx].inputNum = nextInput.inputNum;