You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.2 KiB
58 lines
1.2 KiB
<template>
|
|
<div>
|
|
<PageForm
|
|
v-model="item"
|
|
@submit="createItem"
|
|
/>
|
|
<Loading :visible="isLoading" />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { computed, ref, watch } from "vue"
|
|
import { useStore } from "vuex"
|
|
import {useSecurityStore} from "../../store/securityStore";
|
|
|
|
import PageForm from "../../components/page/Form.vue"
|
|
import Loading from "../../components/Loading.vue"
|
|
|
|
import { useDatatableCreate } from "../../composables/datatableCreate"
|
|
import { useToast } from "primevue/usetoast"
|
|
|
|
const store = useStore()
|
|
const securityStore = useSecurityStore()
|
|
|
|
const { createItem, onCreated } = useDatatableCreate("Page")
|
|
|
|
const toast = useToast()
|
|
|
|
const error = computed(() => store.state["page"].error)
|
|
const isLoading = computed(() => store.state["page"].isLoading)
|
|
const created = computed(() => store.state["page"].created)
|
|
|
|
const item = ref({
|
|
enabled: true,
|
|
creator: securityStore.user['@id'],
|
|
url: '/api/access_urls/' + window.access_url_id,
|
|
})
|
|
|
|
watch(created, (newCreated) => {
|
|
if (!newCreated) {
|
|
return
|
|
}
|
|
|
|
onCreated(item)
|
|
})
|
|
|
|
watch(error, (newError) => {
|
|
if (!newError) {
|
|
return;
|
|
}
|
|
|
|
toast.add({
|
|
severity: "error",
|
|
detail: newError,
|
|
life: 3500,
|
|
})
|
|
})
|
|
</script>
|
|
|