Improve UX of join requests and fix minor bugs #492

Merged
simon merged 12 commits from bugfix/480-fix-minor-bugs into main 2026-05-06 14:34:44 +02:00
Owner

Description of the implemented changes

The changes were:

  • Bugfixing
  • New Feature
  • Breaking Change
  • Refactoring

This PR improves the join-request flow and presentation quality, fixes several data-display issues in join/join-request screens, and adds a usability improvement in global settings (directly opening the join link). It also includes dependency updates and changelog maintenance.

What has been changed?

  • Join form (JoinLive) now renders inputs based on actual field types (including checkbox/date/number/email behavior instead of generic text-only handling).
  • Join form custom-field labels are resolved from configured custom fields (fallback remains safe if lookup fails).
  • Join-request details page (JoinRequestLive.Show) now:
    • resolves and shows custom field names instead of raw IDs,
    • formats boolean-like values (on/true/1, off/false/0) as localized Yes/No,
    • formats ISO date strings for better readability,
    • keeps legacy field handling while improving output consistency.
  • Join-request detail layout was improved semantically and visually (dl/dt/dd structure for label/value rows).
  • Global settings page now includes an Open button for the join URL (target="_blank", rel="noopener noreferrer", ARIA label).
  • Added/updated tests around:
    • join field type rendering,
    • custom field labels in join-request views,
    • related auth/global-settings behavior.
  • Updated translations (default.pot, en, de) for new UI strings.
  • Updated dependencies/tooling (mix.lock, mix.exs, CI/renovate-related updates).
  • Updated CHANGELOG.md entries for unreleased changes.

Definition of Done

Code Quality

  • No new technical depths
  • Linting passed
  • Documentation is added were needed

Accessibility

  • New elements are properly defined with html-tags
  • Colour contrast follows WCAG criteria
  • Aria labels are added when needed
  • Everything is accessible by keyboard
  • Tab-Order is comprehensible
  • All interactive elements have a visible focus

Testing

  • Tests for new code are written
  • All tests pass
  • axe-core dev tools show no critical or major issues

Additional Notes

  • Reviewer focus areas:
    • lib/mv_web/live/join_live.ex: input type derivation and custom field lookup strategy (authorize?: false read path used intentionally for field metadata).
    • lib/mv_web/live/join_request_live/show.ex: value-formatting logic (especially backward compatibility for legacy form_data payloads).
    • lib/mv_web/live/global_settings_live.ex: external-link behavior and accessibility attributes.
  • The branch also contains dependency update commits; please review lockfile and CI-related changes separately from functional join/join-request changes.
## Description of the implemented changes The changes were: - [x] Bugfixing - [x] New Feature - [ ] Breaking Change - [ ] Refactoring This PR improves the join-request flow and presentation quality, fixes several data-display issues in join/join-request screens, and adds a usability improvement in global settings (directly opening the join link). It also includes dependency updates and changelog maintenance. ## What has been changed? - Join form (`JoinLive`) now renders inputs based on actual field types (including checkbox/date/number/email behavior instead of generic text-only handling). - Join form custom-field labels are resolved from configured custom fields (fallback remains safe if lookup fails). - Join-request details page (`JoinRequestLive.Show`) now: - resolves and shows custom field names instead of raw IDs, - formats boolean-like values (`on/true/1`, `off/false/0`) as localized `Yes/No`, - formats ISO date strings for better readability, - keeps legacy field handling while improving output consistency. - Join-request detail layout was improved semantically and visually (`dl/dt/dd` structure for label/value rows). - Global settings page now includes an **Open** button for the join URL (`target="_blank"`, `rel="noopener noreferrer"`, ARIA label). - Added/updated tests around: - join field type rendering, - custom field labels in join-request views, - related auth/global-settings behavior. - Updated translations (`default.pot`, `en`, `de`) for new UI strings. - Updated dependencies/tooling (`mix.lock`, `mix.exs`, CI/renovate-related updates). - Updated `CHANGELOG.md` entries for unreleased changes. ## Definition of Done ### Code Quality - [x] No new technical depths - [x] Linting passed - [x] Documentation is added were needed ### Accessibility - [x] New elements are properly defined with html-tags - [x] Colour contrast follows WCAG criteria - [x] Aria labels are added when needed - [x] Everything is accessible by keyboard - [x] Tab-Order is comprehensible - [x] All interactive elements have a visible focus ### Testing - [x] Tests for new code are written - [ ] All tests pass - [ ] axe-core dev tools show no critical or major issues ## Additional Notes - Reviewer focus areas: - `lib/mv_web/live/join_live.ex`: input type derivation and custom field lookup strategy (`authorize?: false` read path used intentionally for field metadata). - `lib/mv_web/live/join_request_live/show.ex`: value-formatting logic (especially backward compatibility for legacy `form_data` payloads). - `lib/mv_web/live/global_settings_live.ex`: external-link behavior and accessibility attributes. - The branch also contains dependency update commits; please review lockfile and CI-related changes separately from functional join/join-request changes.
simon added 9 commits 2026-05-06 12:28:39 +02:00
test: add tests for custom field labels
Some checks failed
continuous-integration/drone/push Build is failing
a6f6f402af
fix: labels for custom fields in join requests
Some checks failed
continuous-integration/drone/push Build is failing
0a7bbc7fa6
test: verify that join view respects custom field types
Some checks failed
continuous-integration/drone/push Build is failing
95b666f04f
feat: respect field types in join requests
Some checks failed
continuous-integration/drone/push Build is failing
6327ea00eb
fix: wrap field labels in join request view
Some checks failed
continuous-integration/drone/push Build is failing
15e9a52bc9
fix: joinrequest field formats
Some checks failed
continuous-integration/drone/push Build is failing
0159d5352a
feat: add open button to join link in settings
Some checks failed
continuous-integration/drone/push Build is failing
d0d7d38c03
Merge remote-tracking branch 'origin/main' into bugfix/480-fix-minor-bugs
All checks were successful
continuous-integration/drone/push Build is passing
3cc35d0293
chore: update change notes
All checks were successful
continuous-integration/drone/push Build is passing
104d945dd1
simon added 1 commit 2026-05-06 13:54:34 +02:00
refactor: fix review blockers
Some checks failed
continuous-integration/drone/push Build is failing
cc1df449c6
simon added 1 commit 2026-05-06 14:11:42 +02:00
refactor: fix review issues
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is failing
f8e1d39964
simon added 1 commit 2026-05-06 14:29:13 +02:00
test: fix flaky test
All checks were successful
continuous-integration/drone/push Build is passing
a62fceaf28
simon merged commit 2bb01bd201 into main 2026-05-06 14:34:44 +02:00
simon deleted branch bugfix/480-fix-minor-bugs 2026-05-06 14:34:45 +02:00
Sign in to join this conversation.
No description provided.