diff --git a/components/EntityEdit.vue b/components/EntityEdit.vue
index a528c11..3f06527 100644
--- a/components/EntityEdit.vue
+++ b/components/EntityEdit.vue
@@ -76,8 +76,6 @@ const loadOptions = async () => {
}
})
- console.log(optionsToLoad)
-
for await(const option of optionsToLoad) {
if(option.option === "countrys") {
loadedOptions.value[option.option] = (await supabase.from("countrys").select()).data
@@ -91,8 +89,6 @@ const loadOptions = async () => {
}
}
}
-
- console.log(loadedOptions.value)
}
loadOptions()
diff --git a/components/EntityShow.vue b/components/EntityShow.vue
index d733458..300dcde 100644
--- a/components/EntityShow.vue
+++ b/components/EntityShow.vue
@@ -90,7 +90,7 @@ const renderedPhases = computed(() => {
{{item ? `${dataType.labelSingle}: ${props.item[dataType.templateColumns.find(i => i.title).key]}`: '' }}
+ >{{item ? `${dataType.labelSingle}${props.item[dataType.templateColumns.find(i => i.title).key] ? ': ' + props.item[dataType.templateColumns.find(i => i.title).key] : ''}`: '' }}
{
to: "/workingtimes",
icon: "i-heroicons-clock"
}] : [],
- {
+ ... role.checkRight("absencerequests") ? [{
label: "Abwesenheiten",
- to: "/absenceRequests",
+ to: "/standardEntity/absencerequests",
icon: "i-heroicons-document-text"
- },
+ }] : [],
]
},
... profileStore.ownTenant.features.accounting ? [{
diff --git a/composables/useRole.js b/composables/useRole.js
index c142882..f1248d3 100644
--- a/composables/useRole.js
+++ b/composables/useRole.js
@@ -148,6 +148,18 @@ export const useRole = () => {
label: "Inventarartikel erstellen",
parent: "inventoryitems"
},
+ absencerequests: {
+ label: "Abwesenheiten",
+ showToAllUsers: false
+ },
+ "absencerequests-viewAll": {
+ label: "Alle Abwesenheiten einsehen",
+ parent: "absencerequests"
+ },
+ "absencerequests-create": {
+ label: "Abwesenheiten erstellen",
+ parent: "absencerequests"
+ },
spaces: {
label: "Lagerplätze",
showToAllUsers: false
diff --git a/pages/absenceRequests/[mode]/[[id]].vue b/deprecated/absenceRequests/[mode]/[[id]].vue
similarity index 100%
rename from pages/absenceRequests/[mode]/[[id]].vue
rename to deprecated/absenceRequests/[mode]/[[id]].vue
diff --git a/pages/absenceRequests/index.vue b/deprecated/absenceRequests/index.vue
similarity index 100%
rename from pages/absenceRequests/index.vue
rename to deprecated/absenceRequests/index.vue
diff --git a/stores/data.js b/stores/data.js
index 9331a7d..f0a90a3 100644
--- a/stores/data.js
+++ b/stores/data.js
@@ -373,7 +373,59 @@ export const useDataStore = defineStore('data', () => {
absencerequests: {
label: "Abwesenheitsanträge",
labelSingle: "Abwesenheitsantrag",
- redirect:true
+ isStandardEntity: true,
+ supabaseSelectWithInformation: "*",
+ redirect:true,
+ filters:[],
+ templateColumns:[
+ {
+ key: "approved",
+ label: "Genehmigt",
+ inputType: "select",
+ selectManualOptions: ["Offen","Genehmigt", "Abgelehnt"]
+ },{
+ key: "name",
+ label: "Name",
+ inputType: "text",
+ title: true
+ },
+ {
+ key: "profile",
+ label: "Mitarbeiter",
+ inputType: "select",
+ selectDataType: "profiles",
+ selectOptionAttribute: "fullName",
+ selectSearchAttributes: ['fullName'],
+ component: profile
+ },{
+ key: "reason",
+ label: "Grund",
+ inputType: "select",
+ selectManualOptions: ["Elternzeit",
+ "Kind krank - Kinderbetreuung",
+ "Krankheit",
+ "Krankheit 1 Tag (mit Attest)",
+ "Krankheit ab 2. Tag (mit Attest)",
+ "Mutterschutz",
+ "Sonderurlaub (bezahlt)",
+ "Überstundenausgleich",
+ "Unbezahlter Urlaub",
+ "Urlaub"]
+ },{
+ key: "startDate",
+ label: "Start",
+ inputType: "date"
+ },{
+ key: "endDate",
+ label: "Ende",
+ inputType: "date"
+ },{
+ key: "note",
+ label: "Notizen",
+ inputType: "textarea"
+ }
+ ],
+ showTabs: [{label: 'Informationen'}]
},
plants: {
label: "Objekte",