Move software files one directory up, Readme

This commit is contained in:
2024-11-19 16:51:28 +01:00
parent baf763c4cb
commit 1dc5740f03
329 changed files with 255 additions and 31 deletions

View File

@@ -0,0 +1,288 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import { BannerStateEnum } from "../data/enums/bannerStateEnum";
import { Composer } from 'vue-i18n';
/**
* Logic of the bubble notifications
* Includes an i18n object for translation
* Includes a variable for redirecting to 404 page
*/
export const useFeedbackStore = defineStore("feedbackStore", {
state: () => ({
snackbars: ref<Array<{text: string, color: string, icon: string }>>([]),
/** Show notification banner in top right corner */
showSnackbar: ref(false),
/** Programmatically access to language translation module */
$i18n: {},
/** Band, Location or concert on URL does not exist, redirect to 404 page */
notFound: ref(false)
}),
getters: {
i18n(): Composer {
return this.$i18n.global as Composer
}
},
actions: {
addSnackbar(bannerState: BannerStateEnum) {
this.snackbars.push({
text: this.getSnackbarText(bannerState),
color: this.getSnackbarColor(bannerState),
icon: this.getSnackbarIcon(bannerState)
})
this.showSnackbar = true
},
getSnackbarText(bannerState: BannerStateEnum) {
switch (bannerState) {
////////// System feedback //////////
case BannerStateEnum.ERROR:
return this.i18n.t('bannerMessages.error')
case BannerStateEnum.BASKETPRODUCTADDED:
return this.i18n.t('bannerMessages.basketTicketAdded')
case BannerStateEnum.BASKETPRODUCTREMOVED:
return this.i18n.t("bannerMessages.basketTicketRemoved")
////////// Exercise feedback //////////
case BannerStateEnum.EXERCISESOLVED01:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [0, 1])
case BannerStateEnum.EXERCISESOLVED02:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [0, 2])
case BannerStateEnum.EXERCISESOLVED03:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [0, 3])
case BannerStateEnum.EXERCISESOLVED11:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [1, 1])
case BannerStateEnum.EXERCISESOLVED12:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [1, 2])
case BannerStateEnum.EXERCISESOLVED13:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [1, 3])
case BannerStateEnum.EXERCISESOLVED21:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [2, 1])
case BannerStateEnum.EXERCISESOLVED22:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [2, 2])
case BannerStateEnum.EXERCISESOLVED23:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [2, 3])
case BannerStateEnum.EXERCISESOLVED31:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [3, 1])
case BannerStateEnum.EXERCISESOLVED32:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [3, 2])
case BannerStateEnum.EXERCISESOLVED33:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [3, 3])
////////// API Endpoint /api //////////
case BannerStateEnum.DATABASERESETSUCCESSFUL:
return this.i18n.t('bannerMessages.databaseResetSuccessful')
case BannerStateEnum.EXERCISEPROGRESSRESETSUCCESSFUL:
return this.i18n.t('bannerMessages.exerciseProgressResetSuccessful')
////////// API Endpoint /accounts //////////
case BannerStateEnum.ACCOUNTLOGINSUCCESSFUL:
return this.i18n.t('bannerMessages.loginSuccessful')
case BannerStateEnum.ACCOUNTLOGINWRONGLOGIN:
return this.i18n.t('bannerMessages.wrongLogin')
case BannerStateEnum.ACCOUNTLOGINERROR:
return this.i18n.t('bannerMessages.error')
case BannerStateEnum.ACCOUNTREGISTERSUCCESSFUL:
return this.i18n.t("bannerMessages.registerSuccessful")
case BannerStateEnum.ACCOUNTREGISTERERROR:
return this.i18n.t("bannerMessages.registerSuccessful")
case BannerStateEnum.ACCOUNTREGISTERUSERNAMEINUSE:
return this.i18n.t("bannerMessages.usernameInUse")
case BannerStateEnum.ACCOUNTUPDATESUCCESSFUL:
return this.i18n.t("bannerMessages.accountUpdated")
case BannerStateEnum.ACCOUNTLOGOUTSUCCESSFUL:
return this.i18n.t('bannerMessages.logoutSuccessful')
////////// API Endpoint /orders //////////
case BannerStateEnum.ORDERPLACESUCCESSFUL:
return this.i18n.t('bannerMessages.orderPlaceSuccessfull')
////////// API Endpoint /bands //////////
case BannerStateEnum.BANDDELETEERROR:
return this.i18n.t('bannerMessages.bandDeleteError')
case BannerStateEnum.BANDDELETESUCCESSFUL:
return this.i18n.t('bannerMessages.bandDeleteSuccessful')
case BannerStateEnum.BANDSAVEDERROR:
return this.i18n.t('bannerMessages.bandSavedError')
case BannerStateEnum.BANDSAVEDSUCCESSFUL:
return this.i18n.t('bannerMessages.bandSavedSuccessful')
////////// API Endpoint /genres //////////
case BannerStateEnum.GENREDELETEERROR:
return this.i18n.t('bannerMessages.genreDeleteError')
case BannerStateEnum.GENREDELETESUCCESSFUL:
return this.i18n.t('bannerMessages.genreDeleteSuccessful')
case BannerStateEnum.GENRESAVEDERROR:
return this.i18n.t('bannerMessages.genreSavedError')
case BannerStateEnum.GENRESAVEDSUCCESSFUL:
return this.i18n.t('bannerMessages.genreSavedSuccessful')
}
},
getSnackbarColor(bannerState: BannerStateEnum) {
switch (bannerState) {
case BannerStateEnum.ERROR:
case BannerStateEnum.ACCOUNTLOGINERROR:
case BannerStateEnum.ACCOUNTLOGINWRONGLOGIN:
case BannerStateEnum.ACCOUNTREGISTERERROR:
case BannerStateEnum.ACCOUNTREGISTERUSERNAMEINUSE:
case BannerStateEnum.BANDDELETEERROR:
case BannerStateEnum.BANDSAVEDERROR:
case BannerStateEnum.GENREDELETEERROR:
case BannerStateEnum.GENRESAVEDERROR:
return "red"
case BannerStateEnum.BASKETPRODUCTADDED:
case BannerStateEnum.DATABASERESETSUCCESSFUL:
case BannerStateEnum.ACCOUNTLOGINSUCCESSFUL:
case BannerStateEnum.ACCOUNTREGISTERSUCCESSFUL:
case BannerStateEnum.ACCOUNTUPDATESUCCESSFUL:
case BannerStateEnum.ACCOUNTLOGOUTSUCCESSFUL:
case BannerStateEnum.ORDERPLACESUCCESSFUL:
case BannerStateEnum.BANDDELETESUCCESSFUL:
case BannerStateEnum.BANDSAVEDSUCCESSFUL:
case BannerStateEnum.EXERCISEPROGRESSRESETSUCCESSFUL:
case BannerStateEnum.GENREDELETESUCCESSFUL:
case BannerStateEnum.GENRESAVEDSUCCESSFUL:
return "green"
case BannerStateEnum.EXERCISESOLVED01:
case BannerStateEnum.EXERCISESOLVED02:
case BannerStateEnum.EXERCISESOLVED03:
case BannerStateEnum.EXERCISESOLVED11:
case BannerStateEnum.EXERCISESOLVED12:
case BannerStateEnum.EXERCISESOLVED13:
case BannerStateEnum.EXERCISESOLVED21:
case BannerStateEnum.EXERCISESOLVED22:
case BannerStateEnum.EXERCISESOLVED23:
case BannerStateEnum.EXERCISESOLVED31:
case BannerStateEnum.EXERCISESOLVED32:
case BannerStateEnum.EXERCISESOLVED33:
return "purple"
case BannerStateEnum.BASKETPRODUCTREMOVED:
return "blue"
}
},
getSnackbarIcon(bannerState: BannerStateEnum) {
switch (bannerState) {
case BannerStateEnum.ERROR:
return "mdi-alert-circle"
case BannerStateEnum.ACCOUNTLOGINERROR:
case BannerStateEnum.ACCOUNTLOGINWRONGLOGIN:
case BannerStateEnum.ACCOUNTREGISTERERROR:
case BannerStateEnum.ACCOUNTREGISTERUSERNAMEINUSE:
return "mdi-account"
case BannerStateEnum.EXERCISESOLVED01:
case BannerStateEnum.EXERCISESOLVED02:
case BannerStateEnum.EXERCISESOLVED03:
case BannerStateEnum.EXERCISESOLVED11:
case BannerStateEnum.EXERCISESOLVED12:
case BannerStateEnum.EXERCISESOLVED13:
case BannerStateEnum.EXERCISESOLVED21:
case BannerStateEnum.EXERCISESOLVED22:
case BannerStateEnum.EXERCISESOLVED23:
case BannerStateEnum.EXERCISESOLVED31:
case BannerStateEnum.EXERCISESOLVED32:
case BannerStateEnum.EXERCISESOLVED33:
return "mdi-check-circle-outline"
case BannerStateEnum.DATABASERESETSUCCESSFUL:
case BannerStateEnum.EXERCISEPROGRESSRESETSUCCESSFUL:
return "mdi-database-refresh"
case BannerStateEnum.BASKETPRODUCTADDED:
case BannerStateEnum.BASKETPRODUCTREMOVED:
return "mdi-basket"
case BannerStateEnum.ORDERPLACESUCCESSFUL:
return "mdi-basket-check"
case BannerStateEnum.ACCOUNTLOGOUTSUCCESSFUL:
return "mdi-logout"
case BannerStateEnum.ACCOUNTLOGINSUCCESSFUL:
return "mdi-login"
case BannerStateEnum.ACCOUNTREGISTERSUCCESSFUL:
return "mdi-account-plus"
case BannerStateEnum.ACCOUNTUPDATESUCCESSFUL:
return "mdi-account-reactivate"
case BannerStateEnum.BANDDELETEERROR:
case BannerStateEnum.BANDDELETESUCCESSFUL:
case BannerStateEnum.BANDSAVEDERROR:
case BannerStateEnum.BANDSAVEDSUCCESSFUL:
return "mdi-guitar-electric"
case BannerStateEnum.GENREDELETEERROR:
case BannerStateEnum.GENREDELETESUCCESSFUL:
case BannerStateEnum.GENRESAVEDERROR:
case BannerStateEnum.GENRESAVEDSUCCESSFUL:
return "mdi-music-clef-treble"
}
}
}
})