Commit graph

1602 commits

Author SHA1 Message Date
263857ee26 feat(dialyzer): add typecheck stage to full CI pipelines
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is failing
2026-06-01 23:45:07 +02:00
ce57d046b9 ci(drone): run full test suite on main, tags and promote
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2026-06-01 22:59:05 +02:00
35b884e6e1 Merge pull request 'Fix OIDC Loop and seed rauthy dev setup closes #510' (#513) from rauthy_setup into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #513
2026-06-01 20:39:07 +02:00
a27425b5fb fix(auth): replace sign-out page with accessible custom LiveView
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-01 20:06:32 +02:00
ba66bc15db fix(auth): trigger RP-initiated logout at OIDC provider 2026-06-01 19:59:52 +02:00
22955bdd9e feat(rauthy): auto-seed mv OIDC client via bootstrap dir 2026-06-01 19:06:14 +02:00
c6578662d8 Merge pull request 'Add filter for date fields closes #340' (#497) from issue/mitgliederverwaltung-340 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #497
2026-06-01 14:42:13 +02:00
d36703450a
chore(ci): suppress cowlib advisory
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-01 14:05:46 +02:00
d6671daf1a feat(member-filter): add date filter sections with active-count badge and reset support
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-20 16:32:29 +02:00
e3295ab4b5 feat(member-live): wire date filters into LiveView lifecycle 2026-05-20 16:28:17 +02:00
ddd4a9a878 feat(date-filter): introduce DateFilter module with URL codec and Ash query expressions 2026-05-20 16:24:08 +02:00
143c0c5c24 chore(deps): suppress cowlib advisory and bump bandit, cowboy, plug 2026-05-20 16:16:27 +02:00
264a585d44 chore(justfile): set PATH user agnostic
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-19 22:12:45 +02:00
85e9d40f79 chore(deps): cowlib, db_connection, postgrex
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-19 19:42:24 +02:00
1e639f7e77 chore(justfile): set PATH literally so recipes work without per-shell asdf sourcing 2026-05-19 19:41:10 +02:00
fa9cd0a35b Merge pull request 'Remove the join_date future-date validation closes #482' (#495) from issue/mitgliederverwaltung-482 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #495
2026-05-13 00:45:03 +02:00
ca1600d019 chore(deps): update decimal
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-05-13 00:25:25 +02:00
8062b2fd27 Remove stale documentation of removed join_date future-date restriction
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-12 23:16:31 +02:00
fb59ef99c1 Accept future join dates: remove past-only validation and update tests 2026-05-12 23:14:44 +02:00
d549e6878c Merge pull request 'update changelog' (#494) from simon-patch-1 into main
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/promote/production Build is passing
continuous-integration/drone/push Build is passing
Reviewed-on: #494
2026-05-08 15:20:42 +02:00
efb9faf537 CHANGELOG.md aktualisiert
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-08 15:20:18 +02:00
a12888de2f Improve member view table behavior+style, fix config settings (#493)
All checks were successful
continuous-integration/drone/push Build is passing
## 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
2bb01bd201 Improve UX of join requests and fix minor bugs (#492)
All checks were successful
continuous-integration/drone/push Build is passing
## 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.

Reviewed-on: #492
Co-authored-by: Simon <s.thiessen@local-it.org>
Co-committed-by: Simon <s.thiessen@local-it.org>
2026-05-06 14:34:42 +02:00
bfa33dcae2 Merge pull request 'chore(deps): update renovate/renovate docker tag to v43.165' (#491) from renovate/renovate-renovate-43.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #491
2026-05-06 12:09:10 +02:00
5f35b64928 Merge pull request 'chore(deps): update mix dependencies' (#490) from renovate/mix-dependencies into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #490
2026-05-06 12:08:40 +02:00
Renovate Bot
92afa60387 chore(deps): update renovate/renovate docker tag to v43.165
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-06 00:07:12 +00:00
Renovate Bot
4042ecc9b5 chore(deps): update mix dependencies
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-05-06 00:06:58 +00:00
86cbf33041 Merge pull request 'chore(deps): update renovate/renovate docker tag to v43.163' (#489) from renovate/renovate-renovate-43.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #489
2026-05-05 21:33:00 +02:00
bf8e2b9303 Merge pull request 'chore(deps): update mix dependencies' (#486) from renovate/mix-dependencies into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #486
2026-05-05 21:32:07 +02:00
Renovate Bot
13e6a4374c chore(deps): update renovate/renovate docker tag to v43.163
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-05 00:06:42 +00:00
3bfb7dd09c
fix database volume path for PG 18
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-04 21:49:21 +02:00
9846e1f77e
README: fix asdf setup
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-04 21:42:14 +02:00
dd235d671c
style: fix linting
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-05-04 17:51:13 +02:00
2e727aec9c
fix: remove illegal reference and update test
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-04 17:37:59 +02:00
31816479be Merge pull request 'chore(deps): update renovate/renovate docker tag to v43.160' (#487) from renovate/renovate-renovate-43.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #487
2026-05-04 15:44:51 +02:00
e86415c7e6
Merge remote-tracking branch 'origin/main' into renovate/mix-dependencies 2026-05-04 15:41:04 +02:00
95b1bfbe18 Merge pull request 'chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.1' (#484) from renovate/ghcr.io-sebadob-rauthy-0.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #484
2026-05-04 11:41:57 +02:00
9cef87d416 Merge pull request 'chore(deps): update dependency just to v1.50.0' (#485) from renovate/asdf-tool-versions into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #485
2026-05-04 11:40:43 +02:00
Renovate Bot
e80e6afc34 chore(deps): update mix dependencies
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-04 00:15:32 +00:00
Renovate Bot
743523a52b chore(deps): update renovate/renovate docker tag to v43.160
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-02 00:15:36 +00:00
Renovate Bot
8dfe86f2a5 chore(deps): update dependency just to v1.50.0
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-01 00:14:49 +00:00
Renovate Bot
4eb044ddbf chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.1
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-01 00:14:40 +00:00
015ddf4494 Merge pull request 'chore(deps): update renovate/renovate docker tag to v43.109' (#479) from renovate/renovate-renovate-43.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #479
2026-04-08 11:41:14 +02:00
6de9b544e9 Merge pull request 'chore(deps): update dependency just to v1.49.0' (#476) from renovate/asdf-tool-versions into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #476
2026-04-08 11:38:03 +02:00
feee14c37e Merge pull request 'chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.0' (#477) from renovate/ghcr.io-sebadob-rauthy-0.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #477
2026-04-08 11:24:27 +02:00
c48ac2f432 harden env handling (#481)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #481
Co-authored-by: Simon <s.thiessen@local-it.org>
Co-committed-by: Simon <s.thiessen@local-it.org>
2026-04-08 10:40:22 +02:00
Renovate Bot
19206a00f8 chore(deps): update renovate/renovate docker tag to v43.109
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-04-08 00:15:02 +00:00
Renovate Bot
9c862ed399 chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.0
All checks were successful
continuous-integration/drone/push Build is passing
2026-04-08 00:14:57 +00:00
Renovate Bot
3be2c76c97 chore(deps): update dependency just to v1.49.0
All checks were successful
continuous-integration/drone/push Build is passing
2026-04-08 00:14:51 +00:00
bac488b47c Merge pull request 'chore(deps): update mix dependencies' (#478) from renovate/mix-dependencies into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #478
2026-04-07 16:28:47 +02:00