From cd36514e1cf45f9d84e95f0906caa5a6fabdf716 Mon Sep 17 00:00:00 2001 From: flfeders Date: Thu, 14 Dec 2023 20:58:52 +0100 Subject: [PATCH] Added DayJS Restructured Products Some Changes in Documents Some Changes with Logo --- spaces/app.vue | 40 ++--- spaces/package.json | 1 + spaces/pages/documents.vue | 45 ++++- spaces/pages/planningBoard.vue | 5 +- spaces/pages/products.vue | 209 --------------------- spaces/pages/products/[mode]/[[id]].vue | 229 ++++++++++++++++++++++++ spaces/pages/products/index.vue | 92 ++++++++++ spaces/pages/projects/[id].vue | 18 +- spaces/pages/projects/index.vue | 8 +- spaces/stores/data.ts | 27 ++- 10 files changed, 426 insertions(+), 248 deletions(-) delete mode 100644 spaces/pages/products.vue create mode 100644 spaces/pages/products/[mode]/[[id]].vue create mode 100644 spaces/pages/products/index.vue diff --git a/spaces/app.vue b/spaces/app.vue index 1fdef18..0a997cd 100644 --- a/spaces/app.vue +++ b/spaces/app.vue @@ -3,7 +3,7 @@ const user = useSupabaseUser() -console.log(user) +//console.log(user.value) const router = useRouter() const route = useRoute() const colorMode = useColorMode() @@ -11,9 +11,14 @@ const supabase = useSupabaseClient() const tenants = (await supabase.from("tenants").select()).data const {loaded, profiles} = storeToRefs(useDataStore()) const {fetchData, getProfileById} = useDataStore() -const userProfile = user.value ? getProfileById(user.value.id) : {} +const userProfile = (user.value ? getProfileById(user.value.id) : {}) +//console.log(userProfile) +const viewport = useViewport() +watch(viewport.breakpoint, (newBreakpoint, oldBreakpoint) => { + console.log('Breakpoint updated:', oldBreakpoint, '->', newBreakpoint) +}) fetchData() @@ -110,26 +115,7 @@ generateLinks() const userTenant = ref({}) if(user) userTenant.value = tenants.find(tenant => tenant.id === user.value.app_metadata.tenant) -const userDropdownItems = [ - [ - { - label: user.value ? user.value.email : "Profil", - },/*{ - label: user ? userTenant.value.name : "", - - }*/ - ], - [ - { - label: "Logout", - click: () => { - - router.push("/login") - } - } - ] -] useHead({ @@ -182,8 +168,16 @@ const items = [ diff --git a/spaces/package.json b/spaces/package.json index acdacd8..a49e309 100644 --- a/spaces/package.json +++ b/spaces/package.json @@ -36,6 +36,7 @@ "@zip.js/zip.js": "^2.7.32", "axios": "^1.6.2", "buffer": "^6.0.3", + "dayjs": "^1.11.10", "jsprintmanager": "^6.0.3", "nuxt-editorjs": "^1.0.4", "nuxt-viewport": "^2.0.6", diff --git a/spaces/pages/documents.vue b/spaces/pages/documents.vue index 7d44a69..28af8a5 100644 --- a/spaces/pages/documents.vue +++ b/spaces/pages/documents.vue @@ -74,14 +74,14 @@ fullscreen > - {{selectedDocument}} - + /> {{tag}} @@ -98,6 +98,17 @@ /> + + + + @@ -169,8 +180,12 @@ definePageMeta({ }) const supabase = useSupabaseClient() const user = useSupabaseUser() +const toast = useToast() const {documents} = storeToRefs(useDataStore()) +const {fetchDocuments} = useDataStore() + +fetchDocuments() const tabOpen = ref(0) const uploadModalOpen = ref(false) @@ -183,7 +198,7 @@ const fileUploadFormData = ref({ const selectedDocuments = ref([]) -let tags = ["Eingangsrechnung","Ausgangrechnung","Mahnung", "Dokument"] +let tags = ["Eingangsrechnung","Ausgangrechnung","Mahnung", "Dokument", "E-Mail Anhang"] const folders = [ { label: "Eingang", @@ -237,7 +252,29 @@ const uploadFile = async () => { uploadModalOpen.value = false; } +const updateDocument = async () => { + console.log(selectedDocument.value) + let objData = selectedDocument.value + delete objData.url + + const {data,error} = await supabase + .from("documents") + .update(objData) + .eq('id',objData.id) + .select() + console.log(data) + + if(error) { + console.log(error) + } else { + toast.add({title: "Dokument aktualisiert"}) + selectedDocument.value = data[0] + showDocumentModal.value = false + fetchDocuments() + } + +} const changeFolder = async () => { console.log("Change Folder") diff --git a/spaces/pages/planningBoard.vue b/spaces/pages/planningBoard.vue index 63025aa..488379d 100644 --- a/spaces/pages/planningBoard.vue +++ b/spaces/pages/planningBoard.vue @@ -1,6 +1,5 @@ - - \ No newline at end of file diff --git a/spaces/pages/products/[mode]/[[id]].vue b/spaces/pages/products/[mode]/[[id]].vue new file mode 100644 index 0000000..4f3d9df --- /dev/null +++ b/spaces/pages/products/[mode]/[[id]].vue @@ -0,0 +1,229 @@ + + + + + \ No newline at end of file diff --git a/spaces/pages/products/index.vue b/spaces/pages/products/index.vue new file mode 100644 index 0000000..c827f43 --- /dev/null +++ b/spaces/pages/products/index.vue @@ -0,0 +1,92 @@ + + + + + \ No newline at end of file diff --git a/spaces/pages/projects/[id].vue b/spaces/pages/projects/[id].vue index 83074c0..1218bfe 100644 --- a/spaces/pages/projects/[id].vue +++ b/spaces/pages/projects/[id].vue @@ -3,11 +3,13 @@ definePageMeta({ middleware: "auth" }) +import * as dayjs from 'dayjs' + const supabase = useSupabaseClient() const route = useRoute() const {getProjectById, getFormSubmitsWithLabelProp, getTimesByProjectId} = useDataStore() -const {forms, formSubmits, times} = storeToRefs(useDataStore()) +const {forms, formSubmits, times, profiles} = storeToRefs(useDataStore()) const currentProject = getProjectById(Number(route.params.id)) @@ -252,7 +254,19 @@ const phaseInfo = ref({ + > + + + + + +

Hier wird aktuell noch gearbeitet

diff --git a/spaces/pages/projects/index.vue b/spaces/pages/projects/index.vue index 3eaafe2..06398af 100644 --- a/spaces/pages/projects/index.vue +++ b/spaces/pages/projects/index.vue @@ -49,7 +49,13 @@ :columns="projectColumns" @select="selectProject" - /> + > + + + + diff --git a/spaces/stores/data.ts b/spaces/stores/data.ts index df8a2e4..9d1bad0 100644 --- a/spaces/stores/data.ts +++ b/spaces/stores/data.ts @@ -38,20 +38,23 @@ export const useDataStore = defineStore('data', { await this.fetchOwnTenant() await this.fetchProfiles() await this.fetchEvents() - await this.fetchCustomers() await this.fetchTasks() + await this.fetchProjects() + await this.fetchTimes() + await this.fetchJobs() + this.loaded = true + + + await this.fetchCustomers() await this.fetchForms() await this.fetchFormSubmits() await this.fetchProducts() await this.fetchUnits() - await this.fetchProjects() - await this.fetchDocuments() + //await this.fetchDocuments() await this.fetchMovements() - await this.fetchTimes() - await this.fetchJobs() await this.fetchSpaces() await this.fetchVehicles() - this.loaded = true + }, async fetchOwnTenant() { //TODO: Tenant ID Dynamisch machen @@ -84,7 +87,7 @@ export const useDataStore = defineStore('data', { }, async fetchProducts() { // @ts-ignore - this.products = (await supabase.from("products").select()).data + this.products = (await supabase.from("products").select().order('id',{ascending: true})).data }, async fetchUnits() { // @ts-ignore @@ -128,6 +131,16 @@ export const useDataStore = defineStore('data', { getProfileById: (state) => (userUid:string) => state.profiles.find(profile => profile.id === userUid), getOpenTasksCount: (state) => state.tasks.filter(task => task.categorie != "Erledigt").length, movementsBySpace: (state) => (spaceId:number) => state.movements.filter(move => move.spaceId === spaceId), + getStockByProductId: (state) => (productId:number) => { + let movements = state.movements.filter((movement:any) => movement.productId === productId) + + let count = 0 + + movements.forEach(movement => count += movement.quantity) + + return count + + }, getProductById: (state) => (productId:number) => state.products.find(product => product.id === productId), getProjectById: (state) => (projectId:number) => { let project = state.projects.find(project => project.id === projectId)