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>
 |