Android Recipe

Material Setting

{#if loadedRecipePath}

Loaded: {loadedRecipePath}

{/if}
Recipe Source
Load Recipe From Server Select a country to load material data from server.
{#each serverCountries as country} {/each}
Machine Not Connected Connect to the machine with ADB/WebUSB before loading recipe data from Machine.
Total materials
{materials.length}
Active materials
{activeMaterialCount}
Channels in use
{channelSummary.length}
{isEditingMaterial ? 'Edit Material' : 'Add Material'} Create or update one MaterialSetting entry. Server-loaded data is read-only until ADB is connected.
{isEditingMaterial ? 'Edit Material' : 'Add Material'} {#if duplicateMaterialOnCreate}
Material ID {form.id} already exists. Choose another ID before creating.
{:else if isEditingMaterial && Number(form.id) !== Number(editingMaterialId) && existingMaterial}
Material ID {form.id} already exists. Choose another ID before saving.
{:else if isEditingMaterial}
Editing Material ID {editingMaterialId}.
{/if}

Generated from the highest existing ID in this type + 1.

Examples: refill=$bag,sum=$gram,rec=$gram, refill=$L,sum=$ml,rec=$ml

Preview JSON Payload that will be upserted into MaterialSetting.
{previewJson}
Select Material Type Choose the type for the new material. Material ID will be generated from existing IDs in that type + 1.
{#each selectableMaterialTypeOptions as option} {/each}
Existing Materials
{#each channelSummary as channel} {channel.label}: {channel.count} {/each}
{#if loading}
Loading materials...
{:else if !devRecipe}
Load recipe first.
{:else if filteredMaterials.length === 0}
No materials found.
{:else}
{#each filteredMaterials as material}
{material.id} {material.materialName || '-'} {material.materialOtherName || '-'} {material.pathOtherName || '-'} {(material.isUse as boolean) !== false ? 'Use' : 'Not use'}
{/each}
{/if}
Delete Material? This will remove the material from MaterialSetting in the Android recipe JSON. {#if pendingDeleteMaterial}
Material
{pendingDeleteMaterial.id}
{pendingDeleteMaterial.materialName || pendingDeleteMaterial.materialOtherName || 'Unnamed'}
{/if}