Added Archivable Prop to Datatypes wich are archivable

Added Filtering to SupabaseSelect Composable for Archived
This commit is contained in:
2025-03-16 17:36:16 +01:00
parent b7d64b1f9e
commit 15a889dfcf
2 changed files with 30 additions and 0 deletions

View File

@@ -1,10 +1,13 @@
import {useDataStore} from "~/stores/data.js";
export const useSupabaseSelect = async (relation,select = '*', sortColumn = null, ascending = true) => { export const useSupabaseSelect = async (relation,select = '*', sortColumn = null, ascending = true) => {
const supabase = useSupabaseClient() const supabase = useSupabaseClient()
const profileStore = useProfileStore() const profileStore = useProfileStore()
let data = null let data = null
const dataStore = useDataStore()
const dataType = dataStore.dataTypes[relation]
if(sortColumn !== null ) { if(sortColumn !== null ) {
data = (await supabase data = (await supabase
@@ -19,6 +22,10 @@ export const useSupabaseSelect = async (relation,select = '*', sortColumn = null
.eq("tenant", profileStore.currentTenant)).data .eq("tenant", profileStore.currentTenant)).data
} }
if(dataType && dataType.isArchivable) {
data = data.filter(i => !i.archived)
}
return data return data
} }

View File

@@ -55,6 +55,7 @@ export const useDataStore = defineStore('data', () => {
const dataTypes = { const dataTypes = {
tasks: { tasks: {
isArchivable: true,
label: "Aufgaben", label: "Aufgaben",
labelSingle: "Aufgabe", labelSingle: "Aufgabe",
isStandardEntity: true, isStandardEntity: true,
@@ -146,6 +147,7 @@ export const useDataStore = defineStore('data', () => {
showTabs: [{label: 'Informationen'}] showTabs: [{label: 'Informationen'}]
}, },
customers: { customers: {
isArchivable: true,
label: "Kunden", label: "Kunden",
labelSingle: "Kunde", labelSingle: "Kunde",
isStandardEntity: true, isStandardEntity: true,
@@ -310,6 +312,7 @@ export const useDataStore = defineStore('data', () => {
showTabs: [{label: 'Informationen'},{label: 'Ansprechpartner'},{label: 'Dateien'},{label: 'Ausgangsbelege'},{label: 'Projekte'},{label: 'Objekte'},{label: 'Verträge'}] showTabs: [{label: 'Informationen'},{label: 'Ansprechpartner'},{label: 'Dateien'},{label: 'Ausgangsbelege'},{label: 'Projekte'},{label: 'Objekte'},{label: 'Verträge'}]
}, },
contacts: { contacts: {
isArchivable: true,
label: "Kontakte", label: "Kontakte",
labelSingle: "Kontakt", labelSingle: "Kontakt",
isStandardEntity: true, isStandardEntity: true,
@@ -414,6 +417,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
contracts: { contracts: {
isArchivable: true,
label: "Verträge", label: "Verträge",
labelSingle: "Vertrag", labelSingle: "Vertrag",
isStandardEntity: true, isStandardEntity: true,
@@ -561,6 +565,7 @@ export const useDataStore = defineStore('data', () => {
showTabs: [{label: 'Informationen'},{label: 'Dateien'}] showTabs: [{label: 'Informationen'},{label: 'Dateien'}]
}, },
absencerequests: { absencerequests: {
isArchivable: true,
label: "Abwesenheiten", label: "Abwesenheiten",
labelSingle: "Abwesenheit", labelSingle: "Abwesenheit",
isStandardEntity: true, isStandardEntity: true,
@@ -650,6 +655,7 @@ export const useDataStore = defineStore('data', () => {
showTabs: [{label: 'Informationen'}] showTabs: [{label: 'Informationen'}]
}, },
plants: { plants: {
isArchivable: true,
label: "Objekte", label: "Objekte",
labelSingle: "Objekt", labelSingle: "Objekt",
isStandardEntity: true, isStandardEntity: true,
@@ -702,6 +708,7 @@ export const useDataStore = defineStore('data', () => {
}] }]
}, },
products: { products: {
isArchivable: true,
label: "Artikel", label: "Artikel",
labelSingle: "Artikel", labelSingle: "Artikel",
isStandardEntity: true, isStandardEntity: true,
@@ -793,6 +800,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
projects: { projects: {
isArchivable: true,
label: "Projekte", label: "Projekte",
labelSingle: "Projekt", labelSingle: "Projekt",
isStandardEntity: true, isStandardEntity: true,
@@ -923,6 +931,7 @@ export const useDataStore = defineStore('data', () => {
}*/] }*/]
}, },
vehicles: { vehicles: {
isArchivable: true,
label: "Fahrzeuge", label: "Fahrzeuge",
labelSingle: "Fahrzeug", labelSingle: "Fahrzeug",
isStandardEntity: true, isStandardEntity: true,
@@ -1020,6 +1029,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
vendors: { vendors: {
isArchivable: true,
label: "Lieferanten", label: "Lieferanten",
labelSingle: "Lieferant", labelSingle: "Lieferant",
isStandardEntity: true, isStandardEntity: true,
@@ -1158,6 +1168,7 @@ export const useDataStore = defineStore('data', () => {
labelSingle: "Nachricht" labelSingle: "Nachricht"
}, },
spaces: { spaces: {
isArchivable: true,
label: "Lagerplätze", label: "Lagerplätze",
labelSingle: "Lagerplatz", labelSingle: "Lagerplatz",
isStandardEntity: true, isStandardEntity: true,
@@ -1288,6 +1299,7 @@ export const useDataStore = defineStore('data', () => {
labelSingle: "Benutzer" labelSingle: "Benutzer"
}, },
createddocuments: { createddocuments: {
isArchivable: true,
label: "Dokumente", label: "Dokumente",
labelSingle: "Dokument" labelSingle: "Dokument"
}, },
@@ -1297,6 +1309,7 @@ export const useDataStore = defineStore('data', () => {
redirect:true redirect:true
}, },
inventoryitems: { inventoryitems: {
isArchivable: true,
label: "Inventarartikel", label: "Inventarartikel",
labelSingle: "Inventarartikel", labelSingle: "Inventarartikel",
isStandardEntity: true, isStandardEntity: true,
@@ -1436,6 +1449,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
inventoryitemgroups: { inventoryitemgroups: {
isArchivable: true,
label: "Inventarartikelgruppen", label: "Inventarartikelgruppen",
labelSingle: "Inventarartikelgruppe", labelSingle: "Inventarartikelgruppe",
isStandardEntity: true, isStandardEntity: true,
@@ -1500,6 +1514,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
services: { services: {
isArchivable: true,
label: "Leistungen", label: "Leistungen",
labelSingle: "Leistung", labelSingle: "Leistung",
isStandardEntity: true, isStandardEntity: true,
@@ -1626,6 +1641,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
events: { events: {
isArchivable: true,
label: "Termine", label: "Termine",
labelSingle: "Termin", labelSingle: "Termin",
isStandardEntity: true, isStandardEntity: true,
@@ -1750,16 +1766,19 @@ export const useDataStore = defineStore('data', () => {
historyItemHolder: "profile" historyItemHolder: "profile"
}, },
workingtimes: { workingtimes: {
isArchivable: true,
label: "Anwesenheiten", label: "Anwesenheiten",
labelSingle: "Anwesenheit", labelSingle: "Anwesenheit",
redirect: true, redirect: true,
redirectToList: true redirectToList: true
}, },
texttemplates: { texttemplates: {
isArchivable: true,
label: "Textvorlagen", label: "Textvorlagen",
labelSingle: "Textvorlage" labelSingle: "Textvorlage"
}, },
bankstatements: { bankstatements: {
isArchivable: true,
label: "Kontobewegungen", label: "Kontobewegungen",
labelSingle: "Kontobewegung", labelSingle: "Kontobewegung",
historyItemHolder: "bankStatement", historyItemHolder: "bankStatement",
@@ -1769,6 +1788,7 @@ export const useDataStore = defineStore('data', () => {
labelSingle: "Bankzuweisung" labelSingle: "Bankzuweisung"
}, },
productcategories: { productcategories: {
isArchivable: true,
label: "Artikelkategorien", label: "Artikelkategorien",
labelSingle: "Artikelkategorie", labelSingle: "Artikelkategorie",
isStandardEntity: true, isStandardEntity: true,
@@ -1806,6 +1826,7 @@ export const useDataStore = defineStore('data', () => {
] ]
}, },
servicecategories: { servicecategories: {
isArchivable: true,
label: "Leistungskategorien", label: "Leistungskategorien",
labelSingle: "Leistungskategorie", labelSingle: "Leistungskategorie",
isStandardEntity: true, isStandardEntity: true,
@@ -1849,12 +1870,14 @@ export const useDataStore = defineStore('data', () => {
historyItemHolder: "trackingtrip", historyItemHolder: "trackingtrip",
}, },
projecttypes: { projecttypes: {
isArchivable: true,
label: "Projekttypen", label: "Projekttypen",
labelSingle: "Projekttyp", labelSingle: "Projekttyp",
redirect: true, redirect: true,
historyItemHolder: "projecttype" historyItemHolder: "projecttype"
}, },
checks: { checks: {
isArchivable: true,
label: "Überprüfungen", label: "Überprüfungen",
labelSingle: "Überprüfung", labelSingle: "Überprüfung",
isStandardEntity: true, isStandardEntity: true,