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

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,
};
}