Chamilo is a learning management system focused on ease of use and accessibility
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.
 
 
 
 
 
 
chamilo-lms/assets/vue/composables/datatableCreate.js

42 lines
940 B

import { useI18n } from "vue-i18n"
import { useRoute, useRouter } from "vue-router"
import { useStore } from "vuex"
import { useToast } from "primevue/usetoast"
export function useDatatableCreate(servicePrefix) {
const moduleName = servicePrefix.toLowerCase()
const store = useStore()
const router = useRouter()
const route = useRoute()
const { t } = useI18n()
const toast = useToast()
function onCreated(item) {
toast.add({
severity: "success",
detail: t("{resource} created", {
resource: item["resourceNode"] ? item["resourceNode"].title : item.title,
}),
life: 3500,
})
let folderParams = route.query
router.push({
name: `${servicePrefix}List`,
params: { id: item["@id"] },
query: folderParams,
})
}
async function createItem(item) {
await store.dispatch(`${moduleName}/create`, item)
}
return {
createItem,
onCreated,
}
}