From c9cb4006c04e92266809534b909832e3d6c7069e Mon Sep 17 00:00:00 2001 From: timibadass Date: Wed, 17 May 2023 09:49:23 +0100 Subject: [PATCH 01/16] add pagination --- src/router/index.js | 1 + src/services/EventService.js | 22 ++++++------ src/views/EventList.vue | 67 +++++++++++++++++++++++++++++++----- 3 files changed, 70 insertions(+), 20 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 223e068..e39261b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ const routes = [ path: "/", name: "EventList", component: EventList, + props: (route) => ({ page: parseInt(route.query.page) || 1 }), }, { path: "/event/:id", diff --git a/src/services/EventService.js b/src/services/EventService.js index d4621b8..f84dc90 100644 --- a/src/services/EventService.js +++ b/src/services/EventService.js @@ -1,19 +1,19 @@ -import axios from 'axios' +import axios from "axios"; const apiClient = axios.create({ - baseURL: 'https://my-json-server.typicode.com/Code-Pop/Touring-Vue-Router', + baseURL: "https://my-json-server.typicode.com/Code-Pop/Touring-Vue-Router", withCredentials: false, headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - } -}) + Accept: "application/json", + "Content-Type": "application/json", + }, +}); export default { - getEvents() { - return apiClient.get('/events') + getEvents(perPage, page) { + return apiClient.get("/events?_limit=" + perPage + "&_page=" + page); }, getEvent(id) { - return apiClient.get('/events/' + id) - } -} + return apiClient.get("/events/" + id); + }, +}; diff --git a/src/views/EventList.vue b/src/views/EventList.vue index f844938..47075f7 100644 --- a/src/views/EventList.vue +++ b/src/views/EventList.vue @@ -1,18 +1,32 @@ @@ -20,6 +34,24 @@

Events for Good

+ +
@@ -29,4 +61,21 @@ flex-direction: column; align-items: center; } + .pagination { + display: flex; + width: 290px; + } + .pagination a { + flex: 1; + text-decoration: none; + color: #2c3e50; + } + + #page-prev { + text-align: left; + } + + #page-next { + text-align: right; + } From 3f97074e0dbfdf5857ff848f424e24b46fdb2117 Mon Sep 17 00:00:00 2001 From: timibadass Date: Wed, 17 May 2023 10:09:38 +0100 Subject: [PATCH 02/16] add nested routes --- src/components/EventCard.vue | 1 + src/router/index.js | 26 ++++++++++++++++--- src/views/EventList.vue | 1 - src/views/event/Details.vue | 9 +++++++ src/views/event/Edit.vue | 7 +++++ .../{EventDetails.vue => event/Layout.vue} | 16 ++++++++---- src/views/event/Register.vue | 7 +++++ 7 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 src/views/event/Details.vue create mode 100644 src/views/event/Edit.vue rename src/views/{EventDetails.vue => event/Layout.vue} (53%) create mode 100644 src/views/event/Register.vue diff --git a/src/components/EventCard.vue b/src/components/EventCard.vue index 1865a94..f0a5c00 100644 --- a/src/components/EventCard.vue +++ b/src/components/EventCard.vue @@ -1,4 +1,5 @@ -