Restructured Update Process Into Store
This commit is contained in:
@@ -15,43 +15,66 @@ export const useDataStore = defineStore('data', () => {
|
||||
const dataTypes = {
|
||||
tasks: {
|
||||
label: "Aufgaben",
|
||||
labelSingle: "Aufgabe"
|
||||
labelSingle: "Aufgabe",
|
||||
redirect: true
|
||||
},
|
||||
customers: {
|
||||
label: "Kunden",
|
||||
labelSingle: "Kunde"
|
||||
labelSingle: "Kunde",
|
||||
redirect:true
|
||||
},
|
||||
contacts: {
|
||||
label: "Kontakte",
|
||||
labelSingle: "Kontakt"
|
||||
labelSingle: "Kontakt",
|
||||
redirect:true
|
||||
},
|
||||
contracts: {
|
||||
label: "Verträge",
|
||||
labelSingle: "Vertrag"
|
||||
labelSingle: "Vertrag",
|
||||
redirect:true
|
||||
},
|
||||
absenceRequests: {
|
||||
label: "Abwesenheitsanträge",
|
||||
labelSingle: "Abwesenheitsantrag"
|
||||
labelSingle: "Abwesenheitsantrag",
|
||||
redirect:true
|
||||
},
|
||||
plants: {
|
||||
label: "Anlagen",
|
||||
labelSingle: "Anlage"
|
||||
labelSingle: "Anlage",
|
||||
redirect:true
|
||||
},
|
||||
products: {
|
||||
label: "Artikel",
|
||||
labelSingle: "Artikel"
|
||||
labelSingle: "Artikel",
|
||||
redirect:true
|
||||
},
|
||||
projects: {
|
||||
label: "Projekte",
|
||||
labelSingle: "Projekt"
|
||||
labelSingle: "Projekt",
|
||||
redirect:true
|
||||
},
|
||||
vehicles: {
|
||||
label: "Fahrzeuge",
|
||||
labelSingle: "Fahrzeug"
|
||||
labelSingle: "Fahrzeug",
|
||||
redirect:true
|
||||
},
|
||||
vendors: {
|
||||
label: "Lieferanten",
|
||||
labelSingle: "Lieferant"
|
||||
labelSingle: "Lieferant",
|
||||
redirect:true
|
||||
},
|
||||
messages: {
|
||||
label: "Nachrichten",
|
||||
labelSingle: "Nachricht"
|
||||
},
|
||||
spaces: {
|
||||
label: "Lagerplätze",
|
||||
labelSingle: "Lagerplatz",
|
||||
redirect: true
|
||||
},
|
||||
users: {
|
||||
label: "Benutzer",
|
||||
labelSingle: "Benutzer"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,6 +195,7 @@ export const useDataStore = defineStore('data', () => {
|
||||
messages.value = []
|
||||
}
|
||||
|
||||
//Realtime Update
|
||||
const channelA = supabase
|
||||
.channel('schema-db-changes')
|
||||
.on(
|
||||
@@ -181,10 +205,15 @@ export const useDataStore = defineStore('data', () => {
|
||||
schema: 'public',
|
||||
},
|
||||
(payload) => {
|
||||
//console.log(payload)
|
||||
const c = payload.table + '.value.push(' + JSON.stringify(payload.new) + ')'
|
||||
eval(c)
|
||||
console.log(payload)
|
||||
|
||||
if(payload.eventType === 'INSERT') {
|
||||
const c = payload.table + '.value.push(' + JSON.stringify(payload.new) + ')'
|
||||
eval(c)
|
||||
} else if(payload.eventType === 'UPDATE'){
|
||||
const c = payload.table + '.value[' + payload.table + '.value.findIndex(i => i.id === ' + JSON.stringify(payload.old.id) + ')] = ' + JSON.stringify(payload.new)
|
||||
eval(c)
|
||||
}
|
||||
}
|
||||
)
|
||||
.subscribe()
|
||||
@@ -200,7 +229,24 @@ export const useDataStore = defineStore('data', () => {
|
||||
} else if (supabaseData) {
|
||||
await eval( dataType + '.value.push(' + JSON.stringify(...supabaseData) + ')')
|
||||
toast.add({title: `${dataTypes[dataType].labelSingle} hinzugefügt`})
|
||||
await router.push(`/${dataType}/show/${supabaseData[0].id}`)
|
||||
if(dataTypes[dataType].redirect) await router.push(`/${dataType}/show/${supabaseData[0].id}`)
|
||||
}
|
||||
}
|
||||
|
||||
async function updateItem (dataType:string, data:Object) {
|
||||
const {data:supabaseData,error: supabaseError} = await supabase
|
||||
.from(dataType)
|
||||
.update(data)
|
||||
.eq('id',data.id)
|
||||
.select()
|
||||
|
||||
if(supabaseError) {
|
||||
console.log(supabaseError)
|
||||
} else if(supabaseData) {
|
||||
await eval(dataType + '.value[' + dataType + '.value.findIndex(i => i.id === ' + JSON.stringify(data.id) + ')] = ' + JSON.stringify(supabaseData[0]))
|
||||
toast.add({title: `${dataTypes[dataType].labelSingle} gespeichert`})
|
||||
if(dataTypes[dataType].redirect) await router.push(`/${dataType}/show/${supabaseData[0].id}`)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -660,6 +706,7 @@ export const useDataStore = defineStore('data', () => {
|
||||
messages,
|
||||
//Functions
|
||||
createNewItem,
|
||||
updateItem,
|
||||
fetchData,
|
||||
clearStore,
|
||||
fetchOwnTenant,
|
||||
|
||||
Reference in New Issue
Block a user