diff --git a/appinfo/routes.php b/appinfo/routes.php index 6f46037..cf4db34 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -1,46 +1,46 @@ [ + 'resources' => [ // Conform https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/redoc-1.5.1 - 'zaken' => ['url' => 'api/zrc/zaken'], - 'resultaten' => ['url' => 'api/zrc/resultaten'], - 'rollen' => ['url' => 'api/zrc/rollen'], - 'statussen' => ['url' => 'api/zrc/statussen'], - 'zaakinformatieobjecten' => ['url' => 'api/zrc/zaakinformatieobjecten'], - 'zaakobjecten' => ['url' => 'api/zrc/zaakobjecten'], - 'zaakbesluiten' => ['url' => 'api/zrc/zaken/{zaak_uuid}/besluiten'], - 'zaakeigenschappen' => ['url' => 'api/zrc/zaken/{zaak_uuid}/eigenschappen'], - 'zaakaudittrail' => ['url' => 'api/zrc/zaken/{zaak_uuid}/audit_trail'], + 'zaken' => ['url' => 'api/zrc/zaken'], + 'resultaten' => ['url' => 'api/zrc/resultaten'], + 'rollen' => ['url' => 'api/zrc/rollen'], + 'statussen' => ['url' => 'api/zrc/statussen'], + 'zaakinformatieobjecten' => ['url' => 'api/zrc/zaakinformatieobjecten'], + 'zaakobjecten' => ['url' => 'api/zrc/zaakobjecten'], + 'zaakbesluiten' => ['url' => 'api/zrc/zaken/{zaak_uuid}/besluiten'], + 'zaakeigenschappen' => ['url' => 'api/zrc/zaken/{zaak_uuid}/eigenschappen'], + 'zaakaudittrail' => ['url' => 'api/zrc/zaken/{zaak_uuid}/audit_trail'], // Conform https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/redoc-1.3.1 - 'zaakTypen' => ['url' => 'api/ztc'], + 'zaakTypen' => ['url' => 'api/ztc'], // Conform https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/redoc-1.5.0 - 'documenten' => ['url' => 'api/drc'], + 'documenten' => ['url' => 'api/drc'], // Conform https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/redoc-1.0.2 - 'besluiten' => ['url' => 'api/brc'], + 'besluiten' => ['url' => 'api/brc'], // Conform ??? - 'zaakTypen' => ['url' => 'api/ztc/zaaktypen'], - // Conform ??? - 'taken' => ['url' => 'api/taken'], - 'klanten' => ['url' => 'api/klanten'], - 'berichten' => ['url' => 'api/berichten'], + 'zaakTypen' => ['url' => 'api/ztc/zaaktypen'], + // Conform ??? + 'taken' => ['url' => 'api/taken'], + 'klanten' => ['url' => 'api/klanten'], + 'berichten' => ['url' => 'api/berichten'], 'contactmomenten' => ['url' => 'api/contactmomenten'], 'medewerkers' => ['url' => 'api/medewerkers'], - - ], + + ], 'routes' => [ // Audit trail routes ['name' => 'zaken#getAuditTrail', 'url' => '/api/zaken/{id}/audit_trail', 'verb' => 'GET'], ['name' => 'klanten#getAuditTrail', 'url' => '/api/klanten/{id}/audit_trail', 'verb' => 'GET'], ['name' => 'berichten#getAuditTrail', 'url' => '/api/berichten/{id}/audit_trail', 'verb' => 'GET'], ['name' => 'taken#getAuditTrail', 'url' => '/api/taken/{id}/audit_trail', 'verb' => 'GET'], - + // Overige klant routes ['name' => 'klanten#getContactmomenten', 'url' => '/api/klanten/{id}/contactmomenten', 'verb' => 'GET'], ['name' => 'klanten#getTaken', 'url' => '/api/klanten/{id}/taken', 'verb' => 'GET'], ['name' => 'klanten#getBerichten', 'url' => '/api/klanten/{id}/berichten', 'verb' => 'GET'], - ['name' => 'klanten#getZaken', 'url' => '/api/klanten/{id}/zaken', 'verb' => 'GET'], - + ['name' => 'klanten#getZaken', 'url' => '/api/klanten/{id}/zaken', 'verb' => 'GET'], + // Page routes ['name' => 'dashboard#page', 'url' => '/', 'verb' => 'GET'], ['name' => 'configuration#index', 'url' => '/api/configuration', 'verb' => 'GET'], @@ -48,7 +48,7 @@ ['name' => 'zaken#page', 'url' => '/zaken', 'verb' => 'GET'], ['name' => 'rollen#page', 'url' => '/rollen', 'verb' => 'GET'], ['name' => 'statussen#page', 'url' => '/statussen', 'verb' => 'GET'], - ['name' => 'zaakinformatieobjecten#page', 'url' => '/zaakinformatieobjecten', 'verb' => 'GET'], + ['name' => 'zaakinformatieobjecten#page', 'url' => '/zaakinformatieobjecten', 'verb' => 'GET'], ['name' => 'zaakTypen#page','url' => '/zaak_typen', 'verb' => 'GET'], ['name' => 'taken#page','url' => '/taken', 'verb' => 'GET'], ['name' => 'klanten#page','url' => '/klanten', 'verb' => 'GET'], @@ -56,5 +56,7 @@ // user Settings ['name' => 'settings#index','url' => '/settings', 'verb' => 'GET'], ['name' => 'settings#create', 'url' => '/settings', 'verb' => 'POST'], + // User + ['name' => 'users#me', 'url' => '/me', 'verb' => 'GET'], ] ]; diff --git a/css/dashboardWidgets.css b/css/dashboardWidgets.css index 8e75b49..c68e871 100644 --- a/css/dashboardWidgets.css +++ b/css/dashboardWidgets.css @@ -1,9 +1,11 @@ +/* import icons css file */ +@import "../src/services/icons/icons.css"; + .icon-zaken-widget { - background-image: url("../img/app-dark.svg"); - filter: var(--background-invert-if-dark); - } - - body.theme--dark .icon-zaken-widget { - background-image: url("../img/app.svg"); - } - \ No newline at end of file + background-image: url("../img/app-dark.svg"); + filter: var(--background-invert-if-dark); +} + +body.theme--dark .icon-zaken-widget { + background-image: url("../img/app.svg"); +} diff --git a/lib/Controller/UsersController.php b/lib/Controller/UsersController.php new file mode 100644 index 0000000..79b99a7 --- /dev/null +++ b/lib/Controller/UsersController.php @@ -0,0 +1,76 @@ +userSession->getUser(); + + try { + $data = [ + 'user' => [ + 'id' => $currentUser->getUID(), + 'displayName' => $currentUser->getDisplayName(), + 'email' => $currentUser->getEMailAddress(), + 'systemEmail' => $currentUser->getSystemEMailAddress(), + 'primaryEmail' => $currentUser->getPrimaryEMailAddress(), + 'lastLogin' => $currentUser->getLastLogin(), + 'quota' => $currentUser->getQuota(), + 'home' => $currentUser->getHome(), + 'backendClassName' => $currentUser->getBackendClassName(), + 'avatarImage' => $currentUser->getAvatarImage(64), + 'cloudId' => $currentUser->getCloudId(), + 'isEnabled' => $currentUser->isEnabled(), + 'canChangeDisplayName' => $currentUser->canChangeDisplayName(), + 'canChangePassword' => $currentUser->canChangePassword(), + 'canChangeAvatar' => $currentUser->canChangeAvatar(), + 'managerUids' => $currentUser->getManagerUids(), + ], + 'medewerker' => 'placeholder-todo' + ]; + return new JSONResponse($data); + } catch (\Exception $e) { + return new JSONResponse(['error' => $e->getMessage()], 500); + } + } +} diff --git a/lib/Controller/ZaakTypenController.php b/lib/Controller/ZaakTypenController.php index 41451f2..ffed1e1 100644 --- a/lib/Controller/ZaakTypenController.php +++ b/lib/Controller/ZaakTypenController.php @@ -96,9 +96,11 @@ public function update(string $id): JSONResponse // Remove the 'id' field if it exists, as we're creating a new object unset($data['id']); + $data['id'] = $id; + // Save the new catalog object $object = $this->objectService->saveObject('zaaktypen', $data); - + // Return the created object as a JSON response return new JSONResponse($object); } diff --git a/package-lock.json b/package-lock.json index 91c1b3d..7ac9a80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15265,8 +15265,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.debounce": { "version": "4.0.8", diff --git a/src/entities/medewerkers/medewerkers.mock.ts b/src/entities/medewerkers/medewerkers.mock.ts index 5fd76c5..6c45360 100644 --- a/src/entities/medewerkers/medewerkers.mock.ts +++ b/src/entities/medewerkers/medewerkers.mock.ts @@ -8,6 +8,7 @@ export const mockMedewerkerData = (): TMedewerker[] => [ tussenvoegsel: 'de', achternaam: 'Doe', email: 'john.doe@example.com', + telefoonnummer: '0612345678', }, ] diff --git a/src/entities/medewerkers/medewerkers.ts b/src/entities/medewerkers/medewerkers.ts index 0f5eb9f..302c6aa 100644 --- a/src/entities/medewerkers/medewerkers.ts +++ b/src/entities/medewerkers/medewerkers.ts @@ -8,6 +8,7 @@ export class Medewerker implements TMedewerker { public tussenvoegsel: string public achternaam: string public email: string + public telefoonnummer: string constructor(source: TMedewerker) { this.id = source.id || '' @@ -15,7 +16,7 @@ export class Medewerker implements TMedewerker { this.tussenvoegsel = source.tussenvoegsel || '' this.achternaam = source.achternaam || '' this.email = source.email || '' - + this.telefoonnummer = source.telefoonnummer || '' } public validate(): SafeParseReturnType { @@ -25,6 +26,7 @@ export class Medewerker implements TMedewerker { tussenvoegsel: z.string(), achternaam: z.string(), email: z.string().email(), + telefoonnummer: z.string().min(1), }) return schema.safeParse(this) diff --git a/src/entities/medewerkers/medewerkers.types.ts b/src/entities/medewerkers/medewerkers.types.ts index 7a50331..3face2b 100644 --- a/src/entities/medewerkers/medewerkers.types.ts +++ b/src/entities/medewerkers/medewerkers.types.ts @@ -4,4 +4,5 @@ export type TMedewerker = { tussenvoegsel: string; achternaam: string; email: string; + telefoonnummer: string; } diff --git a/src/entities/rol/rol.types.ts b/src/entities/rol/rol.types.ts index e0fbff9..c1b7920 100644 --- a/src/entities/rol/rol.types.ts +++ b/src/entities/rol/rol.types.ts @@ -4,7 +4,7 @@ export type TRol = { omschrijving: string; omschrijvingGeneriek: string; url: string; - zaak: string; + zaak: string; // zaak id betrokkene: string; betrokkeneType: string; afwijkendeNaamBetrokkene: string; diff --git a/src/entities/taak/taak.mock.ts b/src/entities/taak/taak.mock.ts index 979f181..c938903 100644 --- a/src/entities/taak/taak.mock.ts +++ b/src/entities/taak/taak.mock.ts @@ -13,6 +13,7 @@ export const mockTaakData = (): TTaak[] => [ toelichting: 'Deze taak omvat het uitvoeren van een gedetailleerde interne audit van de bedrijfsprocessen om te controleren of alle afdelingen voldoen aan de vastgestelde kwaliteitsnormen. De bevindingen worden gedocumenteerd en er worden aanbevelingen gedaan voor verbeteringen.', 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', }, ] diff --git a/src/entities/taak/taak.ts b/src/entities/taak/taak.ts index 8f75c80..9e34c14 100644 --- a/src/entities/taak/taak.ts +++ b/src/entities/taak/taak.ts @@ -14,7 +14,7 @@ export class Taak implements TTaak { public toelichting: string public actie: string public klant: string - + public medewerker: string constructor(source: TTaak) { this.id = source.id || '' this.title = source.title || '' @@ -26,6 +26,7 @@ export class Taak implements TTaak { this.toelichting = source.toelichting || '' this.actie = source.actie || '' this.klant = source.klant || '' + this.medewerker = source.medewerker || '' } public validate(): SafeParseReturnType { @@ -40,6 +41,7 @@ export class Taak implements TTaak { toelichting: z.string(), actie: z.string(), klant: z.string(), + medewerker: z.string(), }) return schema.safeParse(this) diff --git a/src/entities/taak/taak.types.ts b/src/entities/taak/taak.types.ts index 141bd6f..f1dc534 100644 --- a/src/entities/taak/taak.types.ts +++ b/src/entities/taak/taak.types.ts @@ -10,5 +10,6 @@ export type TTaak = { onderwerp: string; toelichting: string; actie: string; - klant: string; + klant: string + medewerker: string } diff --git a/src/entities/zaak/zaak.mock.ts b/src/entities/zaak/zaak.mock.ts index 8e5197d..9f21229 100644 --- a/src/entities/zaak/zaak.mock.ts +++ b/src/entities/zaak/zaak.mock.ts @@ -26,6 +26,7 @@ export const mockZaakData = (): TZaak[] => [ selectielijstklasse: 'http://example.com', hoofdzaak: 'http://example.com', klant: '15551d6f-44e3-43f3-a9d2-59e583c91eb0', + berichten: [], }, ] diff --git a/src/entities/zaak/zaak.ts b/src/entities/zaak/zaak.ts index 57a1515..9bb02e5 100644 --- a/src/entities/zaak/zaak.ts +++ b/src/entities/zaak/zaak.ts @@ -26,6 +26,7 @@ export class Zaak implements TZaak { public selectielijstklasse: string public hoofdzaak: string public klant: string + public berichten: string[] constructor(source: TZaak) { this.id = source.id || '' @@ -51,6 +52,7 @@ export class Zaak implements TZaak { this.selectielijstklasse = source.selectielijstklasse || '' this.hoofdzaak = source.hoofdzaak || '' this.klant = source.klant || '' + this.berichten = source.berichten || [] } public validate(): SafeParseReturnType { @@ -78,6 +80,7 @@ export class Zaak implements TZaak { selectielijstklasse: z.string(), hoofdzaak: z.string(), klant: z.string(), + berichten: z.array(z.string()), }) return schema.safeParse(this) diff --git a/src/entities/zaak/zaak.types.ts b/src/entities/zaak/zaak.types.ts index 791fd4a..98e27f3 100644 --- a/src/entities/zaak/zaak.types.ts +++ b/src/entities/zaak/zaak.types.ts @@ -24,4 +24,5 @@ export type TZaak = { selectielijstklasse: string; hoofdzaak: string; klant: string; + berichten: string[]; } diff --git a/src/entities/zaakTypen/zaakTypen.mock.ts b/src/entities/zaakTypen/zaakTypen.mock.ts index 8d19021..fc804dc 100644 --- a/src/entities/zaakTypen/zaakTypen.mock.ts +++ b/src/entities/zaakTypen/zaakTypen.mock.ts @@ -4,8 +4,33 @@ import { TZaakType } from './zaakTypen.types' export const mockZaakTypeData = (): TZaakType[] => [ { id: '15551d6f-44e3-43f3-a9d2-59e583c91eb0', - name: 'Zaak 3', - summary: 'fsdfshgfhgf', + identificatie: 'Zaak 3', + omschrijving: 'fsdfshgfhgf', + omschrijvingGeneriek: 'fsdfshgfhgf', + vertrouwelijkheidaanduiding: 'fsdfshgfhgf', + doel: 'fsdfshgfhgf', + aanleiding: 'fsdfshgfhgf', + toelichting: 'fsdfshgfhgf', + indicatieInternOfExtern: 'fsdfshgfhgf', + handelingInitiator: 'fsdfshgfhgf', + onderwerp: 'fsdfshgfhgf', + handelingBehandelaar: 'fsdfshgfhgf', + doorlooptijd: 'fsdfshgfhgf', + servicenorm: 'fsdfshgfhgf', + opschortingEnAanhoudingMogelijk: 'fsdfshgfhgf', + verlengingMogelijk: 'fsdfshgfhgf', + verlengingstermijn: 'fsdfshgfhgf', + publicatieIndicatie: 'fsdfshgfhgf', + publicatietekst: 'fsdfshgfhgf', + productenOfDiensten: 'fsdfshgfhgf', + selectielijstProcestype: 'fsdfshgfhgf', + referentieproces: 'fsdfshgfhgf', + catalogus: 'fsdfshgfhgf', + beginGeldigheid: 'fsdfshgfhgf', + eindeGeldigheid: 'fsdfshgfhgf', + beginObject: 'fsdfshgfhgf', + eindeObject: 'fsdfshgfhgf', + versiedatum: 'fsdfshgfhgf', }, ] diff --git a/src/entities/zaakTypen/zaakTypen.ts b/src/entities/zaakTypen/zaakTypen.ts index 4bed929..bfa0b1b 100644 --- a/src/entities/zaakTypen/zaakTypen.ts +++ b/src/entities/zaakTypen/zaakTypen.ts @@ -4,20 +4,95 @@ import { TZaakType } from './zaakTypen.types' export class ZaakType implements TZaakType { public id: string - public name: string - public summary: string + public identificatie: string + public omschrijving: string + public omschrijvingGeneriek: string + public vertrouwelijkheidaanduiding: string + public doel: string + public aanleiding: string + public toelichting: string + public indicatieInternOfExtern: string + public handelingInitiator: string + public onderwerp: string + public handelingBehandelaar: string + public doorlooptijd: string + public servicenorm: string + public opschortingEnAanhoudingMogelijk: string + public verlengingMogelijk: string + public verlengingstermijn: string + public publicatieIndicatie: string + public publicatietekst: string + public productenOfDiensten: string + public selectielijstProcestype: string + public referentieproces: string + public catalogus: string + public beginGeldigheid: string + public eindeGeldigheid: string + public beginObject: string + public eindeObject: string + public versiedatum: string constructor(source: TZaakType) { this.id = source.id || '' - this.name = source.name || '' - this.summary = source.summary || '' + this.identificatie = source.identificatie || '' + this.omschrijving = source.omschrijving || '' + this.omschrijvingGeneriek = source.omschrijvingGeneriek || '' + this.vertrouwelijkheidaanduiding = source.vertrouwelijkheidaanduiding || '' + this.doel = source.doel || '' + this.aanleiding = source.aanleiding || '' + this.toelichting = source.toelichting || '' + this.indicatieInternOfExtern = source.indicatieInternOfExtern || '' + this.handelingInitiator = source.handelingInitiator || '' + this.onderwerp = source.onderwerp || '' + this.handelingBehandelaar = source.handelingBehandelaar || '' + this.doorlooptijd = source.doorlooptijd || '' + this.servicenorm = source.servicenorm || '' + this.opschortingEnAanhoudingMogelijk = source.opschortingEnAanhoudingMogelijk || '' + this.verlengingMogelijk = source.verlengingMogelijk || '' + this.verlengingstermijn = source.verlengingstermijn || '' + this.publicatieIndicatie = source.publicatieIndicatie || '' + this.publicatietekst = source.publicatietekst || '' + this.productenOfDiensten = source.productenOfDiensten || '' + this.selectielijstProcestype = source.selectielijstProcestype || '' + this.referentieproces = source.referentieproces || '' + this.catalogus = source.catalogus || '' + this.beginGeldigheid = source.beginGeldigheid || '' + this.eindeGeldigheid = source.eindeGeldigheid || '' + this.beginObject = source.beginObject || '' + this.eindeObject = source.eindeObject || '' + this.versiedatum = source.versiedatum || '' } public validate(): SafeParseReturnType { const schema = z.object({ id: z.string().optional(), - name: z.string().min(1), - summary: z.string().min(1), + identificatie: z.string().min(1), + omschrijving: z.string().min(1), + omschrijvingGeneriek: z.string().min(1), + vertrouwelijkheidaanduiding: z.string().min(1), + doel: z.string().min(1), + aanleiding: z.string().min(1), + toelichting: z.string().min(1), + indicatieInternOfExtern: z.string().min(1), + handelingInitiator: z.string().min(1), + onderwerp: z.string().min(1), + handelingBehandelaar: z.string().min(1), + doorlooptijd: z.string().min(1), + servicenorm: z.string().min(1), + opschortingEnAanhoudingMogelijk: z.string().min(1), + verlengingMogelijk: z.string().min(1), + verlengingstermijn: z.string().min(1), + publicatieIndicatie: z.string().min(1), + publicatietekst: z.string().min(1), + productenOfDiensten: z.string().min(1), + selectielijstProcestype: z.string().min(1), + referentieproces: z.string().min(1), + catalogus: z.string().min(1), + beginGeldigheid: z.string().min(1), + eindeGeldigheid: z.string().min(1), + beginObject: z.string().min(1), + eindeObject: z.string().min(1), + versiedatum: z.string().min(1), }) return schema.safeParse(this) diff --git a/src/entities/zaakTypen/zaakTypen.types.ts b/src/entities/zaakTypen/zaakTypen.types.ts index e793ae4..5147835 100644 --- a/src/entities/zaakTypen/zaakTypen.types.ts +++ b/src/entities/zaakTypen/zaakTypen.types.ts @@ -1,5 +1,30 @@ export type TZaakType = { id: string; - name: string; - summary: string; + identificatie: string; + omschrijving: string; + omschrijvingGeneriek: string; + vertrouwelijkheidaanduiding: string; + doel: string; + aanleiding: string; + toelichting: string; + indicatieInternOfExtern: string; + handelingInitiator: string; + onderwerp: string; + handelingBehandelaar: string; + doorlooptijd: string; + servicenorm: string; + opschortingEnAanhoudingMogelijk: string; + verlengingMogelijk: string; + verlengingstermijn: string; + publicatieIndicatie: string; + publicatietekst: string; + productenOfDiensten: string; + selectielijstProcestype: string; + referentieproces: string; + catalogus: string; + beginGeldigheid: string; + eindeGeldigheid: string; + beginObject: string; + eindeObject: string; + versiedatum: string; } diff --git a/src/modals/Modals.vue b/src/modals/Modals.vue index 7cbe23d..75895c0 100644 --- a/src/modals/Modals.vue +++ b/src/modals/Modals.vue @@ -5,20 +5,32 @@ import { navigationStore } from '../store/store.js' @@ -26,37 +38,46 @@ import { navigationStore } from '../store/store.js' diff --git a/src/modals/contactMomenten/ContactMomentenForm.vue b/src/modals/contactMomenten/ContactMomentenForm.vue index 497d767..d296226 100644 --- a/src/modals/contactMomenten/ContactMomentenForm.vue +++ b/src/modals/contactMomenten/ContactMomentenForm.vue @@ -1,174 +1,451 @@