Social profiles: a service another row already uses is greyed out in the service select #925
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#925
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In Social profiles, a service another row already uses is greyed out and cannot be chosen in the service select, as the identifiers' Type select already does for kinds that are taken.
What exists today
holdKindsinstatic/js/app.js(under "One identifier of each kind (#307)") reruns the same rule asOneOfEachKindincore/identifiers.pywhenever a row's kind changes, a Remove box is ticked, or a row is taken off. It does this by settingoption.disabled. The custom select (#301) then draws a disabled option witharia-disabled="true", greyed, and skips it.core/models.py::WebLinkis unique per holder, kind and address (web_link_unique_per_holder_and_kind), not per service. Two GitHub profiles, or two Mastodon accounts on different servers, are allowed today. The service select inpartials/web_links.html(row.service,data-service-select) disables nothing.What would change
OneOfEachKinddoes. The script side follows the identifiers: aholdServicesthat reruns the rule on change and on removal.Accessibility
aria-disabled), and greyed not by colour alone (the custom select already draws it). Say why in the option's description or the card's help, for example "already in another row".Notes
Related: #307, #301, #305, #678, #906.
Checked against
mainat56fc9d531.Decision (maintainer, 2026-10-15): in principle, no duplicate social profiles.
holdKinds, #307).