nextcloud / nextcloud/calendar
Improve description field editing UI with contenteditable while preserving linkify
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Is your feature request related to a problem? Please describe.
The description field currently uses linkify to automatically convert URLs and other text into clickable links, which is valuable functionality.
However, this comes at the cost of editing usability – the text jumps between the linkified view and the plain textarea when editing, creating a jarring user experience. This is particularly disruptive when you start editing the description and then switch to another browser tab to gather information – upon returning, the view state may have changed, making it harder to resume editing where you left off.
Describe the solution you'd like
Implement a contenteditable div that synchronizes with the underlying textarea to provide the best of both worlds:
- Preserve linkify functionality: URLs and relevant text remain clickable and formatted
- Improve editing experience: Users can edit directly in the formatted view without visual jumps
- Seamless synchronization: Keep the contenteditable div and textarea in sync to maintain data integrity (if needed, i do not yet dig in the code)
Describe alternatives you've considered
No response
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by locating the description field and its linkify implementation, then trace how editing switches between the formatted view and textarea. Done means users can edit in a persistent formatted view, URLs remain clickable, and the contenteditable element stays synchronized with the underlying textarea.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100