mitgliederverwaltung/docs
Simon a12888de2f
All checks were successful
continuous-integration/drone/push Build is passing
Improve member view table behavior+style, fix config settings (#493)
## Description of the implemented changes
The changes were:
- [x] Bugfixing
- [x] New Feature
- [ ] Breaking Change
- [x] Refactoring

This PR standardizes interactive table behavior and improves settings robustness.
It makes the new hover/focus-visible row highlight the default for clickable tables, keeps sticky first-column behavior configurable (and optimized for member selection UX), and tightens SMTP source-of-truth handling so ENV-based and UI-based configuration do not conflict.

## What has been changed?
- Refactored `CoreComponents.table` to expose interaction state via `data-row-interactive` and moved default row hover/focus styling to CSS.
- Made the new row highlight behavior (`hover` + `:has(:focus-visible)`) the default for clickable zebra tables.
- Kept sticky-first-column as an explicit table option and preserved sticky-specific selection accent behavior.
- Updated member overview table usage to the sticky-first-column mode and refined scrolling behavior (table scrollbar within container, not page-coupled).
- Adjusted table-related tests to validate the new interaction contract (attribute/CSS-driven behavior instead of legacy ring classes).
- Improved SMTP config handling:
  - clearer ENV-vs-Settings behavior (ENV-only mode when host env is set),
  - read-only and warning behavior in global settings UI when required env keys are missing,
  - updated related config/tests/docs.
- Updated docs and changelog (`CHANGELOG.md`, `DESIGN_GUIDELINES.md`, `CODE_GUIDELINES.md`, SMTP concept docs).
- Updated gettext catalogs (`default.pot`, `en`, `de`) for new/changed UI strings.

## 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
- [x] All tests pass
- [ ] axe-core dev tools show no critical or major issues

## Additional Notes
- Branch includes 4 commits:
  - `fix: make sure smtp can be set either via env or ui`
  - `fix: make horizontal scrollbars sticky to bottom`
  - `docs: update changelog`
  - `feat: make checkbox column in member view sticky`
- Full fast suite passed (`mix test --exclude slow --exclude ui`): 2017 tests, 0 failures (plus expected non-failing warning logs in test output).
- Reviewer focus areas:
  1. **Cross-table UX consistency** after moving row interaction styling to component/CSS contract.
  2. **Sticky table behavior** (selection accent stripe, zebra background, keyboard focus visibility).
  3. **SMTP precedence and UI constraints** in global settings when ENV mode is active.
  4. **Regression risk in tests** that previously asserted ring-based row classes.
- No breaking API changes expected; behavior change is primarily visual/interaction-level and intentional.

Reviewed-on: #493
Co-authored-by: Simon <s.thiessen@local-it.org>
Co-committed-by: Simon <s.thiessen@local-it.org>
2026-05-08 15:04:53 +02:00
..
admin-bootstrap-and-oidc-role-sync.md Run seeds only once (#475) 2026-03-16 19:27:31 +01:00
badge-wcag-phase1-analysis.md style: consistent badges with sufficient color contrast 2026-02-26 08:33:52 +01:00
csv-member-import-v1.md docs: adds country 2026-02-24 09:35:00 +01:00
custom-fields-search-performance.md docs: updated docs 2025-12-11 13:44:30 +01:00
daisyui-drawer-pattern.md feat: improve sidebar handling 2026-01-06 10:29:20 +01:00
database-schema-readme.md docs: adds country 2026-02-24 09:35:00 +01:00
database_schema.dbml docs: adds country 2026-02-24 09:35:00 +01:00
development-progress-log.md harden env handling (#481) 2026-04-08 10:40:22 +02:00
email-layout-mockup.md feat: add join confirmation and mail templating 2026-03-09 18:15:12 +01:00
email-sync.md Doc: Loader auth-independent for link checks; email-sync rule rationale 2026-02-03 16:07:13 +01:00
email-validation.md refactor: adds schemales changeset and validation constant 2026-01-19 11:43:51 +01:00
feature-roadmap.md Improve oidc only mode (#474) 2026-03-16 19:09:07 +01:00
groups-architecture.md feat: add groups to search vector 2026-02-18 12:47:23 +01:00
membership-fee-architecture.md Setting: remove unused actor in default_fee_type validation 2026-02-04 11:40:19 +01:00
membership-fee-overview.md chore: update docs 2026-01-20 14:10:41 +01:00
oidc-account-linking.md Rename OIDC strategy from :rauthy to :oidc, update callback path 2026-02-24 11:51:00 +01:00
onboarding-join-concept.md feat: prevent join requests with equal mail 2026-03-13 11:18:34 +01:00
page-permission-route-coverage.md test: add tests for approval ui 2026-03-10 23:21:57 +01:00
pdf-generation-imprintor.md feat: adds pdf export with imprintor 2026-02-11 11:47:26 +01:00
policy-bypass-vs-haspermission.md Update documentation: Remove NoActor bypass references 2026-01-24 02:21:08 +01:00
roles-and-permissions-architecture.md Fix unlink-by-omission: on_missing :ignore, test, doc, string-key 2026-02-04 14:07:39 +01:00
roles-and-permissions-implementation-plan.md Add PermissionSets for Group, MemberGroup, MembershipFeeType, MembershipFeeCycle 2026-02-03 23:52:09 +01:00
roles-and-permissions-overview.md chore: update docs 2026-01-20 14:10:41 +01:00
settings-authentication-mockup.txt feat: allow disabling registration 2026-03-13 16:40:39 +01:00
smtp-configuration-concept.md Improve member view table behavior+style, fix config settings (#493) 2026-05-08 15:04:53 +02:00
statistics-page-implementation-plan.md Update docs and guidelines for statistics feature 2026-02-12 19:35:48 +01:00
test-performance-optimization.md docs: consolidate test performance docs 2026-01-29 15:34:14 +01:00
user-resource-policies-implementation-summary.md Update documentation: Remove NoActor bypass references 2026-01-24 02:21:08 +01:00
vereinfacht-api.md Vereinfacht client: email normalization, multi-match warning, Bypass tests, doc note 2026-03-04 20:55:59 +01:00