1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-19 03:34:39 +00:00
bramw_baserow/web-frontend/components/sidebar/CreateApplicationModal.vue

60 lines
1.2 KiB
Vue

<template>
<Modal>
<h2 class="box-title">Create new {{ application.name | lowercase }}</h2>
<component
:is="application.getApplicationFormComponent()"
ref="applicationForm"
@submitted="submitted"
>
<div class="actions">
<div class="align-right">
<button
class="button button-large"
:class="{ 'button-loading': loading }"
:disabled="loading"
>
Add {{ application.name | lowercase }}
</button>
</div>
</div>
</component>
</Modal>
</template>
<script>
import modal from '@/mixins/modal'
export default {
name: 'CreateApplicationModal',
mixins: [modal],
props: {
application: {
type: Object,
required: true
}
},
data() {
return {
loading: false
}
},
methods: {
submitted(values) {
this.loading = true
this.$store
.dispatch('application/create', {
type: this.application.type,
values: values
})
.then(() => {
this.loading = false
this.$emit('created')
this.hide()
})
.catch(() => {
this.loading = false
})
}
}
}
</script>