Skip to content

fix: Proper NcAppSidebar on detail pages#116

Open
rubenvdlinde wants to merge 249 commits intomainfrom
fix/detail-page-proper-sidebar
Open

fix: Proper NcAppSidebar on detail pages#116
rubenvdlinde wants to merge 249 commits intomainfrom
fix/detail-page-proper-sidebar

Conversation

@rubenvdlinde
Copy link
Contributor

Summary

  • Add objectSidebarState provide/inject pattern to App.vue
  • Detail pages now render sidebar as proper NcAppSidebar (sibling of NcAppContent)

Depends on ConductionNL/nextcloud-vue#32
Closes #115

- 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
…ashboard-view

# Conflicts:
#	src/views/cases/CaseDetail.vue
feat: Case dashboard — responsive, print, 404
…decisions

# Conflicts:
#	src/views/cases/CaseDetail.vue
…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
- 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%+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: Add objectSidebarState for proper NcAppSidebar on detail pages

1 participant