Many Changes for 1.0

This commit is contained in:
2024-02-04 20:21:09 +01:00
parent bd09d07698
commit fa661ff6b3
17 changed files with 1220 additions and 88 deletions

View File

@@ -155,6 +155,66 @@ export const useDataStore = defineStore('data', () => {
const chats = ref([])
const messages = ref([])
const createddocuments = ref([])
const workingtimes = ref([])
const rights = ref({
createUser: {label: "Benutzer erstellen"},
modifyUser: {label: "Benutzer bearbeiten"},
deactivateUser: {label: "Benutzer sperren"},
createProject: {label: "Projekt erstellen"},
viewOwnProjects: {label: "Eigene Projekte sehen"},
viewAllProjects: {label: "Alle Projekte sehen"},
createTask: {label: "Aufgabe erstellen"},
viewOwnTasks: {label:"Eigene Aufgaben sehen"},
viewAllTasks: {label: "Alle Aufgaben sehen"},
trackOwnTime: {label:"Eigene Zeite erfassen"},
createOwnTime: {label:"Eigene Zeiten erstellen"},
createTime: {label:"Zeiten erstellen"},
viewOwnTimes: {label:"Eigene Zeiten anzeigen"},
viewTimes: {label:"Zeiten anzeigen"},
})
const roles = ref([
{
key: "tenantAdmin",
label: "Firmenadministrator",
rights: [
...Object.keys(rights.value)
]
},
{
key:"worker",
label: "Monteur",
rights: [
"viewOwnProjects",
"createTasks",
"viewOwnTasks",
"viewOwnTimes",
"createOwnTime"
]
},
{
key:"manager",
label: "Vorarbeiter",
rights: [
"createProjects",
"viewOwnProjects",
"createTasks",
"viewOwnTasks",
]
},
{
key:"booker",
label: "Buchhalter",
rights: [
"createTasks",
"viewOwnTasks",
"createTime",
"viewAllTimes"
]
}
])
async function initializeData () {
await fetchProfiles()
@@ -175,7 +235,6 @@ export const useDataStore = defineStore('data', () => {
async function fetchData () {
await fetchProfiles()
await fetchDocuments()
await fetchOwnTenant()
await fetchEvents()
@@ -207,6 +266,7 @@ export const useDataStore = defineStore('data', () => {
await fetchChats()
await fetchMessages()
await fetchCreatedDocuments()
await fetchWorkingTimes()
loaded.value = true
}
@@ -245,8 +305,20 @@ export const useDataStore = defineStore('data', () => {
chats.value = []
messages.value = []
createddocuments.value = []
workingtimes.value = []
}
function hasRight (right) {
const role = profiles.value.find(i => i.id === user.value.id).role
const grantedRights = roles.value.find(i => i.key === role).rights
if(grantedRights.includes(right)){
return true
} else return false
}
//Realtime Update
const channelA = supabase
.channel('schema-db-changes')
@@ -476,6 +548,10 @@ export const useDataStore = defineStore('data', () => {
createddocuments.value = (await supabase.from("createddocuments").select().eq('tenant', currentTenant.value).order('created_at', {ascending:true})).data
}
async function fetchWorkingTimes() {
workingtimes.value = (await supabase.from("workingtimes").select().eq('tenant', currentTenant.value).order('created_at', {ascending:true})).data
}
async function fetchDocuments () {
let tempDocuments = (await supabase.from("documents").select().eq('tenant', currentTenant.value)).data
@@ -844,7 +920,7 @@ export const useDataStore = defineStore('data', () => {
initializeData,
changeTenant,
uploadFiles,
hasRight,
//Data
profiles,
@@ -878,6 +954,7 @@ export const useDataStore = defineStore('data', () => {
chats,
messages,
createddocuments,
workingtimes,
documentTypesForCreation,
//Functions
createNewItem,