Fixed auth, NAV, projecttypes,numberranges,tenant,textemplates

This commit is contained in:
2025-09-07 19:26:46 +02:00
parent 34c5764472
commit 949b094490
7 changed files with 129 additions and 125 deletions

View File

@@ -1,11 +1,5 @@
<script setup>
const supabase = useSupabaseClient()
const dataStore = useDataStore()
const profileStore = useProfileStore()
const auth = useAuthStore()
const resources = {
customers: {
@@ -43,16 +37,19 @@ const resources = {
}
}
const numberRanges = ref(profileStore.ownTenant.numberRanges)
const numberRanges = ref(auth.activeTenantData.numberRanges)
const updateNumberRanges = async (range) => {
const {data,error} = await supabase
.from("tenants")
.update({numberRanges: numberRanges.value})
.eq('id',profileStore.currentTenant)
const res = await useNuxtApp().$api(`/api/tenant/numberrange/${range}`,{
method: "PUT",
body: {
numberRange: numberRanges.value[range]
}
})
console.log(res)
await profileStore.fetchOwnTenant()
}
@@ -60,7 +57,7 @@ const updateNumberRanges = async (range) => {
<template>
<UDashboardNavbar
title="Nummernkreise bearbeiten"
title="Nummernkreise bearbeiten"
>
</UDashboardNavbar>
@@ -74,7 +71,7 @@ const updateNumberRanges = async (range) => {
</UDashboardToolbar>
<table
class="m-3"
class="m-3"
>
<tr class="text-left">
<th>Typ</th>
@@ -83,19 +80,19 @@ const updateNumberRanges = async (range) => {
<th>Suffix</th>
</tr>
<tr
v-for="key in Object.keys(resources)"
v-for="key in Object.keys(resources)"
>
<td>{{resources[key].label}}</td>
<td>
<UInput
v-model="numberRanges[key].prefix"
@change="updateNumberRanges"
v-model="numberRanges[key].prefix"
@change="updateNumberRanges(key)"
/>
</td>
<td>
<UInput
v-model="numberRanges[key].nextNumber"
@change="updateNumberRanges"
@change="updateNumberRanges(key)"
type="number"
step="1"
/>
@@ -103,7 +100,7 @@ const updateNumberRanges = async (range) => {
<td>
<UInput
v-model="numberRanges[key].suffix"
@change="updateNumberRanges"
@change="updateNumberRanges(key)"
/>
</td>
</tr>
@@ -112,4 +109,4 @@ const updateNumberRanges = async (range) => {
<style scoped>
</style>
</style>

View File

@@ -1,8 +1,6 @@
<script setup>
const dataStore = useDataStore()
const profileStore = useProfileStore()
const supabase = useSupabaseClient()
const auth = useAuthStore()
const itemInfo = ref({
features: {},
@@ -11,20 +9,21 @@ const itemInfo = ref({
})
const setupPage = async () => {
itemInfo.value = (await supabase.from("tenants").select().eq("id",profileStore.currentTenant).single()).data
itemInfo.value = auth.activeTenantData
console.log(itemInfo.value)
}
const features = ref(profileStore.ownTenant.features)
const businessInfo = ref(profileStore.ownTenant.businessInfo)
const features = ref(auth.activeTenantData.features)
const businessInfo = ref(auth.activeTenantData.businessInfo)
const updateTenant = async (newData) => {
const {data,error} = await supabase.from("tenants")
.update(newData)
.eq("id",profileStore.currentTenant)
.select()
if (error) console.log(error)
const res = await useNuxtApp().$api(`/api/tenant/other/${auth.activeTenant}`, {
method: "PUT",
body: {
data: newData,
}
})
}
setupPage()
@@ -36,7 +35,7 @@ setupPage()
</UDashboardNavbar>
<UTabs
class="p-5"
:items="[
:items="[
{
label: 'Dokubox'
},{
@@ -167,4 +166,4 @@ setupPage()
<style scoped>
</style>
</style>

View File

@@ -1,41 +1,43 @@
<script setup>
const dataStore = useDataStore()
const dataStore = useDataStore()
defineShortcuts({
'+': () => {
editTemplateModalOpen.value = true
}
})
const editTemplateModalOpen = ref(false)
const itemInfo = ref({})
const texttemplates = ref([])
const setup = async () => {
texttemplates.value = (await useSupabaseSelect("texttemplates")).filter(i => !i.archived)
defineShortcuts({
'+': () => {
editTemplateModalOpen.value = true
}
})
setup()
const editTemplateModalOpen = ref(false)
const itemInfo = ref({})
const texttemplates = ref([])
const loading = ref(true)
const expand = ref({
openedRows: [],
row: {}
})
const setup = async () => {
texttemplates.value = (await useEntities("texttemplates").select()).filter(i => !i.archived)
loading.value = false
}
setup()
const expand = ref({
openedRows: [],
row: {}
})
</script>
<template>
<UDashboardNavbar
title="Text Vorlagen"
title="Text Vorlagen"
>
<template #right>
<UButton
<template #right>
<UButton
@click="editTemplateModalOpen = true, itemInfo = {}"
>
+ Erstellen
</UButton>
</template>
>
+ Erstellen
</UButton>
</template>
</UDashboardNavbar>
<UDashboardPanelContent>
<UCard class="mx-5">
@@ -77,9 +79,11 @@
<UTable
class="mt-3"
:rows="texttemplates"
v-model:expand="expand"
:columns="[{key:'name',label:'Name'},{key:'documentType',label:'Dokumententyp'},{key:'default',label:'Standard'},{key:'pos',label:'Position'}]"
:rows="texttemplates"
:loading-state="{ icon: 'i-heroicons-arrow-path-20-solid', label: 'Loading...' }"
:loading="loading"
v-model:expand="expand" :empty-state="{ icon: 'i-heroicons-circle-stack-20-solid', label: 'Keine Textvorlagen anzuzeigen' }"
:columns="[{key:'name',label:'Name'},{key:'documentType',label:'Dokumententyp'},{key:'default',label:'Standard'},{key:'pos',label:'Position'}]"
>
<template #documentType-data="{row}">
{{dataStore.documentTypesForCreation[row.documentType].label}}
@@ -121,26 +125,26 @@
</UTable>
<!-- <div class="w-3/4 mx-auto mt-5">
<UCard
v-for="template in dataStore.texttemplates"
class="mb-3"
>
<p class="text-2xl">{{dataStore.documentTypesForCreation[template.documentType].label}}</p>
<p class="text-xl">{{template.pos === 'startText' ? 'Einleitung' : 'Ende'}}</p>
<p class="text-justify">{{template.text}}</p>
<UButton
@click="itemInfo = template;
editTemplateModalOpen = true"
icon="i-heroicons-pencil-solid"
variant="outline"
/>
</UCard>
</div>-->
<!-- <div class="w-3/4 mx-auto mt-5">
<UCard
v-for="template in dataStore.texttemplates"
class="mb-3"
>
<p class="text-2xl">{{dataStore.documentTypesForCreation[template.documentType].label}}</p>
<p class="text-xl">{{template.pos === 'startText' ? 'Einleitung' : 'Ende'}}</p>
<p class="text-justify">{{template.text}}</p>
<UButton
@click="itemInfo = template;
editTemplateModalOpen = true"
icon="i-heroicons-pencil-solid"
variant="outline"
/>
</UCard>
</div>-->
</UDashboardPanelContent>
<UModal
v-model="editTemplateModalOpen"
v-model="editTemplateModalOpen"
>
<UCard class="h-full">
<template #header>
@@ -157,51 +161,51 @@
/>
</UFormGroup>
<UFormGroup
label="Dokumententyp:"
label="Dokumententyp:"
>
<USelectMenu
:options="Object.keys(dataStore.documentTypesForCreation).filter(i => i !== 'serialInvoices').map(i => {
:options="Object.keys(dataStore.documentTypesForCreation).filter(i => i !== 'serialInvoices').map(i => {
return {
label: dataStore.documentTypesForCreation[i].label,
key: i
}
})"
option-attribute="label"
value-attribute="key"
v-model="itemInfo.documentType"
option-attribute="label"
value-attribute="key"
v-model="itemInfo.documentType"
/>
</UFormGroup>
<UFormGroup
label="Position:"
label="Position:"
>
<USelectMenu
:options="[{label:'Einleitung',key: 'startText'},{label:'Ende',key: 'endText'}]"
option-attribute="label"
value-attribute="key"
v-model="itemInfo.pos"
:options="[{label:'Einleitung',key: 'startText'},{label:'Ende',key: 'endText'}]"
option-attribute="label"
value-attribute="key"
v-model="itemInfo.pos"
/>
</UFormGroup>
<UFormGroup
label="Text:"
label="Text:"
>
<UTextarea
v-model="itemInfo.text"
v-model="itemInfo.text"
/>
</UFormGroup>
</UForm>
<!-- TODO: Update und Create -->
<template #footer>
<UButton
@click="dataStore.createNewItem('texttemplates',itemInfo);
@click="dataStore.createNewItem('texttemplates',itemInfo);
editTemplateModalOpen = false"
v-if="!itemInfo.id"
v-if="!itemInfo.id"
>Erstellen</UButton>
<UButton
@click="dataStore.updateItem('texttemplates',itemInfo);
@click="dataStore.updateItem('texttemplates',itemInfo);
editTemplateModalOpen = false"
v-if="itemInfo.id"
v-if="itemInfo.id"
>Speichern</UButton>
</template>
</UCard>