Skip to content

feat: Refactor CnObjectSidebar into separate tab components#33

Open
rubenvdlinde wants to merge 15 commits intobetafrom
feat/sidebar-tab-components
Open

feat: Refactor CnObjectSidebar into separate tab components#33
rubenvdlinde wants to merge 15 commits intobetafrom
feat/sidebar-tab-components

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

Extract each sidebar tab into a self-contained component:

  • CnFilesTab — Drop zone file upload, file list with actions
  • CnNotesTab — Add/edit/delete notes with inline editing
  • CnTagsTab — System tag management with autocomplete
  • CnTasksTab — Task creation (summary, deadline, assignee), complete/delete
  • CnAuditTrailTab — Audit trail list

CnObjectSidebar is now a thin shell that passes props to tab components.
Slot overrides remain backwards compatible.

Related: ConductionNL/openregister#1166

Test plan

  • All sidebar tabs render correctly
  • File upload works (drag-and-drop + click)
  • Notes CRUD with inline editing
  • Tags with autocomplete suggestions
  • Tasks with deadline and assignee fields

- Fix filters object serialized as [object Object] in query string
  by using JSON.stringify for all object values in buildQueryString
- Flatten filters into individual query params in refetchSearchCollection
  so backend receives field-level filters instead of a single filters param
- Remove source-to-_source mapping (deprecated, backend auto-detects)
…components

feat: Spec enrichment and new components
- Add status: implemented frontmatter to all 23 specs missing it
- Rename '## ADDED Requirements' to '## Requirements' in 6 specs
- Fix ADDED Requirements in unified-grid-widget-system change specs
- Fix ADDED Requirements in all archive delta specs
- Fix schema template to use 'Requirements' instead of 'ADDED Requirements'
All specs moved from openspec/specs/ to openspec/changes/ with proper
proposal.md as the entry point. Follows the spec-driven workflow:
proposal -> design -> specs -> tasks
…, full archive

- gridLayout mixin: New 12-column CSS grid engine for static layouts
  (sortedLayout, widgetGridStyle, responsive breakpoints)
- CnDetailPage: Add optional grid layout mode via layout+widgets props
  (backwards compatible — default slot stacking preserved when no layout)
- CnInfoWidget: New label-value pair component (manual or schema-driven)
- CnTableWidget: New data table widget with card wrapper and dual sourcing
  (external rows or self-fetch from OpenRegister API)
- Barrel exports: Add missing CnChartWidget, CnObjectSidebar, CnInfoWidget,
  CnTableWidget to components/index.js and src/index.js
- All 24 changes: design.md, tasks.md, specs synced to openspec/specs/,
  archived to openspec/changes/archive/
…seListView

- sortedLayout computed now returns [] when layout is null
- hasGridLayout uses Array.isArray for strict boolean return
- useListView accepts optional objectStore in options for createObjectStore users
Extract each sidebar tab into its own self-contained component:
- CnFilesTab: Drop zone file upload (drag-and-drop + click), file list with actions
- CnNotesTab: Add/edit/delete notes with inline editing
- CnTagsTab: System tag management with autocomplete suggestions
- CnTasksTab: Task creation (summary, deadline, assignee), complete/delete actions
- CnAuditTrailTab: Audit trail list

CnObjectSidebar is now a thin shell (~100 lines) that renders tab wrappers
and passes register/schema/objectId/apiBase down to each tab component.

All existing slot overrides (#tab-files, #tab-notes, etc.) remain backwards compatible.
Tab components are independently importable for use outside the sidebar.
Base automatically changed from development to beta March 25, 2026 09:27
- Sort entries by created date descending (latest first)
- Click entry to expand detail panel with action, user, IP, session
- Changed fields shown with old→new diff (red strikethrough → green)
- Slide-down animation on expand
- Tasks: checkbox click toggles complete/incomplete status
- Tasks: overdue tasks show red checkbox icon and red deadline date
- Tasks: pagination with "Load more" button
- Files: pagination with "Load more" button
- Audit trail: server-side filtering (action, user, date range)
- Audit trail: pagination with "Load more" button
- Aligned create form using 2-column grid (matches audit trail filters)
- Added field labels above Deadline and Assignee inputs
- Edit task: pencil action populates form, save icon replaces plus, cancel button
- Filter tasks by status and assignee (dropdown filters between form and list)
- Save icon (ContentSave) for edit mode, close icon for cancel
… scroll

- Create and filter sections visually separated by border
- Grid uses min-width:0 to prevent overflow/scrollbar
- Removed duplicate Deadline label
- overflow-x:hidden on container
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.

1 participant