import {reactive, ref} from "vue"; import axios from "axios"; export function blocks_page() { const items = ref([]) const selected = ref([]) const loading = ref(false) const search = ref('') const listData = reactive({ 'itemsPerPage': 5, 'first_page': null, 'last_page': null, 'total_items': 0, 'page': 1, }) const headers = [ {title: 'Nome', value: 'name'}, {title: 'Creato da', value: 'creator.login'}, {title: 'Durata', value: 'length'}, {title: 'Ultima modifica', value: 'utime'}, {title: 'Azioni', value: 'actions'} ]; const getItems = async (page_info) => { loading.value = true; return await axios.get(`/smartblock`, { params: { page: page_info.page, per_page: page_info.itemsPerPage, all: search.value } }).then((response) => { console.log(response) listData.itemsPerPage = response.data.per_page; listData.first_page = response.data.from; listData.last_page = response.data.last_page; listData.page = response.data.current_page; listData.total_items = response.data.total; items.value = response.data.data loading.value = false; }).catch((error) => { console.log("Error: "+error); }) } const editItem = (item) => { item['_method'] = 'PUT' return axios.post(`file/${item.id}`, item ).then((response) => { console.log(response) }) } const deleteItem = (id) => { return axios.post(`file/${id}`, { _method: 'DELETE' }).then((response) => { getItems(listData) // items.value = response.status === 200 ? items.value.filter(obj => obj.id !== id) : items }) } const getTracklist = async (item) => { let params = null; if (item.id === 0) { params = item } return await axios.get(`/smartblock/${item.id}/tracks`, { params: params }).then((response) => { return response.data }).catch((error) => { console.log("Error: "+error); }) } return { items, listData, headers, selected, loading, search, getItems, editItem, deleteItem, getTracklist } }