diff --git a/components/HelpSlideover.vue b/components/HelpSlideover.vue
index 82d2a6e..43ab35c 100644
--- a/components/HelpSlideover.vue
+++ b/components/HelpSlideover.vue
@@ -13,7 +13,7 @@ const links = [{
shortcuts.value = true
}
}, {
- label: 'Homepage',
+ label: 'Webseite',
icon: 'i-heroicons-book-open',
to: 'https://fedeo.de',
target: '_blank'
diff --git a/components/HistoryDisplay.vue b/components/HistoryDisplay.vue
index ec7e30f..00bae72 100644
--- a/components/HistoryDisplay.vue
+++ b/components/HistoryDisplay.vue
@@ -63,11 +63,11 @@ const historyItems = computed(() => {
})
const addHistoryItemData = ref({
text: "",
- user: ""
})
const addHistoryItem = async () => {
- addHistoryItemData.value.user = user.value.id
+ console.log(addHistoryItemData.value)
+ addHistoryItemData.value.createdBy = dataStore.activeProfile.id
if(type === "customer") {
addHistoryItemData.value.customer = elementId
@@ -197,7 +197,7 @@ const renderText = (text) => {
/>
{{dataStore.getProfileById(item.createdBy) ? dataStore.getProfileById(item.createdBy).fullName : ""}}
- Spaces Bot
+ FEDEO Bot
{{dayjs(item.created_at).format("DD.MM.YY HH:mm")}}
diff --git a/components/UserDropdown.vue b/components/UserDropdown.vue
index e1e740c..5a98997 100644
--- a/components/UserDropdown.vue
+++ b/components/UserDropdown.vue
@@ -12,34 +12,7 @@ const items = computed(() => [
slot: 'account',
label: '',
disabled: true
- }], [{
- label: 'Suche',
- icon: 'i-heroicons-command-line',
- shortcuts: [metaSymbol.value, 'K'],
- click: () => {
- isDashboardSearchModalOpen.value = true
- }
- }, {
- label: 'Hilfe & Support',
- icon: 'i-heroicons-question-mark-circle',
- shortcuts: ['?'],
- click: () => isHelpSlideoverOpen.value = true
- }], [{
- label: 'Webseite',
- icon: 'i-heroicons-book-open',
- to: 'https://fedeo.de',
- target: '_blank'
- },/* {
- label: 'GitHub repository',
- icon: 'i-simple-icons-github',
- to: 'https://github.com/nuxt/ui-pro',
- target: '_blank'
- }, {
- label: 'Buy Nuxt UI Pro',
- icon: 'i-heroicons-credit-card',
- to: 'https://ui.nuxt.com/pro/purchase',
- target: '_blank'
- }*/], [{
+ }], [{
label: 'Abmelden',
icon: 'i-heroicons-arrow-left-on-rectangle',
click: async () => {
diff --git a/layouts/default.vue b/layouts/default.vue
index ca9b75d..cf777c7 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -270,7 +270,7 @@ let links = computed(() => {
defaultOpen: false,
children: [
{
- label: "Steuerung",
+ label: "Vorgänge",
to: "/inventory",
icon: "i-heroicons-square-3-stack-3d"
},
@@ -456,7 +456,16 @@ const footerLinks = [/*{
-
+
+
+
+
+
+
diff --git a/pages/customers/[mode]/[[id]].vue b/pages/customers/[mode]/[[id]].vue
index 13f1aef..9b145b7 100644
--- a/pages/customers/[mode]/[[id]].vue
+++ b/pages/customers/[mode]/[[id]].vue
@@ -116,7 +116,7 @@ setupPage()
@@ -223,7 +223,7 @@ setupPage()
- + Objekt
+ + Vertrag
i.id === resourceToAdd))"
- :disabled="itemInfo.resources.find(i => i.id === resourceToAdd)"
+ :disabled="itemInfo.resources.find(i => i.id === resourceToAdd)"
>
+ Hinzufügen
diff --git a/pages/inventory/index.vue b/pages/inventory/index.vue
index 35ac65c..b71dfe4 100644
--- a/pages/inventory/index.vue
+++ b/pages/inventory/index.vue
@@ -134,7 +134,7 @@ function changeFocusToQuantity() {
{
password: data.password
})
if(error) {
- console.log(error.toString())
+ if(error.toString().toLowerCase().includes("invalid")){
+ toast.add({title:"Zugangsdaten falsch",color:"rose"})
+ }
+
} else {
- console.log("Login Successful")
+ //console.log("Login Successful")
dataStore.initializeData(user.id)
router.push("/")
diff --git a/pages/tasks/[mode]/[[id]].vue b/pages/tasks/[mode]/[[id]].vue
index 8d281a3..e03ae88 100644
--- a/pages/tasks/[mode]/[[id]].vue
+++ b/pages/tasks/[mode]/[[id]].vue
@@ -13,7 +13,9 @@ let currentItem = ref(null)
//Working
const mode = ref(route.params.mode || "show")
-const itemInfo = ref({})
+const itemInfo = ref({
+ profile: dataStore.activeProfile.id
+})
const oldItemInfo = ref({})
const categories = ["Offen", "In Bearbeitung", "Dringed", "Erledigt"]
diff --git a/pages/vehicles/[mode]/[[id]].vue b/pages/vehicles/[mode]/[[id]].vue
index d7a9c1c..d64430c 100644
--- a/pages/vehicles/[mode]/[[id]].vue
+++ b/pages/vehicles/[mode]/[[id]].vue
@@ -65,7 +65,7 @@ const setupPage = () => {
}
if(mode.value === "edit") itemInfo.value = currentItem.value
- if(currentItem.value.id) oldItemInfo.value = JSON.parse(JSON.stringify(currentItem.value))
+ if(currentItem.value) oldItemInfo.value = JSON.parse(JSON.stringify(currentItem.value))
}
const cancelEditorCreate = () => {
diff --git a/pages/workingtimes/[mode]/[[id]].vue b/pages/workingtimes/[mode]/[[id]].vue
index cee2ce4..c2c4979 100644
--- a/pages/workingtimes/[mode]/[[id]].vue
+++ b/pages/workingtimes/[mode]/[[id]].vue
@@ -55,6 +55,7 @@ setupPage()
Erstellen
diff --git a/stores/data.js b/stores/data.js
index e121bd6..9c798f0 100644
--- a/stores/data.js
+++ b/stores/data.js
@@ -490,218 +490,218 @@ export const useDataStore = defineStore('data', () => {
//console.log(oldData)
//console.log(newData)
- let itemsToCreate = []
+ if(dataTypes[dataType].historyItemHolder){
+ let itemsToCreate = []
- const checkPropState = (key,propContent) => {
- //console.log(propContent)
- if(propContent.type && propContent.data){
- if(propContent.type === "updated" ||propContent.type === "created"){
- createHistoryItem(key,propContent)
+ const checkPropState = (key,propContent) => {
+ //console.log(propContent)
+ if(propContent.type && propContent.data){
+ if(propContent.type === "updated" ||propContent.type === "created"){
+ createHistoryItem(key,propContent)
+ }
+ } else {
+ for (let prop in propContent) {
+ checkPropState(prop,propContent[prop])
+ }
}
+ }
+
+ const createHistoryItem = (key,prop) => {
+
+ //console.log("OLD: " + prop.data.o)
+ //console.log("NEW: " + prop.data.n)
+
+ let name = "" || key
+ let oldVal = prop.data.o || "-"
+ let newVal = prop.data.n || "-"
+
+
+
+ if(key === "project") {
+ name = "Projekt"
+ oldVal = oldVal !== "-" ? projects.value.find(i => i.id === prop.data.o).name : "-"
+ newVal = projects.value.find(i => i.id === prop.data.n).name
+ } else if (key === "title") {
+ name = "Titel"
+ } else if(key === "type") {
+ name = "Typ"
+ } else if(key === "notes") {
+ name = "Notizen"
+ } else if(key === "link") {
+ name = "Link"
+ } else if(key === "start") {
+ name = "Start"
+ 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.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(", ")
+ newVal = prop.data.n.map(i => i.title).join(", ")
+ } else if(key === "customerNumber") {
+ name = "Kundennummer"
+ } else if(key === "active") {
+ name = "Aktiv"
+ if(oldVal === true){
+ oldVal = "Aktiv"
+ newVal = "Gesperrt"
+ } else if(oldVal === "-") {
+ oldVal = "Gesperrt"
+ newVal = "Aktiv"
+ }
+ } else if(key === "isCompany") {
+ name = "Firmenkunde"
+ if(oldVal === true){
+ oldVal = "Firma"
+ newVal = "Privatkunde"
+ } else if(oldVal === "-") {
+ oldVal = "Privatkunde"
+ newVal = "Firma"
+ }
+ } else if(key === "special") {
+ name = "Adresszusatz"
+ } else if(key === "street") {
+ name = "Straße & Hausnummer"
+ } else if(key === "city") {
+ name = "Ort"
+ } else if(key === "zip") {
+ name = "Postleitzahl"
+ } else if(key === "country") {
+ name = "Land"
+ } else if(key === "web") {
+ name = "Webseite"
+ } else if(key === "email") {
+ name = "E-Mail"
+ } else if(key === "tel") {
+ 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 = `Gerändert: ${name} von "${oldVal}" zu "${newVal}"`
+ } else if(prop.type === "updated" && newVal !== "-" && oldVal === "-") {
+ text = `Hinzugefügt: ${name} "${newVal}"`
+ } else if(prop.type === "created") {
+ text = `Hinzugefügt: ${name} "${newVal}"`
+ } else if(prop.type === "updated" && newVal === "-" && oldVal !== "-") {
+ text = `Entfernt: ${name} "${oldVal}"`
+ }
+
+ let historyItem = {
+ text: text,
+ createdBy: activeProfile.value.id,
+ oldVal: prop.data.o,
+ newVal: prop.data.n,
+ tenant: currentTenant.value
+ }
+
+ historyItem[dataTypes[dataType].historyItemHolder] = newData.id
+
+
+ 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) {
+ let result = deepDiffMapper.map(oldData,newData)
+
+ //console.log(result)
+
+ for (let prop in result) {
+ //console.log(prop)
+ checkPropState(prop,result[prop])
+
+ }
+
} else {
- for (let prop in propContent) {
- checkPropState(prop,propContent[prop])
+ let historyItem = {
+ text: `${dataTypes[dataType].labelSingle} erstellt`,
+ createdBy: activeProfile.value.id,
+ tenant: currentTenant.value
}
- }
- }
- const createHistoryItem = (key,prop) => {
+ historyItem[dataTypes[dataType].historyItemHolder] = newData.id
- //console.log("OLD: " + prop.data.o)
- //console.log("NEW: " + prop.data.n)
-
- let name = "" || key
- let oldVal = prop.data.o || "-"
- let newVal = prop.data.n || "-"
-
-
-
- if(key === "project") {
- name = "Projekt"
- oldVal = projects.value.find(i => i.id === prop.data.o).name
- newVal = projects.value.find(i => i.id === prop.data.n).name
- } else if (key === "title") {
- name = "Titel"
- } else if(key === "type") {
- name = "Typ"
- } else if(key === "notes") {
- name = "Notizen"
- } else if(key === "link") {
- name = "Link"
- } else if(key === "start") {
- name = "Start"
- 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.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(", ")
- newVal = prop.data.n.map(i => i.title).join(", ")
- } else if(key === "customerNumber") {
- name = "Kundennummer"
- } else if(key === "active") {
- name = "Aktiv"
- if(oldVal === true){
- oldVal = "Aktiv"
- newVal = "Gesperrt"
- } else if(oldVal === "-") {
- oldVal = "Gesperrt"
- newVal = "Aktiv"
- }
- } else if(key === "isCompany") {
- name = "Firmenkunde"
- if(oldVal === true){
- oldVal = "Firma"
- newVal = "Privatkunde"
- } else if(oldVal === "-") {
- oldVal = "Privatkunde"
- newVal = "Firma"
- }
- } else if(key === "special") {
- name = "Adresszusatz"
- } else if(key === "street") {
- name = "Straße & Hausnummer"
- } else if(key === "city") {
- name = "Ort"
- } else if(key === "zip") {
- name = "Postleitzahl"
- } else if(key === "country") {
- name = "Land"
- } else if(key === "web") {
- name = "Webseite"
- } else if(key === "email") {
- name = "E-Mail"
- } else if(key === "tel") {
- 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 = `Gerändert: ${name} von "${oldVal}" zu "${newVal}"`
- } else if(prop.type === "updated" && newVal !== "-" && oldVal === "-") {
- text = `Hinzugefügt: ${name} "${newVal}"`
- } else if(prop.type === "created") {
- text = `Hinzugefügt: ${name} "${newVal}"`
- } else if(prop.type === "updated" && newVal === "-" && oldVal !== "-") {
- text = `Entfernt: ${name} "${oldVal}"`
- }
-
- let historyItem = {
- text: text,
- createdBy: activeProfile.value.id,
- oldVal: prop.data.o,
- newVal: prop.data.n,
- tenant: currentTenant.value
- }
-
- historyItem[dataTypes[dataType].historyItemHolder] = newData.id
-
-
- 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) {
- let result = deepDiffMapper.map(oldData,newData)
-
- //console.log(result)
-
- for (let prop in result) {
- //console.log(prop)
- checkPropState(prop,result[prop])
+ const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
+ if(error) {
+ console.log(error)
+ } else {
+ fetchHistoryItems()
}
-
- } else {
- let historyItem = {
- text: `${dataTypes[dataType].labelSingle} erstellt`,
- createdBy: activeProfile.value.id,
- tenant: currentTenant.value
- }
-
- historyItem[dataTypes[dataType].historyItemHolder] = newData.id
-
- //console.log(historyItem)
- itemsToCreate.push(historyItem)
}
-
- const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
-
- if(error) {
- console.log(error)
- } else {
- fetchHistoryItems()
- }
-
-
}