diff --git a/resources/js/components/content/Blocks.vue b/resources/js/components/content/Blocks.vue
new file mode 100644
index 0000000..e598bb0
--- /dev/null
+++ b/resources/js/components/content/Blocks.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+ Crea una nuova Playlist
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/js/composables/content/blocks_page.ts b/resources/js/composables/content/blocks_page.ts
new file mode 100644
index 0000000..a7ef27f
--- /dev/null
+++ b/resources/js/composables/content/blocks_page.ts
@@ -0,0 +1,69 @@
+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'},
+ {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
+ })
+ }
+
+ return { items, listData, headers, selected, loading, search, getItems, editItem, deleteItem }
+}
\ No newline at end of file
diff --git a/resources/js/layouts/partials/Content.vue b/resources/js/layouts/partials/Content.vue
index 17a7b81..2dbf1e7 100644
--- a/resources/js/layouts/partials/Content.vue
+++ b/resources/js/layouts/partials/Content.vue
@@ -14,6 +14,7 @@ const tabs = {
dashboard: defineAsyncComponent(() => import('../../components/content/Dashboard.vue')),
archive: defineAsyncComponent(() => import('../../components/content/Archive.vue')),
playlist: defineAsyncComponent(() => import('../../components/content/Playlist.vue')),
+ blocks: defineAsyncComponent(() => import('../../components/content/Blocks.vue')),
}
diff --git a/resources/js/layouts/partials/Sidebar.vue b/resources/js/layouts/partials/Sidebar.vue
index 5a86f0f..e70a57d 100644
--- a/resources/js/layouts/partials/Sidebar.vue
+++ b/resources/js/layouts/partials/Sidebar.vue
@@ -9,13 +9,18 @@ const pages = [
},
{
id: 'archive',
- name: 'Archive',
- component: '../../components/content/Dashboard.vue',
+ name: 'Archivio',
+ component: '../../components/content/Archive.vue',
},
{
id: 'playlist',
name: 'Playlist',
component: '../../components/content/Playlist.vue',
+ },
+ {
+ id: 'blocks',
+ name: 'Blocchi dinamici',
+ component: '../../components/content/Blocks.vue',
}
];