diff --git a/public/ChartDB(administration-db).json b/public/ChartDB(administration-db).json index 2bc4c00..f379e56 100644 --- a/public/ChartDB(administration-db).json +++ b/public/ChartDB(administration-db).json @@ -1,8 +1,8 @@ { "id": "0", "name": "administration-db", - "createdAt": "2025-01-12T13:30:56.612Z", - "updatedAt": "2025-01-12T13:30:56.612Z", + "createdAt": "2025-01-25T11:15:11.340Z", + "updatedAt": "2025-01-25T11:15:11.340Z", "databaseType": "mariadb", "tables": [ { @@ -453,8 +453,8 @@ "id": "35", "name": "membership", "schema": "administration", - "x": 431.0493261325482, - "y": -194.01007034924007, + "x": 423.2353392314366, + "y": -235.03350158007595, "fields": [ { "id": "36", @@ -698,8 +698,8 @@ "id": "56", "name": "membership_status", "schema": "administration", - "x": 712.2717493973673, - "y": -155.53936203938048, + "x": 704.4577624962558, + "y": -196.5627932702164, "fields": [ { "id": "57", @@ -766,21 +766,6 @@ }, { "id": "62", - "name": "salutation", - "type": { - "id": "varchar", - "name": "varchar" - }, - "primaryKey": false, - "unique": false, - "nullable": false, - "character_maximum_length": "255", - "default": "'none'", - "collation": "utf8mb4_general_ci", - "createdAt": 1734524896259 - }, - { - "id": "63", "name": "firstname", "type": { "id": "varchar", @@ -794,7 +779,7 @@ "createdAt": 1734524896259 }, { - "id": "64", + "id": "63", "name": "lastname", "type": { "id": "varchar", @@ -808,7 +793,7 @@ "createdAt": 1734524896259 }, { - "id": "65", + "id": "64", "name": "nameaffix", "type": { "id": "varchar", @@ -822,7 +807,7 @@ "createdAt": 1734524896259 }, { - "id": "66", + "id": "65", "name": "birthdate", "type": { "id": "date", @@ -834,7 +819,7 @@ "createdAt": 1734524896259 }, { - "id": "67", + "id": "66", "name": "internalId", "type": { "name": "varchar", @@ -845,6 +830,21 @@ "primaryKey": false, "createdAt": 1736351121650 }, + { + "id": "67", + "name": "salutationId", + "type": { + "name": "int", + "id": "int" + }, + "primaryKey": false, + "unique": false, + "nullable": false, + "character_maximum_length": "255", + "default": "'none'", + "collation": "utf8mb4_general_ci", + "createdAt": 1734524896259 + }, { "id": "68", "name": "sendNewsletterId", @@ -889,8 +889,8 @@ "id": "71", "name": "communication_type", "schema": "administration", - "x": 712.818422135433, - "y": 325.42673695158805, + "x": 735.756546723297, + "y": 175.00748910518985, "fields": [ { "id": "72", @@ -1231,8 +1231,8 @@ "id": "96", "name": "communication", "schema": "administration", - "x": 428.2501516386368, - "y": 181.28410937476986, + "x": 451.18827622650076, + "y": 30.864861528371677, "fields": [ { "id": "97", @@ -1682,11 +1682,48 @@ "isMaterializedView": false, "createdAt": 1734524896260, "diagramId": "7gb18czobyir" + }, + { + "id": "132", + "name": "salutation", + "x": 428.6069830535669, + "y": 516.5938067201159, + "fields": [ + { + "id": "133", + "name": "id", + "type": { + "name": "int", + "id": "int" + }, + "unique": true, + "nullable": false, + "primaryKey": true, + "createdAt": 1737803524494 + }, + { + "id": "134", + "name": "salutation", + "type": { + "name": "varchar", + "id": "varchar" + }, + "unique": false, + "nullable": false, + "primaryKey": false, + "createdAt": 1737803546875 + } + ], + "indexes": [], + "color": "#4dee8a", + "createdAt": 1737803524494, + "isView": false, + "order": 15 } ], "relationships": [ { - "id": "132", + "id": "135", "name": "FK_1fd52c8f109123e5a2c67dc2c83", "sourceSchema": "administration", "targetSchema": "administration", @@ -1700,7 +1737,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "133", + "id": "136", "name": "FK_21994db635b47e07f45b2686a51", "sourceSchema": "administration", "targetSchema": "administration", @@ -1714,7 +1751,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "134", + "id": "137", "name": "FK_2912b056a5d0b7977360a986164", "sourceSchema": "administration", "targetSchema": "administration", @@ -1728,7 +1765,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "135", + "id": "138", "name": "FK_3b4b41597707b13086e71727422", "sourceSchema": "administration", "targetSchema": "administration", @@ -1742,7 +1779,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "136", + "id": "139", "name": "FK_98b70e687c35709d2f01b3d7d74", "sourceSchema": "administration", "targetSchema": "administration", @@ -1756,7 +1793,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "137", + "id": "140", "name": "FK_a47e04bfd3671d8a375d1896d25", "sourceSchema": "administration", "targetSchema": "administration", @@ -1770,7 +1807,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "138", + "id": "141", "name": "FK_ba47b44c2ddf34c1bcc75df6675", "sourceSchema": "administration", "targetSchema": "administration", @@ -1784,7 +1821,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "139", + "id": "142", "name": "FK_dbebe53df1caa0b6715a220b0ea", "sourceSchema": "administration", "targetSchema": "administration", @@ -1798,7 +1835,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "140", + "id": "143", "name": "FK_e9fd4d37c4ac0fb08bd6eeeda3c", "sourceSchema": "administration", "targetSchema": "administration", @@ -1812,7 +1849,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "141", + "id": "144", "name": "FK_fc5f59e5c9aafdedd25ed8ed36e", "sourceSchema": "administration", "targetSchema": "administration", @@ -1824,11 +1861,24 @@ "targetCardinality": "one", "createdAt": 1734524896262, "diagramId": "7gb18czobyir" + }, + { + "id": "145", + "name": "member_salutationId_fk", + "sourceSchema": "administration", + "sourceTableId": "60", + "targetSchema": "administration", + "targetTableId": "132", + "sourceFieldId": "67", + "targetFieldId": "133", + "sourceCardinality": "many", + "targetCardinality": "one", + "createdAt": 1737803651894 } ], "dependencies": [ { - "id": "142", + "id": "146", "schema": "administration", "tableId": "60", "dependentSchema": "administration", @@ -1837,7 +1887,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "143", + "id": "147", "schema": "administration", "tableId": "127", "dependentSchema": "administration", @@ -1846,7 +1896,7 @@ "diagramId": "7gb18czobyir" }, { - "id": "144", + "id": "148", "schema": "administration", "tableId": "112", "dependentSchema": "administration", @@ -1854,55 +1904,19 @@ "createdAt": 1734524897267, "diagramId": "7gb18czobyir" }, - { - "id": "145", - "schema": "administration", - "tableId": "60", - "dependentSchema": "administration", - "dependentTableId": "11", - "createdAt": 1734524897283, - "diagramId": "7gb18czobyir" - }, - { - "id": "146", - "schema": "administration", - "tableId": "1", - "dependentSchema": "administration", - "dependentTableId": "11", - "createdAt": 1734524897283, - "diagramId": "7gb18czobyir" - }, - { - "id": "147", - "schema": "administration", - "tableId": "60", - "dependentSchema": "administration", - "dependentTableId": "21", - "createdAt": 1734524897244, - "diagramId": "7gb18czobyir" - }, - { - "id": "148", - "schema": "administration", - "tableId": "56", - "dependentSchema": "administration", - "dependentTableId": "76", - "createdAt": 1734524897297, - "diagramId": "7gb18czobyir" - }, { "id": "149", "schema": "administration", - "tableId": "35", + "tableId": "60", "dependentSchema": "administration", - "dependentTableId": "76", - "createdAt": 1734524897297, + "dependentTableId": "11", + "createdAt": 1734524897283, "diagramId": "7gb18czobyir" }, { "id": "150", "schema": "administration", - "tableId": "123", + "tableId": "1", "dependentSchema": "administration", "dependentTableId": "11", "createdAt": 1734524897283, @@ -1913,6 +1927,42 @@ "schema": "administration", "tableId": "60", "dependentSchema": "administration", + "dependentTableId": "21", + "createdAt": 1734524897244, + "diagramId": "7gb18czobyir" + }, + { + "id": "152", + "schema": "administration", + "tableId": "56", + "dependentSchema": "administration", + "dependentTableId": "76", + "createdAt": 1734524897297, + "diagramId": "7gb18czobyir" + }, + { + "id": "153", + "schema": "administration", + "tableId": "35", + "dependentSchema": "administration", + "dependentTableId": "76", + "createdAt": 1734524897297, + "diagramId": "7gb18czobyir" + }, + { + "id": "154", + "schema": "administration", + "tableId": "123", + "dependentSchema": "administration", + "dependentTableId": "11", + "createdAt": 1734524897283, + "diagramId": "7gb18czobyir" + }, + { + "id": "155", + "schema": "administration", + "tableId": "60", + "dependentSchema": "administration", "dependentTableId": "86", "createdAt": 1734524897266, "diagramId": "7gb18czobyir" diff --git a/public/administration-db.png b/public/administration-db.png index d150de5..1fe4edf 100644 Binary files a/public/administration-db.png and b/public/administration-db.png differ diff --git a/public/administration-db.svg b/public/administration-db.svg index 13fcea8..0a64cc1 100644 --- a/public/administration-db.svg +++ b/public/administration-db.svg @@ -1 +1 @@ -
id
int
note
varchar?
start
date
end
date?
memberId
int
executivePositionId
int
positionId
int?
position
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
member_id
int
member_salutation
varchar
member_firstname
varchar
member_lastname
varchar
member_nameaffix
varchar
member_birthdate
date
member_sendNewsletterId
int?
todayAge
bigint?
ageThisYear
int?
id
int
award
varchar
id
int
start
date
end
date?
terminationReason
varchar?
memberId
int
statusId
int
id
int
given
tinyint
note
varchar?
date
date
memberId
int
awardId
int
id
int
status
varchar
id
int
salutation
varchar
firstname
varchar
lastname
varchar
nameaffix
varchar
birthdate
date
internalId
varchar?
sendNewsletterId
int?
id
int
type
varchar
useColumns
varchar
statusId
int?
status
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
qualificationId
int?
qualification
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
id
int
preferred
tinyint
mobile
varchar?
email
varchar?
postalCode
varchar?
city
varchar?
street
varchar?
streetNumber
int?
streetNumberAddition
varchar?
typeId
int
memberId
int
isSMSAlarming
tinyint
Weniger anzeigen
id
int
note
varchar?
start
date
end
date?
terminationReason
varchar?
memberId
int
qualificationId
int
id
int
position
varchar
id
int
qualification
varchar
description
varchar?
\ No newline at end of file +
1111NNNN
id
int
note
varchar?
start
date
end
date?
memberId
int
executivePositionId
int
positionId
int?
position
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
member_id
int
member_salutation
varchar
member_firstname
varchar
member_lastname
varchar
member_nameaffix
varchar
member_birthdate
date
member_sendNewsletterId
int?
todayAge
bigint?
ageThisYear
int?
id
int
award
varchar
id
int
start
date
end
date?
terminationReason
varchar?
memberId
int
statusId
int
id
int
given
tinyint
note
varchar?
date
date
memberId
int
awardId
int
id
int
status
varchar
id
int
firstname
varchar
lastname
varchar
nameaffix
varchar
birthdate
date
internalId
varchar?
salutationId
int
sendNewsletterId
int?
id
int
type
varchar
useColumns
varchar
statusId
int?
status
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
qualificationId
int?
qualification
varchar?
memberId
int?
memberSalutation
varchar?
memberFirstname
varchar?
memberLastname
varchar?
memberNameaffix
varchar?
memberBirthdate
date?
durationInDays
decimal?
id
int
preferred
tinyint
mobile
varchar?
email
varchar?
postalCode
varchar?
city
varchar?
street
varchar?
streetNumber
int?
streetNumberAddition
varchar?
typeId
int
memberId
int
isSMSAlarming
tinyint
Weniger anzeigen
id
int
note
varchar?
start
date
end
date?
terminationReason
varchar?
memberId
int
qualificationId
int
id
int
position
varchar
id
int
qualification
varchar
description
varchar?
id
int
salutation
varchar
\ No newline at end of file diff --git a/src/components/admin/club/member/CreateMemberModal.vue b/src/components/admin/club/member/CreateMemberModal.vue index 0436dd5..5ff2e1b 100644 --- a/src/components/admin/club/member/CreateMemberModal.vue +++ b/src/components/admin/club/member/CreateMemberModal.vue @@ -6,13 +6,13 @@
- + Anrede
- {{ selectedSalutation }} + {{ selectedSalutation?.salutation }} @@ -29,7 +29,7 @@ @@ -39,7 +39,9 @@ 'relative cursor-default select-none py-2 pl-10 pr-4', ]" > - {{ salutation }} + {{ + salutation.salutation + }} @@ -97,9 +99,10 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue"; import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid"; -import { Salutation } from "@/enums/salutation"; import { useMemberStore } from "@/stores/admin/club/member/member"; import type { CreateMemberViewModel } from "@/viewmodels/admin/club/member/member.models"; +import { useSalutationStore } from "../../../../stores/admin/settings/salutation"; +import type { SalutationViewModel } from "../../../../viewmodels/admin/settings/salutation.models"; diff --git a/src/components/admin/settings/salutation/CreateSalutationModal.vue b/src/components/admin/settings/salutation/CreateSalutationModal.vue new file mode 100644 index 0000000..3efc6de --- /dev/null +++ b/src/components/admin/settings/salutation/CreateSalutationModal.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/components/admin/settings/salutation/DeleteSalutationModal.vue b/src/components/admin/settings/salutation/DeleteSalutationModal.vue new file mode 100644 index 0000000..dd58907 --- /dev/null +++ b/src/components/admin/settings/salutation/DeleteSalutationModal.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/components/admin/settings/salutation/SalutationListItem.vue b/src/components/admin/settings/salutation/SalutationListItem.vue new file mode 100644 index 0000000..d3d558b --- /dev/null +++ b/src/components/admin/settings/salutation/SalutationListItem.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/enums/salutation.ts b/src/enums/salutation.ts deleted file mode 100644 index ba2fce4..0000000 --- a/src/enums/salutation.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum Salutation { - sir = "sir", - madam = "madam", - other = "other", - none = "none", -} diff --git a/src/router/index.ts b/src/router/index.ts index ad7f073..4d46b2b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -422,6 +422,28 @@ const router = createRouter({ }, ], }, + { + path: "salutation", + name: "admin-settings-salutation-route", + component: () => import("@/views/RouterView.vue"), + meta: { type: "read", section: "settings", module: "salutation" }, + beforeEnter: [abilityAndNavUpdate], + children: [ + { + path: "", + name: "admin-settings-salutation", + component: () => import("@/views/admin/settings/salutation/Salutation.vue"), + }, + { + path: ":id/edit", + name: "admin-settings-salutation-edit", + component: () => import("@/views/admin/settings/salutation/SalutationEdit.vue"), + meta: { type: "update", section: "settings", module: "salutation" }, + beforeEnter: [abilityAndNavUpdate], + props: true, + }, + ], + }, { path: "calendar-type", name: "admin-settings-calendar_type-route", diff --git a/src/stores/admin/club/member/member.ts b/src/stores/admin/club/member/member.ts index 1d96dc7..d92670e 100644 --- a/src/stores/admin/club/member/member.ts +++ b/src/stores/admin/club/member/member.ts @@ -88,7 +88,7 @@ export const useMemberStore = defineStore("member", { }, async createMember(member: CreateMemberViewModel): Promise> { const result = await http.post(`/admin/member`, { - salutation: member.salutation, + salutationId: member.salutationId, firstname: member.firstname, lastname: member.lastname, nameaffix: member.nameaffix, @@ -100,7 +100,7 @@ export const useMemberStore = defineStore("member", { }, async updateActiveMember(member: UpdateMemberViewModel): Promise> { const result = await http.patch(`/admin/member/${member.id}`, { - salutation: member.salutation, + salutationId: member.salutationId, firstname: member.firstname, lastname: member.lastname, nameaffix: member.nameaffix, diff --git a/src/stores/admin/navigation.ts b/src/stores/admin/navigation.ts index bd1bc84..003f868 100644 --- a/src/stores/admin/navigation.ts +++ b/src/stores/admin/navigation.ts @@ -63,7 +63,7 @@ export const useNavigationStore = defineStore("navigation", { { key: "settings", title: "Einstellungen", - levelDefault: "award", + levelDefault: "salutation", } as topLevelNavigationModel, ] : []), @@ -99,6 +99,7 @@ export const useNavigationStore = defineStore("navigation", { mainTitle: "Einstellungen", main: [ { key: "divider1", title: "Mitgliederdaten" }, + ...(abilityStore.can("read", "settings", "salutation") ? [{ key: "salutation", title: "Anrede" }] : []), ...(abilityStore.can("read", "settings", "award") ? [{ key: "award", title: "Auszeichnungen" }] : []), ...(abilityStore.can("read", "settings", "communication_type") ? [{ key: "communication_type", title: "Kommunikationsarten" }] diff --git a/src/stores/admin/settings/salutation.ts b/src/stores/admin/settings/salutation.ts new file mode 100644 index 0000000..1b26df3 --- /dev/null +++ b/src/stores/admin/settings/salutation.ts @@ -0,0 +1,53 @@ +import { defineStore } from "pinia"; +import type { + CreateSalutationViewModel, + UpdateSalutationViewModel, + SalutationViewModel, +} from "@/viewmodels/admin/settings/salutation.models"; +import { http } from "@/serverCom"; +import type { AxiosResponse } from "axios"; + +export const useSalutationStore = defineStore("salutation", { + state: () => { + return { + salutations: [] as Array, + loading: "loading" as "loading" | "fetched" | "failed", + }; + }, + actions: { + fetchSalutations() { + this.loading = "loading"; + http + .get("/admin/salutation") + .then((result) => { + this.salutations = result.data; + this.loading = "fetched"; + }) + .catch((err) => { + this.loading = "failed"; + }); + }, + fetchSalutationById(id: number): Promise> { + return http.get(`/admin/salutation/${id}`); + }, + async createSalutation(salutation: CreateSalutationViewModel): Promise> { + const result = await http.post(`/admin/salutation`, { + salutation: salutation.salutation, + }); + this.fetchSalutations(); + return result; + }, + async updateActiveSalutation(salutation: UpdateSalutationViewModel): Promise> { + const result = await http.patch(`/admin/salutation/${salutation.id}`, { + salutation: salutation.salutation, + }); + this.fetchSalutations(); + return result; + }, + async deleteSalutation(salutation: number): Promise> { + const result = await http.delete(`/admin/salutation/${salutation}`); + this.fetchSalutations(); + return result; + }, + }, +}); diff --git a/src/types/permissionTypes.ts b/src/types/permissionTypes.ts index 5ba5cb4..cd37e49 100644 --- a/src/types/permissionTypes.ts +++ b/src/types/permissionTypes.ts @@ -11,6 +11,7 @@ export type PermissionModule = | "executive_position" | "communication_type" | "membership_status" + | "salutation" | "calendar_type" | "user" | "role" @@ -53,6 +54,7 @@ export const permissionModules: Array = [ "executive_position", "communication_type", "membership_status", + "salutation", "calendar_type", "user", "role", @@ -71,6 +73,7 @@ export const sectionsAndModules: SectionsAndModulesObject = { "executive_position", "communication_type", "membership_status", + "salutation", "calendar_type", "query_store", "template", diff --git a/src/viewmodels/admin/club/member/member.models.ts b/src/viewmodels/admin/club/member/member.models.ts index 0283545..a6b49ff 100644 --- a/src/viewmodels/admin/club/member/member.models.ts +++ b/src/viewmodels/admin/club/member/member.models.ts @@ -1,10 +1,10 @@ -import { Salutation } from "@/enums/salutation"; import type { CommunicationViewModel } from "./communication.models"; import type { MembershipViewModel } from "./membership.models"; +import type { SalutationViewModel } from "../../settings/salutation.models"; export interface MemberViewModel { id: number; - salutation: Salutation; + salutation: SalutationViewModel; firstname: string; lastname: string; nameaffix: string; @@ -19,7 +19,7 @@ export interface MemberViewModel { export interface MemberStatisticsViewModel { id: number; - salutation: Salutation; + salutation: string; firstname: string; lastname: string; nameaffix: string; @@ -30,7 +30,7 @@ export interface MemberStatisticsViewModel { } export interface CreateMemberViewModel { - salutation: Salutation; + salutationId: number; firstname: string; lastname: string; nameaffix: string; @@ -40,7 +40,7 @@ export interface CreateMemberViewModel { export interface UpdateMemberViewModel { id: number; - salutation: Salutation; + salutationId: number; firstname: string; lastname: string; nameaffix: string; diff --git a/src/viewmodels/admin/club/member/membership.models.ts b/src/viewmodels/admin/club/member/membership.models.ts index b2114c0..6051ec9 100644 --- a/src/viewmodels/admin/club/member/membership.models.ts +++ b/src/viewmodels/admin/club/member/membership.models.ts @@ -1,5 +1,3 @@ -import type { Salutation } from "../../../../enums/salutation"; - export interface MembershipViewModel { id: number; start: Date; @@ -15,7 +13,7 @@ export interface MembershipStatisticsViewModel { status: string; statusId: number; memberId: number; - memberSalutation: Salutation; + memberSalutation: string; memberFirstname: string; memberLastname: string; memberNameaffix: string; diff --git a/src/viewmodels/admin/settings/salutation.models.ts b/src/viewmodels/admin/settings/salutation.models.ts new file mode 100644 index 0000000..73915ab --- /dev/null +++ b/src/viewmodels/admin/settings/salutation.models.ts @@ -0,0 +1,13 @@ +export interface SalutationViewModel { + id: number; + salutation: string; +} + +export interface CreateSalutationViewModel { + salutation: string; +} + +export interface UpdateSalutationViewModel { + id: number; + salutation: string; +} diff --git a/src/views/admin/club/members/MemberEdit.vue b/src/views/admin/club/members/MemberEdit.vue index af6e56b..6053966 100644 --- a/src/views/admin/club/members/MemberEdit.vue +++ b/src/views/admin/club/members/MemberEdit.vue @@ -9,13 +9,13 @@ >

Mitglied bearbeiten

- + Anrede
- {{ member.salutation }} + {{ member.salutation.salutation }} @@ -32,7 +32,7 @@ @@ -42,7 +42,9 @@ 'relative cursor-default select-none py-2 pl-10 pr-4', ]" > - {{ salutation }} + {{ + salutation.salutation + }} @@ -101,7 +103,7 @@ import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } f import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid"; import cloneDeep from "lodash.clonedeep"; import isEqual from "lodash.isequal"; -import { Salutation } from "@/enums/salutation"; +import { useSalutationStore } from "../../../../stores/admin/settings/salutation"; + + diff --git a/src/views/admin/settings/salutation/SalutationEdit.vue b/src/views/admin/settings/salutation/SalutationEdit.vue new file mode 100644 index 0000000..35def41 --- /dev/null +++ b/src/views/admin/settings/salutation/SalutationEdit.vue @@ -0,0 +1,120 @@ + + + + +