Calendar entry titles render primary field as editable cell, matching Board - #268
Conversation
… Board (closes #105) Resolves the UX call from #105: Calendar entries now show the resolved primary field as a directly-editable PropertyValueCell (scheduled and unscheduled), mirroring Board's existing behavior — Calendar's entries already supported inline editing for the date field, so this extends an established pattern rather than introducing a new one. When the primary field is also the date property driving groupBy, the title falls back to a plain non-editable label to avoid a duplicate editable control for the same value, mirroring Board's groupBy/swimlaneBy collision handling. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (3)
Included review availability: 3 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour. 📝 WalkthroughWalkthroughCalendar entries now render the resolved primary field as an editable ChangesCalendar primary-field editing
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant CalendarCollectionView
participant PropertyValueCell
participant CollectionRecord
CalendarCollectionView->>PropertyValueCell: render the primary field when it differs from the grouping date
PropertyValueCell->>CollectionRecord: persist the edited primary-field value
CollectionRecord-->>CalendarCollectionView: provide the updated record value
Merge Risk: ⚪ Minimal · up to The Calendar title-editing behavior, collision fallback, documentation, and targeted tests align with the stated change. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
PR Summary by QodoMake Calendar primary-field titles inline editable
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
1. Screen readers cannot name title fields
|
| <PropertyValueCell | ||
| property={titleProperty} | ||
| value={row.properties?.[titleProperty.key]} | ||
| oninput={(value) => setCell(row, titleProperty, value)} |
There was a problem hiding this comment.
1. Screen readers cannot name title fields 📜 Skill insight ☑ Accessibility
PropertyValueCell renders its text, number, date, checkbox, and select controls without a label or ARIA naming attribute, while the new scheduled and unscheduled Calendar title call sites pass only property, value, and oninput. Whenever an entry's primary field is editable, screen-reader users encounter an unnamed control and cannot determine that it edits the entry title, even though the field label remains available in component data.
Agent Prompt
## Issue description
The newly editable scheduled and unscheduled Calendar title fields render through `PropertyValueCell`, whose generated form controls have no accessible name, so assistive technology cannot identify their purpose.
## Fix Focus Areas
- src/lib/components/CalendarCollectionView.svelte[392-399]
- src/lib/components/CalendarCollectionView.svelte[457-464]
- src/lib/components/PropertyValueCell.svelte[5-73]
## Recommended Fix
Give every form control emitted by `PropertyValueCell` an accessible name derived from `property.label`, or add an accessible-label prop, apply it to every generated form control, and pass a descriptive primary-field title label from both scheduled and unscheduled Calendar title call sites. Ensure the text, number, date, checkbox, and select variants are all covered.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Summary
Resolves the UX call raised in #105: Calendar entries (scheduled and unscheduled) now show the Collection's resolved primary field as a directly-editable
PropertyValueCell, mirroring Board's existing card-title behavior, instead of always rendering static text.titleEditableViaCellcollision handling (issue Board/Calendar: primary field and groupBy can point at the same field, showing redundant controls #104): when the primary field is also the date property drivinggroupBy, the title falls back to the existing plain, non-editable label instead of showing a second, redundant editable control for the same value (the datePropertyValueCellalready covers it).docs/specifications/collection-views.md§4 and §7 to document the decision and the shared collision-handling behavior across Board and Calendar.Closes #105
Test plan
npm run test— 1282 tests passnpm run lintnpm run check🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes