Skip to content

Commit

Permalink
Merge pull request #114 from ConductionNL/feature/PC108-108/add-conta…
Browse files Browse the repository at this point in the history
…ctmoment-to-taak

feature/PC108-108/add-contactmoment-to-taak
  • Loading branch information
remko48 authored Dec 18, 2024
2 parents f67e5ee + 1c64cbf commit 6436d3b
Show file tree
Hide file tree
Showing 8 changed files with 205 additions and 308 deletions.
8 changes: 4 additions & 4 deletions css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@
}

.detailGrid {
display: grid;
grid-template-columns: 1fr 1fr;
display: grid;
grid-template-columns: 1fr 1fr;
}

/* Modals */
.form-group > * {
.form-group > * {
margin-block-end: 10px;
}

Expand All @@ -103,4 +103,4 @@
.modalContent {
margin: var(--zaa-margin-50);
text-align: center;
}
}
1 change: 1 addition & 0 deletions src/entities/taak/taak.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export const mockTaakData = (): TTaak[] => [
actie: 'Voorbereiden van auditchecklist, uitvoeren van audits, rapporteren van bevindingen, aanbevelen van verbeteringen.',
klant: 'urn:uuid:6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b',
medewerker: 'urn:uuid:6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b',
contactmoment: 'urn:uuid:6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b',
},
]

Expand Down
3 changes: 3 additions & 0 deletions src/entities/taak/taak.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export class Taak implements TTaak {
public toelichting: string
public actie: string
public klant: string
public contactmoment: string
public medewerker: string
constructor(source: TTaak) {
this.id = source.id || ''
Expand All @@ -27,6 +28,7 @@ export class Taak implements TTaak {
this.actie = source.actie || ''
this.klant = source.klant || ''
this.medewerker = source.medewerker || ''
this.contactmoment = source.contactmoment || ''
}

public validate(): SafeParseReturnType<TTaak, unknown> {
Expand All @@ -42,6 +44,7 @@ export class Taak implements TTaak {
actie: z.string(),
klant: z.string(),
medewerker: z.string(),
contactmoment: z.string().nullable(),
})

return schema.safeParse(this)
Expand Down
5 changes: 3 additions & 2 deletions src/entities/taak/taak.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export type TTaak = {
onderwerp: string;
toelichting: string;
actie: string;
klant: string
medewerker: string
klant: string;
medewerker: string;
contactmoment: string;
}
90 changes: 61 additions & 29 deletions src/modals/contactMomenten/ContactMomentenForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,9 @@ import { contactMomentStore, navigationStore, taakStore, zaakStore } from '../..
:bold="false"
:disabled="loading"
:loading="fetchLoading"
:force-display-actions="true">
:active="contactMomenten[i].selectedKlantContactMoment === klantContactmoment.id"
:force-display-actions="true"
@click="setSelectedContactMoment(i, klantContactmoment.id)">
<template #icon>
<BriefcaseAccountOutline :size="44" />
</template>
Expand Down Expand Up @@ -364,6 +366,7 @@ import { contactMomentStore, navigationStore, taakStore, zaakStore } from '../..
:bold="false"
:details="klantContactmoment.startDate"
:disabled="loading"
:active="selectedKlantContactMoment === klantContactmoment.id"
:force-display-actions="true">
<template #icon>
<BriefcaseAccountOutline :size="44" />
Expand Down Expand Up @@ -506,6 +509,7 @@ import { contactMomentStore, navigationStore, taakStore, zaakStore } from '../..
Zaak starten
</NcActionButton>
<NcActionButton v-if="isView"
:close-after-click="true"
:disabled="contactMoment.status === 'gesloten'"
@click="closeContactMoment(contactMoment.id)">
<template #icon>
Expand Down Expand Up @@ -639,6 +643,7 @@ export default {
selectedZaak: null,
selectedTaak: null,
selectedProduct: null,
selectedKlantContactMoment: null,
},
klantenLoading: false,
zaken: [],
Expand All @@ -659,16 +664,17 @@ export default {
taken: [],
berichten: [],
klantContactmomenten: [],
addedTaken: [],
},
},
selectedContactMoment: 1,
auditTrails: [],
klant: null,
searchKlantModalOpen: false,
selectedZaak: null,
selectedKlantContactMoment: null,
selectedTaak: null,
selectedProduct: null,
selectedKlantContactMoment: null,
startingType: 'all',
taakFormOpen: false,
taakClientType: 'both',
Expand All @@ -677,6 +683,9 @@ export default {
viewContactMomentId: null,
isContactMomentFormOpen: false,
klantTaakHover: false,
zaakHover: false,
tabs: [1],
tabCounter: 1,
}
Expand Down Expand Up @@ -714,6 +723,11 @@ export default {
selectedTaak: null,
selectedProduct: null,
selectedKlantContactMoment: null,
zaken: [],
taken: [],
berichten: [],
klantContactmomenten: [],
addedTaken: [],
},
}
this.tabs.push(index)
Expand All @@ -734,6 +748,7 @@ export default {
}
this.selectedZaak = data.zaak
this.selectedKlantContactMoment = data.contactmoment
this.selectedTaak = data.taak
this.selectedProduct = data.product
Expand All @@ -753,7 +768,6 @@ export default {
this.$emit('close-modal')
},
// Contactmoment functions
addContactMoment(i) {
Expand All @@ -762,37 +776,46 @@ export default {
this.loading = true
const endpoint = this.contactMomentId ? `contactmomenten/${this.contactMomentId}` : 'contactmomenten'
const method = this.contactMomentId ? 'PUT' : 'POST'
const contactMomentCopy = _.cloneDeep(this.contactMoment)
delete contactMomentCopy.taken
delete contactMomentCopy.zaken
delete contactMomentCopy.berichten
delete contactMomentCopy.klantContactmomenten
delete contactMomentCopy.auditTrails
fetch(
`/index.php/apps/zaakafhandelapp/api/${endpoint}`,
{
method,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
...contactMomentCopy,
notitie: contactMomentCopy.notitie,
klant: contactMomentCopy.klant?.id ?? '',
zaak: contactMomentCopy.selectedZaak ?? '',
taak: contactMomentCopy.selectedTaak ?? '',
product: contactMomentCopy.selectedProduct ?? '',
status: contactMomentCopy.status === 'gesloten' ? 'gesloten' : 'open',
startDate: contactMomentCopy.startDate ?? new Date().toISOString(),
}),
},
)
delete contactMomentCopy.addedTaken
contactMomentStore.saveContactMoment({
...contactMomentCopy,
notitie: contactMomentCopy.notitie,
klant: contactMomentCopy.klant?.id ?? '',
zaak: contactMomentCopy.selectedZaak ?? '',
taak: contactMomentCopy.selectedTaak ?? '',
product: contactMomentCopy.selectedProduct ?? '',
contactmoment: contactMomentCopy.selectedKlantContactMoment,
status: contactMomentCopy.status === 'gesloten' ? 'gesloten' : 'open',
startDate: contactMomentCopy.startDate ?? new Date().toISOString(),
})
.then((response) => {
this.contactMoment.addedTaken.forEach(taak => {
fetch(`/index.php/apps/zaakafhandelapp/api/taken/${taak}`, {
method: 'GET',
})
.then(response => response.json())
.then(data => {
fetch(`/index.php/apps/zaakafhandelapp/api/taken/${data.id}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
...data,
contactmoment: response.data.id,
}),
})
})
})
if (this.isView) {
response.json().then(data => {
this.contactMoment = data
Expand Down Expand Up @@ -835,6 +858,7 @@ export default {
.catch((err) => {
console.error(err)
})
},
// Search functions
Expand All @@ -854,9 +878,12 @@ export default {
taakStore.setTaakItem(null)
},
closeTaakForm() {
closeTaakForm(e) {
if (e) {
this.contactMomenten[this.selectedContactMoment].addedTaken.push(e)
this.contactMomenten[this.selectedContactMoment].klant?.id && this.fetchKlantData(this.contactMomenten[this.selectedContactMoment].klant.id)
}
this.taakFormOpen = false
this.fetchKlantData(this.contactMomenten[this.selectedContactMoment].klant.id)
},
viewContactMoment(id) {
Expand All @@ -868,7 +895,7 @@ export default {
closeViewContactMomentModal() {
this.isContactMomentFormOpen = false
navigationStore.setViewModal(null)
navigationStore.setViewModal(false)
},
removeKlant(i) {
Expand Down Expand Up @@ -1038,6 +1065,11 @@ export default {
},
// Tabs
setSelectedContactMoment(id, contactMoment) {
if (this.contactMomenten[id].selectedKlantContactMoment === contactMoment) {
this.contactMomenten[id].selectedKlantContactMoment = null
} else { this.contactMomenten[id].selectedKlantContactMoment = contactMoment }
},
setSelectedZaak(id, zaak) {
if (this.contactMomenten[id].selectedZaak === zaak) {
this.contactMomenten[id].selectedZaak = null
Expand Down
Loading

0 comments on commit 6436d3b

Please sign in to comment.