From 000466032282732322759b4ff9617689c2681db0 Mon Sep 17 00:00:00 2001 From: henrikburmann <haburmann@gmail.com> Date: Wed, 4 May 2022 10:49:52 +0200 Subject: [PATCH] Functionality for deleting listing added --- .../UserProfileComponents/UserItems.vue | 21 ++++++++++++++++--- src/services/user.service.js | 9 ++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/components/UserProfileComponents/UserItems.vue b/src/components/UserProfileComponents/UserItems.vue index 7b9a503..c448470 100644 --- a/src/components/UserProfileComponents/UserItems.vue +++ b/src/components/UserProfileComponents/UserItems.vue @@ -28,16 +28,19 @@ @change="searchWritten" /> </div> - + <button @click="deleteItem">Slett</button> <div class="absolute inset-x-0 px-5 py-3"> <!-- ItemCards --> <div class="flex items-center justify-center w-screen"> <!-- Shows items based on pagination --> <div - class="grid grid-flow-row-dense grid-cols-2 md:grid-cols-4 lg:grid-cols-5 w-full" + class="grid grid-flow-row-dense grid-cols-2 md:grid-cols-4 lg:grid-cols-5 w-full" v-if="showItems" > - <ItemCard v-for="item in visibleItems" :key="item" :item="item" /> + <div id="item" v-for="item in visibleItems" :key="item"> + <ItemCard class = "w-fit h-fit" @click="deleteItem(item.listingID)" :item="item" /> + <button @click="deleteItem(item.listingID)" class="absolute"> {{ item.listingID }}</button> + </div> </div> <!-- Shows items based on search field input --> @@ -62,6 +65,7 @@ </template> <script> import { GetUserListings, getItemPictures } from "@/utils/apiutil"; +import UserService from "@/services/user.service"; import ItemCard from "@/components/ItemComponents/ItemCard.vue"; import PaginationTemplate from "@/components/BaseComponents/PaginationTemplate"; @@ -130,6 +134,10 @@ export default { this.updatePage(this.currentPage - 1); } }, + async deleteItem(listingId){ + await UserService.setListingToDeleted(listingId) + this.$router.go(0) + }, searchWritten: function () { //This method triggers when search input field is changed if (this.search.length > 0) { @@ -154,4 +162,11 @@ export default { margin-top: 10px; margin-bottom: 10px; } + +#item{ + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-rows: 1fr 1fr 1fr 1fr; +} + </style> diff --git a/src/services/user.service.js b/src/services/user.service.js index f07ef8c..988632a 100644 --- a/src/services/user.service.js +++ b/src/services/user.service.js @@ -27,6 +27,15 @@ class UserService { .catch((err) => console.error(err)); } + async setListingToDeleted(listingId){ + return await axios + .put(API_URL + "listing/" + listingId,{ + headers: tokenHeader(), + }).then((res) => { + return res.data + }) + .catch((err) => console.error(err)) + } //TODO async getUserRatingAsOwner() {} -- GitLab