allow automation directly from ingredient editor

This commit is contained in:
vabene1111
2025-07-11 19:59:10 +02:00
parent 35a7875f6f
commit be7558f82b
3 changed files with 26 additions and 2 deletions

View File

@@ -22,7 +22,7 @@
<v-number-input :label="$t('Order')" :step="10" v-model="editingObj.order" :hint="$t('OrderInformation')" control-variant="stacked"></v-number-input> <v-number-input :label="$t('Order')" :step="10" v-model="editingObj.order" :hint="$t('OrderInformation')" control-variant="stacked"></v-number-input>
<v-checkbox :label="$t('Disabled')" v-model="editingObj.disabled"></v-checkbox> <v-checkbox :label="$t('Disabled')" v-model="editingObj.disabled"></v-checkbox>
<a href="https://docs.tandoor.dev/features/automation/" target="_blank">{{$t('Learn_More')}}</a> <a href="https://docs.tandoor.dev/features/automation/" target="_blank">{{ $t('Learn_More') }}</a>
</v-form> </v-form>
</v-card-text> </v-card-text>
</model-editor-base> </model-editor-base>
@@ -47,7 +47,18 @@ const props = defineProps({
}) })
const emit = defineEmits(['create', 'save', 'delete', 'close', 'changedState']) const emit = defineEmits(['create', 'save', 'delete', 'close', 'changedState'])
const {setupState, deleteObject, saveObject, isUpdate, editingObjName, loading, editingObj, editingObjChanged, modelClass} = useModelEditorFunctions<Automation>('Automation', emit) const {
setupState,
deleteObject,
saveObject,
isUpdate,
editingObjName,
loading,
editingObj,
editingObjChanged,
modelClass,
applyItemDefaults
} = useModelEditorFunctions<Automation>('Automation', emit)
// object specific data (for selects/display) // object specific data (for selects/display)
@@ -68,6 +79,8 @@ onMounted(() => {
setupState(props.item, props.itemId, { setupState(props.item, props.itemId, {
newItemFunction: () => { newItemFunction: () => {
editingObj.value.order = 0 editingObj.value.order = 0
applyItemDefaults(props.itemDefaults)
}, },
itemDefaults: props.itemDefaults itemDefaults: props.itemDefaults
}) })

View File

@@ -29,6 +29,12 @@
<model-merge-dialog :source="selectedFood" model="Food" <model-merge-dialog :source="selectedFood" model="Food"
@change="(obj: Food) => {selectedFood = obj;refreshPage()} "></model-merge-dialog> @change="(obj: Food) => {selectedFood = obj;refreshPage()} "></model-merge-dialog>
</v-list-item> </v-list-item>
<v-list-item link prepend-icon="$automation" :disabled="!selectedFood">
{{ $t('Automate') }}
<model-edit-dialog model="Automation" activator="parent" :item-defaults="{param1: selectedFood.name, type: 'FOOD_ALIAS'}" v-if="selectedFood"></model-edit-dialog>
</v-list-item>
<v-list-item link prepend-icon="$delete" :disabled="!selectedFood"> <v-list-item link prepend-icon="$delete" :disabled="!selectedFood">
{{ $t('Delete') }} {{ $t('Delete') }}
<delete-confirm-dialog :model-name="$t('Food')" :object-name="selectedFood.name" v-if="selectedFood" <delete-confirm-dialog :model-name="$t('Food')" :object-name="selectedFood.name" v-if="selectedFood"
@@ -58,6 +64,10 @@
<model-merge-dialog :source="selectedUnit" model="Unit" <model-merge-dialog :source="selectedUnit" model="Unit"
@change="(obj: Food) => {selectedUnit = obj;refreshPage()} "></model-merge-dialog> @change="(obj: Food) => {selectedUnit = obj;refreshPage()} "></model-merge-dialog>
</v-list-item> </v-list-item>
<v-list-item link prepend-icon="$automation" :disabled="!selectedUnit">
{{ $t('Automate') }}
<model-edit-dialog model="Automation" activator="parent" :item-defaults="{param1: selectedUnit.name, type: 'UNIT_ALIAS'}" v-if="selectedUnit"></model-edit-dialog>
</v-list-item>
<v-list-item link prepend-icon="$delete" :disabled="!selectedUnit"> <v-list-item link prepend-icon="$delete" :disabled="!selectedUnit">
{{ $t('Delete') }} {{ $t('Delete') }}
<delete-confirm-dialog :model-name="$t('Unit')" :object-name="selectedUnit.name" v-if="selectedUnit" <delete-confirm-dialog :model-name="$t('Unit')" :object-name="selectedUnit.name" v-if="selectedUnit"

View File

@@ -98,6 +98,7 @@ export default createVuetify({
menu: 'fa-solid fa-ellipsis-vertical', menu: 'fa-solid fa-ellipsis-vertical',
import: 'fa-solid fa-globe', import: 'fa-solid fa-globe',
properties: 'fa-solid fa-database', properties: 'fa-solid fa-database',
automation: 'fa-solid fa-robot',
ai: 'fa-solid fa-wand-magic-sparkles' ai: 'fa-solid fa-wand-magic-sparkles'
}, },
sets: { sets: {