fix: Proper NcAppSidebar on detail pages#116
Open
rubenvdlinde wants to merge 249 commits intomainfrom
Open
Conversation
- Add ZgwController with full CRUD for ZGW-compliant API endpoints using bidirectional Twig-based mapping (English <-> Dutch) - Add ZgwMappingService for IAppConfig-based mapping configuration - Add ZgwPaginationHelper for HAL-style pagination wrapper - Add LoadDefaultZgwMappings repair step with 12 default resources - Add ZgwMappingController + admin UI (ZgwMappingSettings.vue) - Add Vue store module for zgwMapping - Register 6 ZGW API routes and 5 mapping admin routes - Load OpenRegister services via cross-app DI with graceful fallback
- Split monolithic ZgwController into per-API controllers (ZtcController, ZrcController, DrcController, BrcController, AcController, NrcController) - Add ZGW business rules services (ZgwZrcRulesService, ZgwDrcRulesService, ZgwBrcRulesService, ZgwZtcRulesService) implementing VNG compliance checks - Add JWT-ZGW authentication middleware - Add zaaktype enrichment with sub-resource arrays (eigenschappen, statustypen, resultaattypen, roltypen, informatieobjecttypen, besluittypen, deelzaaktypen) - Add Newman/Postman test suite for ZGW business rules - Add ZGW implementation documentation - Update routes, register schema, and default mappings
…ailures) - Fix JWT token switching: collection-level JWT auth always used admin credentials regardless of jwt_token env var. Patched set-restricted-token and set-full-token scripts to also switch client_id/secret variables. - Restore accidentally removed variable declarations in Create zgw-token prerequest scripts. - Remove temporary debug logging from ZrcController and ZgwService. This resolves 19 zrc-007 scope enforcement tests that expected 403 but were getting 200 because the restricted token was never actually used.
- Fix zaaktype reverseMapping: add json_encode Twig filters for productsOrServices, referenceProcess, relatedCaseTypes, versionDate - Remove decisionTypes from reverseMapping (handled by _directFields) - Remove ZRC scopes from procest-limited seed (only ZTC scopes) - Fix handlePublish re-encoding string-typed JSON fields before save (jsonSerialize auto-decodes JSON strings to arrays)
- Add 7 missing ZGW fields to case schema (sourceOrganisation, archiveNomination, archiveActionDate, archiveStatus, paymentIndication, lastPaymentDate, communicationChannel) - Fix checkFieldUniqueness to build query directly instead of via buildSearchQuery, which splits camelCase field names on underscores (sourceOrganisation → source.Organisation) breaking the DB filter - Pass _multitenancy: false in uniqueness checks for cross-context searches
ZRC fixes: - Add missing zaak mapping fields (archiveStatus, paymentIndication, lastPaymentDate, parentCase) with proper outbound/inbound/nullable config - Fix archiefactiedatum derivation: use ResultaatType.archivalPeriod instead of brondatum.processDuration for procestermijn - Fix ander_datumkenmerk to return null (not einddatum) - Fix besluit date field names (effectiveDate/expiryDate) DRC fixes: - Add usageRightsIndication field to document schema - Block EIO deletion when OIO relations exist (drc-008a) - Fix force unlock scope check for empty lock ID (drc-009k) ZTC fixes: - Allow PATCH with only geldigheid fields on published types (ztc-009c) - Clean up debug logging General: - Remove debug logging from ZgwService and ZgwZtcRulesService
- Generalize DRC flat-array listing to support gebruiksrechten alongside objectinformatieobjecten - Add ZRC zaakcontactmoment/zaakverzoek endpoints and expand zaakobject handling - Add ZTC besluittype-informatieobjecttype/zaaktype-informatieobjecttype list endpoints - Fix LoadDefaultZgwMappings to load zaakcontactmoment/zaakverzoek/gebruiksrechten mappings - Add business rules for zaakobject validation in ZgwZrcRulesService - Add Postman environment config and Newman test report
Replaces inline quality workflow with reusable workflow from ConductionNL/.github. Adds CVE vulnerability scanning.
- Fix all PHPCS errors across 14 PHP files (named parameters, inline IF statements, implicit true comparisons, doc comment ordering, string concatenation, inline comment capitalization, missing docblocks) - Run npm audit fix to resolve 32 vulnerabilities (9 high, 1 critical) - Fix ESLint import/named error: replace missing CnDashboardPage import from @conduction/nextcloud-vue with local component stub
- Auto-fixed 625 errors via PHPCBF (indentation, spacing, braces) - Removed 384 }//end methodName() comments violating PSR-12 closing brace rule - Fixed 60 line-length warnings by breaking long lines with concatenation or multi-line function arguments - Result: 0 errors, 0 warnings from phpcs --standard=PSR12 lib/
…pdate - Re-ran phpcbf against project's Squiz/PEAR-based phpcs.xml config - Added allowMultiline and ignoreNewlines for long Dutch string literals - Added import/no-unresolved ignore for @conduction/nextcloud-vue - Raised soft line limit from 125 to 150 to match absolute limit
Enable Newman integration tests using Postman collections in data/
Three categories of PHP named parameter bugs that caused runtime "Unknown named parameter" errors, breaking DRC, ZRC, and BRC flows: - fieldError(name:/field:) → fieldError(fieldName:) in ZTC and ZRC rules - error(statusCode:) → error(status:) in ZRC rules - extractUuid(value:) → extractUuid(url:) in BRC, DRC, and RulesBase
Three remaining calls used field: instead of fieldName: causing Unknown named parameter errors at runtime.
- Create phpunit.xml (PHPUnit 10 format) - Create tests/bootstrap.php with Nextcloud environment support - Add SettingsServiceTest with 7 tests covering config management
Move docusaurus project files from docusaurus/ into docs/ alongside content. Replace local documentation.yml with centralized caller.
- Test against PHP 8.3 + 8.4 and Nextcloud stable31 + stable32 - Use new grouped job layout (PHP Quality, Vue Quality, Security, License)
Pass tests/zgw/zgw-environment.json to Newman so the ZGW test collections get proper client_id, secret, and API URL variables.
- newman-seed-command: runs maintenance:repair to create ZGW consumer applicaties (procest-admin, procest-limited) with JWT secrets - additional-apps: checks out openregister as dependency (consumers are stored via OpenRegister's ConsumerMapper)
Creates ZGW JWT consumers via OpenRegister's Consumers API using curl, bypassing the repair step (which may not have ConsumerMapper available during app:enable). The seed script runs after the server starts.
…ntake-flow # Conflicts: # lib/Settings/procest_register.json # openspec/changes/zaak-intake-flow/proposal.md # src/views/cases/CaseCreateDialog.vue # src/views/cases/CaseDetail.vue
feat: Implement zaak intake flow MVP
feat: Implement task-management spec
…ashboard-view # Conflicts: # src/views/cases/CaseDetail.vue
feat: Case dashboard — responsive, print, 404
…decisions # Conflicts: # src/views/cases/CaseDetail.vue
feat: Implement roles-decisions spec
…orraad # Conflicts: # openspec/changes/werkvoorraad/proposal.md
feat: Add Werkvoorraad (team work queue) view
…ypes # Conflicts: # src/views/settings/CaseTypeDetail.vue # src/views/settings/tabs/PropertiesTab.vue
feat: Implement case-types spec — V1 admin tabs
feat: Enhance My Work — case type, a11y, responsive
…pe-configuratie # Conflicts: # openspec/changes/zaaktype-configuratie/.openspec.yaml # openspec/changes/zaaktype-configuratie/proposal.md
feat: Implement zaaktype-configuratie spec
…and TEC/GEMMA mapping - Rewrites docs/features/README.md as a comprehensive feature overview table covering all 40+ features with standards references (GEMMA, ZGW, TEC BPM, CMMN, Awb, Woo, LHS, Forum Standaardisatie), implementation status, and links to individual feature docs - Adds Standards Compliance table with direct gemmaonline.nl URLs for all relevant GEMMA Referentiecomponenten (Zaakafhandel, VTH, Bezwaar/Beroep, Bestuurlijk activiteiten, Mobiel toezicht) - Adds TEC BPM RFP Template coverage matrix mapping sections 1.1–7.2 to implemented Procest features - Creates 4 missing feature docs for archive changes without docs: deelzaak-support.md, doorlooptijd-dashboard.md, zgw-apis.md, app-scaffold.md - Updates spec-to-feature mapping table with all 50+ archive changes - Adds archive rules to openspec/config.yaml requiring feature doc updates on every archive operation
- playwright.config.ts with global-setup auth - 3 spec files: smoke, navigation, pages - Pages spec verifies dashboard, cases, tasks, my-work - 4 test flow markdowns for LLM-based testing - Covers: dashboard, navigation, case management, task management
- New case form: Status, Case Information, Participants, Tasks, Activity - Field verification: Title, Description, Priority, Handler, etc. - Activity note input and Add Participant button
- Add missing closing brace for map_layer_schema block in store.js, which caused a webpack build failure (import/export at top level) - Fix deep link listener to use history-mode URL patterns (no hash)
Pass human-readable type labels to CnObjectSidebar title prop instead of showing raw object type strings like "procest_case".
Spec, design, and task definitions for the Start Case dashboard widget.
New widget lets users create cases directly from the Nextcloud dashboard by clicking on available case types. Includes PHP widget class, Vue component with loading/empty states, and webpack entry point.
- Cases: new case modal with case type, title, description, location - Tasks: search bar and filter comboboxes - Work Queue: 4 stat cards (Open/Overdue/Completed/Unassigned) + filters - B&W Voorstellen: Nieuw voorstel button, Actief/Afgerond/Alle tabs, Dutch empty state - Doorlooptijd: Processing Time Analytics heading, SLA text, Dashboard button - Settings: version info, configuration fields, case type management, save/re-import
fix: Store syntax error and deep link registration
feat(procest): Start Case dashboard widget
- brp-kvk-register-sets: BRP/KVK register sets for case initiator - document-zaakdossier: Document zaakdossier integration - dso-omgevingsloket: DSO Omgevingsloket integration - method-decomposition: Method decomposition refactor - open-raadsinformatie: Open Raadsinformatie integration - unit-test-coverage-75: Get test coverage to 75%+
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Depends on ConductionNL/nextcloud-vue#32
Closes #115