diff --git a/build/mijn-zaken/block.json b/build/mijn-zaken/block.json index 38bd9ff..8ebe3ce 100644 --- a/build/mijn-zaken/block.json +++ b/build/mijn-zaken/block.json @@ -10,6 +10,14 @@ "type": "string", "default": "openzaak" }, + "byBSN": { + "type": "boolean", + "default": true + }, + "byKVK": { + "type": "boolean", + "default": false + }, "perPage": { "type": "number", "default": 10 diff --git a/build/mijn-zaken/index.asset.php b/build/mijn-zaken/index.asset.php index 4fa82e3..f452821 100644 --- a/build/mijn-zaken/index.asset.php +++ b/build/mijn-zaken/index.asset.php @@ -1 +1 @@ - array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n', 'wp-server-side-render'), 'version' => 'ab2ec9e9526dd2830637'); + array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n', 'wp-server-side-render'), 'version' => 'c255df62cd6927a2b215'); diff --git a/build/mijn-zaken/index.js b/build/mijn-zaken/index.js index 9a92554..3fe7577 100644 --- a/build/mijn-zaken/index.js +++ b/build/mijn-zaken/index.js @@ -1 +1 @@ -(()=>{"use strict";var e,t={432:(e,t,r)=>{const a=window.wp.blocks,i=window.wp.blockEditor,n=window.wp.components,l=window.wp.serverSideRender;var o=r.n(l);const s=window.wp.i18n,c=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"owc-my-services/mijn-zaken","version":"1.0.0","title":"OWC Mijn Zaken","description":"Toont Mijn Zaken blok.","attributes":{"zaakClient":{"type":"string","default":"openzaak"},"perPage":{"type":"number","default":10},"orderBy":{"type":"string","default":"startdatum"},"orderByDirection":{"type":"string","default":"-"}},"supports":{"html":false},"textdomain":"owc-my-services","editorScript":"file:./index.js","editorStyle":"file:./editor.css","style":"file:./index.css","viewScript":"file:./view.js"}'),d=window.ReactJSXRuntime;(0,a.registerBlockType)(c,{edit:function({attributes:e,setAttributes:t}){var r;const{zaakClient:a,perPage:l,orderBy:u,orderByDirection:p}=e,v=null!==(r=window?.owcMyServices?.zaakClientOptions)&&void 0!==r?r:[{label:"Selecteer een leverancier",value:""}];return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.InspectorControls,{children:(0,d.jsxs)(n.PanelBody,{title:(0,s.__)("Instellingen","owc-my-services"),initialOpen:!0,children:[(0,d.jsx)("p",{children:(0,s.__)("Selecteer het zaaksysteem waaruit de zaken opgehaald moeten worden.","owc-my-services")}),(0,d.jsx)(n.SelectControl,{label:"Zaaksysteem",value:a,options:v,onChange:e=>t({zaakClient:e})}),(0,d.jsx)(n.RangeControl,{label:(0,s.__)("Aantal zaken","owc-my-services"),value:l,min:1,max:25,onChange:e=>t({perPage:e})}),(0,d.jsx)(n.SelectControl,{label:"Sorteer op",value:u,options:[{label:"Startdatum",value:"startdatum"},{label:"Einddatum",value:"einddatum"},{label:"Publicatiedatum",value:"publicatiedatum"},{label:"Archiefactiedatum",value:"archiefactiedatum"},{label:"Registratiedatum",value:"registratiedatum"},{label:"Identificatie",value:"identificatie"}],onChange:e=>t({orderBy:e})}),(0,d.jsx)(n.SelectControl,{label:"Sorteer volgorde",value:p,options:[{label:"Oplopend",value:"+"},{label:"Aflopend",value:"-"}],onChange:e=>t({orderByDirection:e})})]})}),(0,d.jsx)("div",{...(0,i.useBlockProps)(),children:(0,d.jsx)(n.Disabled,{children:(0,d.jsx)(o(),{block:c.name,attributes:e})})})]})},save:function(){return null}})}},r={};function a(e){var i=r[e];if(void 0!==i)return i.exports;var n=r[e]={exports:{}};return t[e](n,n.exports,a),n.exports}a.m=t,e=[],a.O=(t,r,i,n)=>{if(!r){var l=1/0;for(d=0;d=n)&&Object.keys(a.O).every((e=>a.O[e](r[s])))?r.splice(s--,1):(o=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[r,i,n]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={500:0,860:0};a.O.j=t=>0===e[t];var t=(t,r)=>{var i,n,[l,o,s]=r,c=0;if(l.some((t=>0!==e[t]))){for(i in o)a.o(o,i)&&(a.m[i]=o[i]);if(s)var d=s(a)}for(t&&t(r);ca(432)));i=a.O(i)})(); \ No newline at end of file +(()=>{"use strict";var e,t={432:(e,t,a)=>{const r=window.wp.blocks,n=window.wp.blockEditor,i=window.wp.components,l=window.wp.serverSideRender;var o=a.n(l);const s=window.wp.i18n,d=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"owc-my-services/mijn-zaken","version":"1.0.0","title":"OWC Mijn Zaken","description":"Toont Mijn Zaken blok.","attributes":{"zaakClient":{"type":"string","default":"openzaak"},"byBSN":{"type":"boolean","default":true},"byKVK":{"type":"boolean","default":false},"perPage":{"type":"number","default":10},"orderBy":{"type":"string","default":"startdatum"},"orderByDirection":{"type":"string","default":"-"}},"supports":{"html":false},"textdomain":"owc-my-services","editorScript":"file:./index.js","editorStyle":"file:./editor.css","style":"file:./index.css","viewScript":"file:./view.js"}'),c=window.ReactJSXRuntime;(0,r.registerBlockType)(d,{edit:function({attributes:e,setAttributes:t}){var a;const{zaakClient:r,byBSN:l,byKVK:u,perPage:p,orderBy:b,orderByDirection:v}=e,m=null!==(a=window?.owcMyServices?.zaakClientOptions)&&void 0!==a?a:[{label:"Selecteer een leverancier",value:""}];return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.InspectorControls,{children:(0,c.jsxs)(i.PanelBody,{title:(0,s.__)("Instellingen","owc-my-services"),initialOpen:!0,children:[(0,c.jsx)("p",{children:(0,s.__)("Selecteer het zaaksysteem waaruit de zaken opgehaald moeten worden.","owc-my-services")}),(0,c.jsx)(i.SelectControl,{label:"Zaaksysteem",value:r,options:m,onChange:e=>t({zaakClient:e})}),(0,c.jsx)(i.CheckboxControl,{label:"Filter op BSN",help:"Filter zaken die aangemaakt zijn door de ingelogde gebruiker op basis van het BSN nummer.",checked:l,onChange:a=>t({byBSN:a,byKVK:!a&&e.byKVK})}),(0,c.jsx)(i.CheckboxControl,{label:"Filter op KVK",help:"Filter zaken die aangemaakt zijn door de ingelogde gebruiker op basis van het KVK nummer.",checked:u,onChange:a=>t({byKVK:a,byBSN:!a&&e.byBSN})}),(0,c.jsx)(i.RangeControl,{label:(0,s.__)("Aantal zaken","owc-my-services"),value:p,min:1,max:25,onChange:e=>t({perPage:e})}),(0,c.jsx)(i.SelectControl,{label:"Sorteer op",value:b,options:[{label:"Startdatum",value:"startdatum"},{label:"Einddatum",value:"einddatum"},{label:"Publicatiedatum",value:"publicatiedatum"},{label:"Archiefactiedatum",value:"archiefactiedatum"},{label:"Registratiedatum",value:"registratiedatum"},{label:"Identificatie",value:"identificatie"}],onChange:e=>t({orderBy:e})}),(0,c.jsx)(i.SelectControl,{label:"Sorteer volgorde",value:v,options:[{label:"Oplopend",value:"+"},{label:"Aflopend",value:"-"}],onChange:e=>t({orderByDirection:e})})]})}),(0,c.jsx)("div",{...(0,n.useBlockProps)(),children:(0,c.jsx)(i.Disabled,{children:(0,c.jsx)(o(),{block:d.name,attributes:e})})})]})},save:function(){return null}})}},a={};function r(e){var n=a[e];if(void 0!==n)return n.exports;var i=a[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.m=t,e=[],r.O=(t,a,n,i)=>{if(!a){var l=1/0;for(c=0;c=i)&&Object.keys(r.O).every((e=>r.O[e](a[s])))?a.splice(s--,1):(o=!1,i0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[a,n,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={500:0,860:0};r.O.j=t=>0===e[t];var t=(t,a)=>{var n,i,[l,o,s]=a,d=0;if(l.some((t=>0!==e[t]))){for(n in o)r.o(o,n)&&(r.m[n]=o[n]);if(s)var c=s(r)}for(t&&t(a);dr(432)));n=r.O(n)})(); \ No newline at end of file diff --git a/config/php-di.php b/config/php-di.php index 5d6ca00..ce14a31 100644 --- a/config/php-di.php +++ b/config/php-di.php @@ -9,6 +9,12 @@ /** * Specific client settings. */ + 'ow.enabled' => function (Container $container ) { + return (bool) $container->make( 'zgw.get-configured-client', array( 'openwave' ) ); + }, + 'ow.api-client-settings' => function (Container $container ) { + return $container->make( 'zgw.get-configured-client', array( 'openwave' ) ); + }, 'oz.enabled' => function (Container $container ) { return (bool) $container->make( 'zgw.get-configured-client', array( 'openzaak' ) ); }, diff --git a/resources/blocks/mijn-zaken/block.json b/resources/blocks/mijn-zaken/block.json index a20b41e..90e9cf7 100644 --- a/resources/blocks/mijn-zaken/block.json +++ b/resources/blocks/mijn-zaken/block.json @@ -7,6 +7,8 @@ "description": "Toont Mijn Zaken blok.", "attributes": { "zaakClient": { "type": "string", "default": "openzaak" }, + "byBSN": { "type": "boolean", "default": true }, + "byKVK": { "type": "boolean", "default": false }, "perPage": { "type": "number", "default": 10 diff --git a/resources/blocks/mijn-zaken/edit.js b/resources/blocks/mijn-zaken/edit.js index 2496476..d7fd736 100644 --- a/resources/blocks/mijn-zaken/edit.js +++ b/resources/blocks/mijn-zaken/edit.js @@ -5,6 +5,7 @@ import { InspectorControls, useBlockProps } from '@wordpress/block-editor'; import { PanelBody, Disabled, + CheckboxControl, RangeControl, SelectControl, } from '@wordpress/components'; @@ -18,7 +19,7 @@ import metadata from './block.json'; import './editor.css'; export default function Edit( { attributes, setAttributes } ) { - const { zaakClient, perPage, orderBy, orderByDirection } = attributes; + const { zaakClient, byBSN, byKVK, perPage, orderBy, orderByDirection } = attributes; const min = 1; const max = 25; @@ -53,6 +54,28 @@ export default function Edit( { attributes, setAttributes } ) { } ) } /> + + setAttributes( { + byBSN, + byKVK: byBSN ? false : attributes.byKVK, + } ) + } + /> + + setAttributes( { + byKVK, + byBSN: byKVK ? false : attributes.byBSN, + } ) + } + /> bsn = DigiD::make()->bsn(); - } catch (TypeError $e) { + $this->kvk = eHerkenning::make()->kvk(); + + if ('' === $this->bsn && '' === $this->kvk) { + throw new Exception( 'No BSN or KVK found.' ); + } + } catch (Throwable $e) { return owc_mijn_services_render_view( 'owc-error', array( 'message' => __( 'Je moet ingelogd zijn om deze informatie te kunnen zien.', 'owc-mijn-services' ) ) ); } $this->zaken_filter = new ZakenFilter(); - $this->zaken_filter->byBsn( $this->bsn ); try { + $this->add_zaken_filter_args_by_auth_method( $attributes ); $this->client = apiClientManager()->getClient( $attributes['zaakClient'] ?? ( (string) get_query_var( BlockServiceProvider::QUERY_VAR_SUPPLIER ) ) ); } catch (NotFoundException $e) { return owc_mijn_services_render_view( 'owc-error', array( 'message' => __( 'De gekozen zaaksysteem leverancier client is niet geconfigureerd.', 'owc-mijn-services' ) ) ); @@ -61,6 +68,18 @@ final public function render(array $attributes, string $block_content, WP_Block abstract protected function render_block(array $attributes, string $block_content, WP_Block $block ): string; + /** + * @since NEXT + */ + private function add_zaken_filter_args_by_auth_method(array $attributes ): void + { + if ( '' !== $this->bsn && ( $attributes['byBSN'] ?? true ) ) { + $this->zaken_filter->byBsn( $this->bsn ); + } elseif ( '' !== $this->kvk && ( $attributes['byKVK'] ?? false ) ) { + $this->zaken_filter->add( 'rol__betrokkeneIdentificatie__vestiging__kvkNummer', $this->kvk ); + } + } + protected function is_block_editor(): bool { global $current_screen;