Added Automatic HistoryItems to more DataTypes
This commit is contained in:
117
stores/data.js
117
stores/data.js
@@ -30,7 +30,8 @@ export const useDataStore = defineStore('data', () => {
|
||||
contacts: {
|
||||
label: "Kontakte",
|
||||
labelSingle: "Kontakt",
|
||||
redirect:true
|
||||
redirect:true,
|
||||
historyItemHolder: "contact"
|
||||
},
|
||||
contracts: {
|
||||
label: "Verträge",
|
||||
@@ -45,7 +46,8 @@ export const useDataStore = defineStore('data', () => {
|
||||
plants: {
|
||||
label: "Objekte",
|
||||
labelSingle: "Objekte",
|
||||
redirect:true
|
||||
redirect:true,
|
||||
historyItemHolder: "plant"
|
||||
},
|
||||
products: {
|
||||
label: "Artikel",
|
||||
@@ -55,18 +57,21 @@ export const useDataStore = defineStore('data', () => {
|
||||
projects: {
|
||||
label: "Projekte",
|
||||
labelSingle: "Projekt",
|
||||
redirect:true
|
||||
redirect:true,
|
||||
historyItemHolder: "project"
|
||||
},
|
||||
vehicles: {
|
||||
label: "Fahrzeuge",
|
||||
labelSingle: "Fahrzeug",
|
||||
redirect:true
|
||||
redirect:true,
|
||||
historyItemHolder: "vehicle"
|
||||
},
|
||||
vendors: {
|
||||
label: "Lieferanten",
|
||||
labelSingle: "Lieferant",
|
||||
redirect:true,
|
||||
numberRangeHolder: "vendorNumber"
|
||||
numberRangeHolder: "vendorNumber",
|
||||
historyItemHolder: "vendor"
|
||||
},
|
||||
messages: {
|
||||
label: "Nachrichten",
|
||||
@@ -109,7 +114,8 @@ export const useDataStore = defineStore('data', () => {
|
||||
profiles: {
|
||||
label: "Mitarbeiter",
|
||||
labelSingle: "Mitarbeiter",
|
||||
redirect: true
|
||||
redirect: true,
|
||||
historyItemHolder: "profile"
|
||||
},
|
||||
workingtimes: {
|
||||
label: "Anwesenheiten",
|
||||
@@ -410,14 +416,14 @@ export const useDataStore = defineStore('data', () => {
|
||||
VALUE_UPDATED: 'updated',
|
||||
VALUE_DELETED: 'deleted',
|
||||
VALUE_UNCHANGED: 'unchanged',
|
||||
map: function(obj1, obj2) {
|
||||
map: function(obj1, obj2, k = null) {
|
||||
if (this.isFunction(obj1) || this.isFunction(obj2)) {
|
||||
throw 'Invalid argument. Function given, object expected.';
|
||||
}
|
||||
if (this.isValue(obj1) || this.isValue(obj2)) {
|
||||
return {
|
||||
type: this.compareValues(obj1, obj2),
|
||||
data: {o: obj1, n: obj2}//obj1 === undefined ? obj2 : obj1
|
||||
data: {o: obj1, n: obj2, k: k}//obj1 === undefined ? obj2 : obj1
|
||||
};
|
||||
}
|
||||
|
||||
@@ -432,14 +438,14 @@ export const useDataStore = defineStore('data', () => {
|
||||
value2 = obj2[key];
|
||||
}
|
||||
|
||||
diff[key] = this.map(obj1[key], value2);
|
||||
diff[key] = this.map(obj1[key], value2,key);
|
||||
}
|
||||
for (var key in obj2) {
|
||||
if (this.isFunction(obj2[key]) || diff[key] !== undefined) {
|
||||
continue;
|
||||
}
|
||||
|
||||
diff[key] = this.map(undefined, obj2[key]);
|
||||
diff[key] = this.map(undefined, obj2[key],key);
|
||||
}
|
||||
|
||||
return diff;
|
||||
@@ -524,12 +530,16 @@ export const useDataStore = defineStore('data', () => {
|
||||
name = "Link"
|
||||
} else if(key === "start") {
|
||||
name = "Start"
|
||||
oldVal = dayjs(prop.data.o).format("DD.MM.YY HH:mm")
|
||||
newVal = dayjs(prop.data.n).format("DD.MM.YY HH:mm")
|
||||
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
|
||||
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
|
||||
} else if(key === "end") {
|
||||
name = "Ende"
|
||||
oldVal = dayjs(prop.data.o).format("DD.MM.YY HH:mm")
|
||||
newVal = dayjs(prop.data.n).format("DD.MM.YY HH:mm")
|
||||
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
|
||||
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
|
||||
} else if(key === "birthday") {
|
||||
name = "Geburtstag"
|
||||
oldVal = dayjs(prop.data.o).format("DD.MM.YYY")
|
||||
newVal = dayjs(prop.data.n).format("DD.MM.YYY")
|
||||
} else if(key === "resources") {
|
||||
name = "Resourcen"
|
||||
oldVal = prop.data.o.map(i => i.title).join(", ")
|
||||
@@ -572,13 +582,61 @@ export const useDataStore = defineStore('data', () => {
|
||||
name = "Telefon"
|
||||
} else if(key === "ustid") {
|
||||
name = "USt-ID"
|
||||
} else if(key === "role") {
|
||||
name = "Rolle"
|
||||
} else if(key === "phoneHome") {
|
||||
name = "Festnetz"
|
||||
} else if(key === "phoneMobile") {
|
||||
name = "Mobiltelefon"
|
||||
} else if(key === "salutation") {
|
||||
name = "Anrede"
|
||||
} else if(key === "firstName") {
|
||||
name = "Vorname"
|
||||
} else if(key === "lastName") {
|
||||
name = "Nachname"
|
||||
} else if(key === "name") {
|
||||
name = "Name"
|
||||
} else if(key === "customer") {
|
||||
name = "Kunde"
|
||||
oldVal = customers.value.find(i => i.id === prop.data.o).name
|
||||
newVal = customers.value.find(i => i.id === prop.data.n).name
|
||||
} else if(key === "vendor") {
|
||||
name = "Lieferant"
|
||||
oldVal = vendors.value.find(i => i.id === prop.data.o).name
|
||||
newVal = vendors.value.find(i => i.id === prop.data.n).name
|
||||
} else if(key === "description") {
|
||||
name = "Beschreibung"
|
||||
} else if(key === "categorie") {
|
||||
name = "Kategorie"
|
||||
} else if(key === "profile") {
|
||||
name = "Mitarbeiter"
|
||||
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
|
||||
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
|
||||
} else if(key === "plant") {
|
||||
name = "Objekt"
|
||||
oldVal = plants.value.find(i => i.id === prop.data.o).name
|
||||
newVal = plants.value.find(i => i.id === prop.data.n).name
|
||||
} else if(key === "annualPaidLeaveDays") {
|
||||
name = "Urlaubstage"
|
||||
} else if(key === "employeeNumber") {
|
||||
name = "Mitarbeiternummer"
|
||||
} else if(key === "weeklyWorkingDays") {
|
||||
name = "Wöchentliche Arbeitstage"
|
||||
} else if(key === "weeklyWorkingHours") {
|
||||
name = "Wöchentliche Arbeitszeit"
|
||||
} else if(key === "licensePlate") {
|
||||
name = "Kennzeichen"
|
||||
} else if(key === "driver") {
|
||||
name = "Fahrer"
|
||||
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
|
||||
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
|
||||
}
|
||||
|
||||
|
||||
|
||||
let text = ""
|
||||
if(prop.type === "updated" && newVal !== "-" && oldVal !== "-") {
|
||||
text = `Verändert: ${name} von "${oldVal}" zu "${newVal}"`
|
||||
text = `Gerändert: ${name} von "${oldVal}" zu "${newVal}"`
|
||||
} else if(prop.type === "updated" && newVal !== "-" && oldVal === "-") {
|
||||
text = `Hinzugefügt: ${name} "${newVal}"`
|
||||
} else if(prop.type === "created") {
|
||||
@@ -597,8 +655,18 @@ export const useDataStore = defineStore('data', () => {
|
||||
|
||||
historyItem[dataTypes[dataType].historyItemHolder] = newData.id
|
||||
|
||||
console.log(historyItem)
|
||||
itemsToCreate.push(historyItem)
|
||||
|
||||
const checkIfNaN = (x) => {
|
||||
return typeof x === "number" && x !== x;
|
||||
}
|
||||
console.log(key)
|
||||
console.log(checkIfNaN(key))
|
||||
|
||||
if(key !== "fullName" && key !== "phases") {
|
||||
console.log(historyItem)
|
||||
itemsToCreate.push(historyItem)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(oldData) {
|
||||
@@ -611,6 +679,7 @@ export const useDataStore = defineStore('data', () => {
|
||||
checkPropState(prop,result[prop])
|
||||
|
||||
|
||||
|
||||
//console.log(prop)
|
||||
//console.log(result[prop])
|
||||
|
||||
@@ -637,13 +706,13 @@ export const useDataStore = defineStore('data', () => {
|
||||
itemsToCreate.push(historyItem)
|
||||
}
|
||||
|
||||
/*const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
|
||||
const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
|
||||
|
||||
if(error) {
|
||||
console.log(error)
|
||||
} else {
|
||||
fetchHistoryItems()
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -723,9 +792,19 @@ export const useDataStore = defineStore('data', () => {
|
||||
}
|
||||
|
||||
async function updateItem (dataType, data, oldData = null) {
|
||||
//Temporary Fix TODO: Remove and build Solution
|
||||
data = JSON.parse(JSON.stringify(data))
|
||||
delete data.users
|
||||
|
||||
if(oldData) {
|
||||
oldData = JSON.parse(JSON.stringify(oldData))
|
||||
delete oldData.users
|
||||
}
|
||||
|
||||
const {tenants, ...newData} = data
|
||||
|
||||
console.log(newData)
|
||||
|
||||
await generateHistoryItems(dataType,data,oldData)
|
||||
|
||||
const {data:supabaseData,error: supabaseError} = await supabase
|
||||
|
||||
Reference in New Issue
Block a user