Repository navigation
Implementation/COMMS-1048: Labels field on the work package view with inline creation - #25554
Conversation
Deploying openproject with ⚡ PullPreview
|
b47e919 to
a6d038f
Compare
483d2b9 to
04b74a4
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
04b74a4 to
60c6bcd
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
3e3dc1f to
bf75968
Compare
Labels render like the other multi-value attributes and are edited in a multi-select that searches on the server so the workspace-relevance ordering is kept. A dedicated labels autocompleter holds the fetching so other surfaces can reuse it.
The create option is pinned below the options and only offered while the typed name matches no loaded label. The created label joins the open selection and is saved with the field.
The accessible name of the field stringified the HAL resources; it now joins the names like the title does. The create-label option also stays hidden while results are still loading.
The create action is an addTag option, so arrow keys and Enter reach it. A 403 on create shows a specific message instead of the raw error.
Save/Cancel render only alongside the input, and the combobox is announced by the field name.
The API authorizes label creation, so the client no longer special-cases 403 responses.
New labels read "<name> (New label)", matches highlight in blue, and the list closes on pick so it can open either way without covering Save/Cancel.
The create option stays fixed while the list scrolls and remains a keyboard-reachable option.
The shared schema no longer treats add_work_packages as enough to edit labels, so add-only users see the field read-only.
Add-only users pick existing labels; creating new ones on the fly needs edit_work_packages in the project.
Name the permission each schema case covers and check the case-insensitive duplicate on its own.
The joined name backs the title and aria-label of every multi-value resource field, not only labels.
bf75968 to
229e943
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
The option now uses ng-select's default tag template with a leading "Create label" prefix, matching the share dialog's invite option. The pinned row, its grey marked background and the keyboard scroll nudge are gone; the option is a plain last row in the list. Also refreshes the copyright headers of the labels autocompleter files to the current wording so eslint accepts them.
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
HDinger
left a comment
There was a problem hiding this comment.
LGTM 👍 Thanks for addressing that 🙇

https://community.openproject.org/wp/COMMS-1048
Work packages show their labels on the full and split view, and users with
edit_work_packagesedit them in a multi-select that searches labels on the server and saves with the field's own save/cancel controls. A pinned option at the bottom of the dropdown creates a label from the typed name and adds it to the selection. The fetching lives in a dedicatedop-labels-autocompleterso other surfaces can reuse it.Screenshots
Full view, Details group
Initial dropdown order: used in this workspace, then most used, then name
Create option pinned below the results
Split view
AI involvement
Directed – I specified the requirements and AI implemented most of it; I validated via testing rather than a full line-by-line review.