Connect CalDAV todos to DB-Items, finish todo component and add it to pipeline items
This commit is contained in:
@@ -30,6 +30,7 @@ import { Kbd, KbdGroup } from '@/components/ui/kbd'
|
||||
import DialogClose from "../ui/dialog/DialogClose.vue"
|
||||
import DialogCloseButton from "../DialogCloseButton/DialogCloseButton.vue"
|
||||
import SendMailDialog from "../ui/send-mail-dialog/SendMailDialog.vue"
|
||||
import TextEditor from "../TextEditor.vue"
|
||||
|
||||
const DEBUG = ref(false)
|
||||
|
||||
@@ -86,8 +87,8 @@ onMounted(async () => {
|
||||
|
||||
// Process each response
|
||||
customers.value = responses[0].data
|
||||
paymentTerms.value = responses[0].data
|
||||
units.value = responses[0].data
|
||||
paymentTerms.value = responses[1].data
|
||||
units.value = responses[2].data
|
||||
|
||||
} catch (error) {
|
||||
toast.error('Fehler beim Laden der Daten', error || String(error))
|
||||
@@ -161,7 +162,7 @@ watch(invoice,
|
||||
return;
|
||||
}
|
||||
|
||||
// If no billing data is store in the invoice, generat ot from customer
|
||||
// If no billing data is store in the invoice, generate ot from customer
|
||||
if (!newValue.billingData) {
|
||||
newValue.billingData = {
|
||||
companyName: newValue.customer?.companyName || "",
|
||||
@@ -176,7 +177,7 @@ watch(invoice,
|
||||
contactSalutation: newValue.customer?.contacts && newValue.customer.contacts.length > 0 ? newValue.customer.contacts[0].salutation : "",
|
||||
contactFirstName: newValue.customer?.contacts && newValue.customer.contacts.length > 0 ? newValue.customer.contacts[0].firstName : "",
|
||||
contactLastName: newValue.customer?.contacts && newValue.customer.contacts.length > 0 ? newValue.customer.contacts[0].lastName : "",
|
||||
paymentTerms: newValue.customer?.paymentTerms || paymentTermsData.value.length > 0 ? paymentTermsData.value[2] : null,
|
||||
paymentTerms: newValue.customer?.paymentTerms || paymentTerms.value.length > 0 ? paymentTerms.value[2] : null,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,6 +396,7 @@ const exportXml = function () {
|
||||
const issueInvoice = function () {
|
||||
if (!invoice.value) return;
|
||||
invoice.value.paymentStatus = 'issued'
|
||||
save()
|
||||
}
|
||||
|
||||
const deleteInvoice = function () {
|
||||
@@ -546,13 +548,12 @@ const handleFileUpload = async (event: Event) => {
|
||||
<DialogHeader class="p-4 md:p-6 lg:p-12 pb-0 md:pb-2 lg:pb-8 flex flex-row items-start gap-12">
|
||||
|
||||
<div class="flex flex-col grow">
|
||||
<DialogTitle class="text-primary-foreground font-bold text-left">
|
||||
<DialogTitle class="text-primary font-bold text-left">
|
||||
<h1>{{ title }}</h1>
|
||||
</DialogTitle>
|
||||
<DialogDescription>
|
||||
<Input v-if="invoice" v-model="invoice.title" :id="'invoice-title'"
|
||||
class="text-foreground md:text-base text-ellipsis px-0 bg-transparent dark:bg-transparent hover:bg-accent dark:hover:bg-accent/30 border-none shadow-none"
|
||||
type="text" placeholder="Titel" />
|
||||
<Input v-if="invoice" v-model="invoice.title" @update:model-value="isDirty = true"
|
||||
:id="'invoice-title'" class="" type="text" placeholder="Titel" />
|
||||
</DialogDescription>
|
||||
</div>
|
||||
|
||||
@@ -899,7 +900,10 @@ const handleFileUpload = async (event: Event) => {
|
||||
</div>
|
||||
|
||||
<div id="document-text" class="mt-6 md:mt-8 lg:mt-12">
|
||||
<GrowingTextarea v-model="invoice.text" placeholder="Anschreiben"
|
||||
<!-- <GrowingTextarea v-model="invoice.text" placeholder="Anschreiben"
|
||||
class="font-light bg-transparent dark:bg-transparent hover:bg-accent dark:hover:bg-accent/30 border-none shadow-none" /> -->
|
||||
<TextEditor v-model="invoice.text" placeholder="Anschreiben"
|
||||
@change:model-value="isDirty = true"
|
||||
class="font-light bg-transparent dark:bg-transparent hover:bg-accent dark:hover:bg-accent/30 border-none shadow-none" />
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user