diff --git a/src/components/ChatComponents/ChatMessage.vue b/src/components/ChatComponents/ChatMessage.vue index 0d05a808f6f0fc95f7170144436a6332dc7672be..8b046dc79ae9664a1cc82182337e6052a43333e3 100644 --- a/src/components/ChatComponents/ChatMessage.vue +++ b/src/components/ChatComponents/ChatMessage.vue @@ -58,12 +58,18 @@ export default { calculateTime() { var time = this?.message.timestamp; var date = new Date(time); - //Todo add timing for mm and hh and week of message + var mmOfMessage = String(date.getMinutes()); var hhOfMessage = String(date.getHours()); + if (mmOfMessage <= 9) { + mmOfMessage = "0" + mmOfMessage; + } + if (hhOfMessage <= 9) { + hhOfMessage = "0" + hhOfMessage; + } var ddOfMessage = String(date.getDate()).padStart(2, "0"); var dayOfMessage = date.toLocaleString("default", { weekday: "short" }); - var monthOfMessage = String(date.getMonth() + 1).padStart(2, "0"); //January is 0! + var monthOfMessage = String(date.getMonth() + 1).padStart(2, "0"); const shortMonthOfMessage = date.toLocaleString("default", { month: "short", }); @@ -71,7 +77,7 @@ export default { var today = new Date(); var dd = String(today.getDate()).padStart(2, "0"); - var mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0! + var mm = String(today.getMonth() + 1).padStart(2, "0"); var yyyy = today.getFullYear(); if (ddOfMessage == dd) { return "" + hhOfMessage + ":" + mmOfMessage + ""; diff --git a/src/components/ChatComponents/RentalMessage.vue b/src/components/ChatComponents/RentalMessage.vue index 77c178ae78a6c1e783d39b7a899267bb9e7b3fd6..9bfaeaaa58b610f1e1b45605e1dbcb6ff31de39e 100644 --- a/src/components/ChatComponents/RentalMessage.vue +++ b/src/components/ChatComponents/RentalMessage.vue @@ -8,7 +8,7 @@ <p>Pris: {{ price }}kr</p> </div> <div class="img-container"> - <img class="img" :src="img" alt="Produkt Bilde" /> + <img class="img" :src="image" alt="Produkt Bilde" /> </div> </div> <div> @@ -19,11 +19,21 @@ </p> </div> </div> - <div class="buttons" v-if="(!rent.isAccepted && !rent.deleted && this.rent.renterId != this.userID)"> + <div + class="buttons" + v-if=" + !rent.isAccepted && !rent.deleted && this.rent.renterId != this.userID + " + > <button class="button green" @click="accept">Godta</button> <button class="button red" @click="reject">Avslå</button> </div> - <div class="waiting" v-if="!rent.isAccepted && !rent.deleted && this.rent.renterId == this.userID"> + <div + class="waiting" + v-if=" + !rent.isAccepted && !rent.deleted && this.rent.renterId == this.userID + " + > Waiting for owner to accept </div> <div class="" v-if="rent.isAccepted"> @@ -38,8 +48,8 @@ <script> import axios from "axios"; -import { tokenHeader } from "@/utils/token-utils"; -import { parseCurrentUser } from "@/utils/token-utils"; +import { tokenHeader, parseCurrentUser } from "@/utils/token-utils"; +import { getItemPictures, } from "@/utils/apiutil"; export default { props: { @@ -48,6 +58,11 @@ export default { required: true, }, }, + data() { + return { + image: null, + } + }, computed: { userID() { return parseCurrentUser().accountId; @@ -75,9 +90,8 @@ export default { return this.rent.message || "Ingen Melding"; }, side() { - return this.rent.renterId == this.userID - ? "flex-end" : "flex-start"; - } + return this.rent.renterId == this.userID ? "flex-end" : "flex-start"; + }, }, methods: { async accept() { @@ -93,6 +107,19 @@ export default { { headers: tokenHeader() } ); }, + async getImage() { + let images = await getItemPictures(this.rent.listingId); + + if (images.length > 0) { + this.image = images[0].picture; + } else { + this.image = "https://images.unsplash.com/photo-1453728013993-6d66e9c9123a?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8Mnx8dmlld3xlbnwwfHwwfHw%3D&w=1000&q=80"; + + } + }, + }, + async beforeMount() { + await this.getImage(); }, }; </script> diff --git a/src/components/CommunityComponents/CommunitySettings.vue b/src/components/CommunityComponents/CommunitySettings.vue index 8ea68e5261329fb85624ce68a201be8e02273416..eade2eeb081e0f08e491aa6b723e926418de70cb 100644 --- a/src/components/CommunityComponents/CommunitySettings.vue +++ b/src/components/CommunityComponents/CommunitySettings.vue @@ -9,7 +9,7 @@ </template> <script> -// import CommunityAdminService from "@/services/community-admin.service"; +import CommunityAdminService from "@/services/community-admin.service"; import IconButton from "@/components/BaseComponents/IconButton.vue"; //TODO: OPEN CONFIRMATION DIALOG WHEN DELETING @@ -19,9 +19,12 @@ export default { IconButton, }, methods: { - deleteCommunity() { - console.log("DELETED"); - // CommunityAdminService.deleteCommunity(this.$route.params.communityID); + async deleteCommunity() { + let response = await CommunityAdminService.deleteCommunity( + this.$route.params.communityID + ); + if (response.status === 200) + this.$router.push({ name: "home", replace: true }); }, }, }; diff --git a/src/components/CommunityComponents/NewCommunityForm.vue b/src/components/CommunityComponents/NewCommunityForm.vue index 7a62e90f302416559f695459aafcfddfd6f43244..a088cd5d4f487b4e5cf2d36d7d81c7a823be802e 100644 --- a/src/components/CommunityComponents/NewCommunityForm.vue +++ b/src/components/CommunityComponents/NewCommunityForm.vue @@ -278,12 +278,13 @@ export default { location: this.group.place, picture: this.group.image, }; - - console.log(this.group.image); - const respone = await postNewgroup(groupInfo); if (respone.status === 200 || respone.status === 201) { - this.$router.push({ path: "/", replace: true }); + this.$store.commit("addAdmin", respone.data); + this.$router.push({ + path: "/community/" + respone.data, + replace: true, + }); } } }, diff --git a/src/components/UserProfileComponents/RentHistoryComponents/RentHistoryItem.vue b/src/components/UserProfileComponents/RentHistoryComponents/RentHistoryItem.vue index 675524104ec1ebe1b74410ae9114131c666f4023..c05823dcee3cd9a5bdcaf4661ec727d755346432 100644 --- a/src/components/UserProfileComponents/RentHistoryComponents/RentHistoryItem.vue +++ b/src/components/UserProfileComponents/RentHistoryComponents/RentHistoryItem.vue @@ -97,7 +97,10 @@ export default { getDateString(milliseconds) { let today = new Date(); let date = new Date(milliseconds); - let dateString = date.getDate() + "." + (date.getMonth() + 1); + const shortMonthOfRentHistoryItem = date.toLocaleString("default", { + month: "short", + }); + let dateString = date.getDate() + ". " + shortMonthOfRentHistoryItem; if (date.getFullYear() != today.getFullYear()) { dateString += "." + date.getFullYear(); diff --git a/src/components/UserProfileComponents/UserProfile.vue b/src/components/UserProfileComponents/UserProfile.vue index c7c39da640c00bc06ee1e4b39ee0f38b8579e721..c2d2a05e395e40893ab49a5693e028dbec97e1e1 100644 --- a/src/components/UserProfileComponents/UserProfile.vue +++ b/src/components/UserProfileComponents/UserProfile.vue @@ -98,7 +98,11 @@ <rating-component :rating="ownerRating" :ratingType="'Utleier'" /> </div> - <div v-show="!isCurrentUser" class="flex mt-4 space-x-3 lg:mt-6"> + <div + v-show="!isCurrentUser" + @click="$router.push('/messages?userID=' + id)" + class="flex mt-4 space-x-3 lg:mt-6" + > <a href="#" class="inline-flex items-center py-2 px-4 text-sm font-medium text-center text-gray-900 bg-white rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-700" diff --git a/src/services/community-admin.service.js b/src/services/community-admin.service.js index c935f1181ea5d8c81306dddae21a8015d95a8d9d..eb2c23e00d5d3ca456f5685429dc5d0393d01047 100644 --- a/src/services/community-admin.service.js +++ b/src/services/community-admin.service.js @@ -60,7 +60,7 @@ class CommunityAdminService { * @returns TODO */ async deleteCommunity(communityID) { - return await axios.post( + return await axios.delete( API_URL + "communities/" + communityID + "/remove", { headers: tokenHeader(), diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 8c3744e58a0c4e387ddb83cfcef1a99efebbff7d..00d6665d7964d04a606aa2959e57672be8510044 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -6,6 +6,7 @@ const state = { const mutations = { logout(state) { state.token = null; + state.adminList = []; }, saveToken(state, token) { state.token = token; @@ -18,6 +19,10 @@ const mutations = { state.adminList.push(communityIDArray[i]); } }, + addAdmin(state, communityID) { + if (!Number(communityID)) return; + state.adminList.push(communityID); + }, }; export default { diff --git a/tests/unit/component-tests/ChatComponentsTest/RentalMessage.spec.js b/tests/unit/component-tests/ChatComponentsTest/RentalMessage.spec.js index 6625f6151a85edfc90bbe86cd680727bbebc13f9..c08130180924969b4b57b9c0a70eb2a50e3e35c2 100644 --- a/tests/unit/component-tests/ChatComponentsTest/RentalMessage.spec.js +++ b/tests/unit/component-tests/ChatComponentsTest/RentalMessage.spec.js @@ -13,6 +13,15 @@ jest.mock("@/utils/token-utils", () => { }; }); +jest.mock("@/utils/apiutil", () => { + return { + getItemPictures: () => { + return new Promise((resolve) => { + resolve([]); + }); + }, + }; +}); jest.mock("axios");