From 0f78d3eeccb7e8b47d9803163f2ce011185a19fc Mon Sep 17 00:00:00 2001 From: Tobias Zoghaib Date: Wed, 30 Oct 2024 05:58:53 +0100 Subject: [PATCH] AccountsAdminPage, ConcertsAdminPage --- software/src/locales/de.json | 13 +++- software/src/locales/en.json | 13 +++- .../pages/admin/accountsAdminPage/index.vue | 44 ++++++++++- .../src/pages/admin/bandsAdminPage/index.vue | 5 +- .../pages/admin/concertsAdminPage/index.vue | 73 ++++++++++++++++++- software/src/stores/account.store.ts | 21 +++--- software/src/stores/band.store.ts | 2 +- software/src/stores/concert.store.ts | 19 ++++- 8 files changed, 166 insertions(+), 24 deletions(-) diff --git a/software/src/locales/de.json b/software/src/locales/de.json index de7bc91..25d7779 100644 --- a/software/src/locales/de.json +++ b/software/src/locales/de.json @@ -31,7 +31,14 @@ "goToTheConcert": "Zum Konzert", "noConcertsFound": "Keine Konzerte gefunden", "selectedConcert": "Ausgewähltes Konzert", - "concertSoldOut": "Ausverkauft" + "concertSoldOut": "Ausverkauft", + "addNewConcert": "Neues Konzert hinzufügen", + "date": "Datum", + "name": "Name des Konzertes", + "offered": "Angeboten", + "image": "Veranstaltungsbild", + "price": "Preis", + "inStock": "Übrige Tickets" }, "band": { "band": "Band | Bands", @@ -96,7 +103,9 @@ "title": "Account löschen?", "description": "Soll der Account wirklich gelöscht werden? Dieser kann nicht mehr wiederhergestellt werden!" } - } + }, + "addNewAccount": "Neuen Account hinzufügen", + "accountRole": "Account Rolle" }, "order": { "orders": "Bestellung | Bestellungen", diff --git a/software/src/locales/en.json b/software/src/locales/en.json index f692254..0a56d20 100644 --- a/software/src/locales/en.json +++ b/software/src/locales/en.json @@ -31,7 +31,14 @@ "goToTheConcert": "Go to concert", "noConcertsFound": "No Concerts found", "selectedConcert": "Selected Concert", - "concertSoldOut": "Sold out" + "concertSoldOut": "Sold out", + "addNewConcert": "Add new concert", + "date": "Date", + "name": "Name of concert", + "offered": "Offered", + "image": "Image of concert", + "price": "Price", + "inStock": "Open tickets" }, "band": { "band": "Band | Bands", @@ -96,7 +103,9 @@ "title": "Delete Account?", "description": "Do you really want to delete this account? This is permanent!" } - } + }, + "addNewAccount": "Add new account", + "accountRole": "Account Role" }, "order": { "orders": "Order | Orders", diff --git a/software/src/pages/admin/accountsAdminPage/index.vue b/software/src/pages/admin/accountsAdminPage/index.vue index bcf02e3..a1361ed 100644 --- a/software/src/pages/admin/accountsAdminPage/index.vue +++ b/software/src/pages/admin/accountsAdminPage/index.vue @@ -1,6 +1,48 @@ \ No newline at end of file diff --git a/software/src/pages/admin/bandsAdminPage/index.vue b/software/src/pages/admin/bandsAdminPage/index.vue index 1c5ca28..b76cc01 100644 --- a/software/src/pages/admin/bandsAdminPage/index.vue +++ b/software/src/pages/admin/bandsAdminPage/index.vue @@ -1,13 +1,10 @@ \ No newline at end of file diff --git a/software/src/stores/account.store.ts b/software/src/stores/account.store.ts index 996cc41..d1df021 100644 --- a/software/src/stores/account.store.ts +++ b/software/src/stores/account.store.ts @@ -16,7 +16,7 @@ import { LocationApiModel } from "@/data/models/locations/locationApiModel"; export const useAccountStore = defineStore("accountStore", { state: () => ({ /** All accounts */ - accounts: ref>([]), + accounts: ref>([]), /** Useraccount which is currently logged in */ userAccount: useLocalStorage("hackmycart/accountStore/userAccount", new AccountApiModel()), @@ -165,17 +165,6 @@ export const useAccountStore = defineStore("accountStore", { }) }, - getOrderTotalPrice(orderId: number) { - let totalPrice = 0 - let order: OrderModel = this.orders.find((order: OrderModel) => order.id == orderId) - - // for (let item of order.orderItems) { - // totalPrice += calcPrice(item.orderPrice, 0, item.quantity) - // } - - return Math.round(totalPrice * 100) / 100 - }, - /** * Remove an address from the user model * @@ -196,6 +185,14 @@ export const useAccountStore = defineStore("accountStore", { this.userAccount.payments = this.userAccount.payments.filter((paym: PaymentModel) => paym != payment ) + }, + + editAccount(item: AccountModel) { + // todo + }, + + async deleteAccount(item: AccountModel) { + // todo } } }) \ No newline at end of file diff --git a/software/src/stores/band.store.ts b/software/src/stores/band.store.ts index e4074c0..ea48f13 100644 --- a/software/src/stores/band.store.ts +++ b/software/src/stores/band.store.ts @@ -18,7 +18,7 @@ export const useBandStore = defineStore("bandStore", { /** Request to server sent, waiting for data response */ fetchInProgress: ref(false), - /** Show or hide the edit dialog for edit a band or genre */ + /** Show or hide the edit dialog for edit a band */ showEditDialog: ref(false) }), diff --git a/software/src/stores/concert.store.ts b/software/src/stores/concert.store.ts index 63cd6d1..84b35a2 100644 --- a/software/src/stores/concert.store.ts +++ b/software/src/stores/concert.store.ts @@ -4,6 +4,7 @@ import { ConcertApiModel } from "../data/models/acts/concertApiModel"; import { fetchConcertById, fetchAllConcerts, fetchUpcomingConcerts } from "../data/api/concertApi"; import { ConcertDetailsApiModel } from "../data/models/acts/concertDetailsApiModel"; import { CityModel } from "@/data/models/locations/cityModel"; +import { ConcertModel } from "@/data/models/acts/concertModel"; export const useConcertStore = defineStore("concertStore", { state: () => ({ @@ -20,7 +21,10 @@ export const useConcertStore = defineStore("concertStore", { filteredCities: ref>([]), /** Request to server sent, waiting for data response */ - fetchInProgress: ref(false) + fetchInProgress: ref(false), + + /** Show or hide the edit dialog for edit a concert */ + showEditDialog: ref(false) }), actions: { @@ -76,6 +80,19 @@ export const useConcertStore = defineStore("concertStore", { this.upcomingConcerts = result.data this.fetchInProgress = false }) + }, + + newConcert() { + this.concert = new ConcertDetailsApiModel() + this.showEditDialog = true + }, + + editConcert(concert: ConcertModel) { + // todo + }, + + async deleteConcert(item: ConcertModel) { + // todo } } }) \ No newline at end of file