47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						|
    <div>
 | 
						|
        <div class="flex space-x-3" v-if="model">
 | 
						|
            <f-text size="sm" id="name" v-model="model.name" label="Name" required></f-text>
 | 
						|
            <f-switch size="sm" v-model="model.is_filterable" name="subactivity_is_filterable" id="subactivity_is_filterable" label="Filterbar"></f-switch>
 | 
						|
        </div>
 | 
						|
        <ui-icon-button class="mt-3" icon="save" @click.prevent="store">Speichern</ui-icon-button>
 | 
						|
    </div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
export default {
 | 
						|
    data: function () {
 | 
						|
        return {
 | 
						|
            visible: false,
 | 
						|
            model: {...this.value},
 | 
						|
        };
 | 
						|
    },
 | 
						|
    props: {
 | 
						|
        value: {
 | 
						|
            required: true,
 | 
						|
        },
 | 
						|
    },
 | 
						|
 | 
						|
    methods: {
 | 
						|
        async store() {
 | 
						|
            if (this.model.id) {
 | 
						|
                var response = await this.axios.patch(this.model.links.update, this.model);
 | 
						|
                this.$emit('updated', response.data);
 | 
						|
            } else {
 | 
						|
                var response = await this.axios.post('/subactivity', this.model);
 | 
						|
                this.$emit('stored', response.data);
 | 
						|
            }
 | 
						|
        },
 | 
						|
    },
 | 
						|
 | 
						|
    async created() {
 | 
						|
        if (this.value.id) {
 | 
						|
            var payload = (await this.axios.get(this.value.links.show)).data;
 | 
						|
            this.model = payload.data;
 | 
						|
        } else {
 | 
						|
            this.model = this.value;
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
</script>
 |