diff --git a/src/web/App.js b/src/web/App.js index 2b3f3638..7b02c350 100755 --- a/src/web/App.js +++ b/src/web/App.js @@ -21,21 +21,22 @@ import Split from "split.js"; * @param {Object} options - Default setting for app options. */ const App = function(categories, operations, defaultFavourites, defaultOptions) { - this.categories = categories; - this.operations = operations; - this.dfavourites = defaultFavourites; - this.doptions = defaultOptions; - this.options = Utils.extend({}, defaultOptions); + this.categories = categories; + this.operations = operations; + this.dfavourites = defaultFavourites; + this.doptions = defaultOptions; + this.options = Utils.extend({}, defaultOptions); - this.chef = new Chef(); - this.manager = new Manager(this); + this.chef = new Chef(); + this.manager = new Manager(this); - this.baking = false; - this.autoBake_ = false; - this.progress = 0; - this.ingId = 0; + this.baking = false; + this.autoBake_ = false; + this.autoBakePause = false; + this.progress = 0; + this.ingId = 0; - window.chef = this.chef; + window.chef = this.chef; }; @@ -166,7 +167,7 @@ App.prototype.bake = async function(step) { * Runs Auto Bake if it is set. */ App.prototype.autoBake = function() { - if (this.autoBake_) { + if (this.autoBake_ && !this.autoBakePause) { this.bake(); } }; @@ -413,9 +414,9 @@ App.prototype.loadURIParams = function() { return b; })(window.location.search.substr(1).split("&")); - // Turn off auto-bake while loading - const autoBakeVal = this.autoBake_; - this.autoBake_ = false; + // Pause auto-bake while loading but don't modify `this.autoBake_` + // otherwise `manualBake` cannot trigger. + this.autoBakePause = true; // Read in recipe from query string if (this.queryString.recipe) { @@ -451,8 +452,8 @@ App.prototype.loadURIParams = function() { } catch (err) {} } - // Restore auto-bake state - this.autoBake_ = autoBakeVal; + // Unpause auto-bake + this.autoBakePause = false; this.autoBake(); }; diff --git a/src/web/RecipeWaiter.js b/src/web/RecipeWaiter.js index b9cf23c5..63233127 100755 --- a/src/web/RecipeWaiter.js +++ b/src/web/RecipeWaiter.js @@ -354,8 +354,7 @@ RecipeWaiter.prototype.buildRecipeOperation = function(el) { el.classList.add("flow-control-op"); } - // Disable auto-bake if this is a manual op - this should be moved to the 'operationadd' - // handler after event restructuring + // Disable auto-bake if this is a manual op if (op.manualBake && this.app.autoBake_) { this.manager.controls.setAutoBake(false); this.app.alert("Auto-Bake is disabled by default when using this operation.", "info", 5000);