96 lines
2.9 KiB
JavaScript
96 lines
2.9 KiB
JavaScript
export class RecipeEditor {
|
|
constructor(handlers) {
|
|
this.handlers = handlers;
|
|
}
|
|
|
|
async handleAction(action, event, actionEl) {
|
|
switch (action) {
|
|
case "add-ingredient":
|
|
this.handlers.addIngredient();
|
|
return true;
|
|
case "toggle-unloading-link":
|
|
this.handlers.toggleUnloadingLink();
|
|
return true;
|
|
case "add-unloading-group":
|
|
this.handlers.addUnloadingGroup();
|
|
return true;
|
|
case "show-recipe-edit-off":
|
|
this.handlers.showRecipeEdit(false);
|
|
return true;
|
|
case "print-all-recipes":
|
|
this.handlers.printAllRecipesInPeriod();
|
|
return true;
|
|
case "print-recipe":
|
|
this.handlers.printRecipe();
|
|
return true;
|
|
case "save-and-exit":
|
|
await this.handlers.saveRecipe(null, true);
|
|
return true;
|
|
case "move-group-up":
|
|
this.handlers.moveGroupUp(actionEl);
|
|
return true;
|
|
case "move-group-down":
|
|
this.handlers.moveGroupDown(actionEl);
|
|
return true;
|
|
case "remove-unloading-group":
|
|
this.handlers.removeUnloadingGroup(actionEl);
|
|
return true;
|
|
case "move-ingredient-up":
|
|
this.handlers.moveIngredientUp(actionEl);
|
|
return true;
|
|
case "move-ingredient-down":
|
|
this.handlers.moveIngredientDown(actionEl);
|
|
return true;
|
|
case "remove-ingredient":
|
|
this.handlers.removeIngredient(actionEl);
|
|
return true;
|
|
case "open-ingredient-sheet": {
|
|
const row = actionEl.closest(".ingredient-row");
|
|
this.handlers.openIngredientMobileSheet(row);
|
|
return true;
|
|
}
|
|
case "close-ingredient-sheet":
|
|
this.handlers.closeIngredientMobileSheet();
|
|
return true;
|
|
case "remove-ingredient-sheet":
|
|
this.handlers.removeIngredientFromSheet();
|
|
return true;
|
|
case "open-unloading-group-sheet": {
|
|
const row = actionEl.closest(".unloading-group-row");
|
|
this.handlers.openUnloadingGroupMobileSheet(row);
|
|
return true;
|
|
}
|
|
case "close-unloading-group-sheet":
|
|
this.handlers.closeUnloadingGroupMobileSheet();
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
handleChange(action, actionEl) {
|
|
switch (action) {
|
|
case "group-type-change":
|
|
this.handlers.handleGroupTypeChange(actionEl);
|
|
return true;
|
|
case "group-value-change":
|
|
this.handlers.validateGroupValue(actionEl);
|
|
return true;
|
|
case "ingredient-change":
|
|
this.handlers.handleIngredientChange(actionEl);
|
|
return true;
|
|
case "dry-matter-percent-change":
|
|
this.handlers.handleDryMatterPercentChange(actionEl);
|
|
return true;
|
|
case "recalculate-weights":
|
|
this.handlers.recalculateWeights();
|
|
return true;
|
|
case "recalculate-total-weight":
|
|
this.handlers.recalculateFromTotalWeight(actionEl);
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
}
|