Commit graph

1706 commits

Author SHA1 Message Date
ef70dd2935 refactor(settings): unify JSONB single-field update between member-field changes 2026-06-16 15:51:07 +02:00
e66fb5d3d9 refactor(email): share build/deliver skeleton across join emails 2026-06-16 15:51:07 +02:00
1adf6aa664 refactor(web): extract shared current_actor controller helper 2026-06-16 15:51:07 +02:00
561779e704 refactor(web): share member-dropdown keyboard navigation between LiveViews 2026-06-16 15:51:07 +02:00
164826d3aa refactor(authorization): unify own_data read check across linked resources 2026-06-16 15:51:07 +02:00
924dbd3bb8 refactor(oidc): drop OidcRoleSyncConfig passthrough and use Mv.Config directly 2026-06-16 15:51:07 +02:00
c4a695329c refactor(member-export): remove dead fetch/2 export chain 2026-06-16 15:51:07 +02:00
a9932776cc chore(accounts): remove orphaned UserIdentity resource file 2026-06-16 15:51:07 +02:00
2a3a152b13 perf(member): drop per-render timing log on the member-list hot path 2026-06-16 15:51:07 +02:00
7f9d9646a5 fix(auth): boot AshAuthentication children under the :mv otp_app 2026-06-16 15:51:07 +02:00
39df300735 Merge pull request 'release v1.3.0' (#542) from release-1.3.0 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #542
2026-06-16 10:47:10 +02:00
18639e8c67
chore: release v1.3.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-16 10:02:02 +02:00
c3a3de23a8 feat(justfile): add lean server recipe (db + phx.server, no mailcrab/rauthy)
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-15 23:57:39 +02:00
9aa5bdb6a7 Merge pull request 'Cleanup of the docs closes #507' (#530) from issue/mitgliederverwaltung-507 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #530
2026-06-15 22:00:43 +02:00
43f463997d docs: add a documentation index and fix dangling references
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-15 21:53:36 +02:00
6fddb5285b docs(project): condense progress log, roadmap and test/infra docs 2026-06-15 21:53:36 +02:00
3797bc8fae docs(ui): condense and translate email, UI and PDF docs to English 2026-06-15 21:53:36 +02:00
0b36a43edc docs(db): refresh, condense and align database and groups docs 2026-06-15 21:53:36 +02:00
5d8f173529 docs(membership): condense membership, onboarding and import docs and align with the code 2026-06-15 21:53:36 +02:00
8d783276d0 docs(roles): condense roles/permissions/auth docs and align with the code 2026-06-15 21:53:36 +02:00
07503fc6fe Merge pull request 'parallel dev isolation' (#529) from feat/parallel-dev-isolation into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #529
2026-06-15 18:03:00 +02:00
2363ef69e3 feat(justfile): add start-test-db recipe for an isolated test database
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build was killed
2026-06-15 17:48:53 +02:00
c332a4dde2 feat(dialyzer): allow overriding PLT paths via PLT_CORE_PATH/PLT_LOCAL_PATH 2026-06-15 17:48:53 +02:00
0a53e11cc4 feat(config): read database host port from DB_PORT in dev and test 2026-06-15 17:48:53 +02:00
365ff10fd8 feat(docker): parametrize host ports and project name for parallel dev stacks
Several isolated stacks can now coexist: host ports come from DB_PORT/RAUTHY_PORT/MAILCRAB_PORT (defaulting to today's values) and the container namespace from COMPOSE_PROJECT_NAME. Drops the fixed rauthy-dev container_name that blocked a second stack.
2026-06-15 17:48:53 +02:00
19377be909 Merge pull request 'Fix sort by custom date closes #496' (#528) from issue/mitgliederverwaltung-496 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #528
2026-06-15 16:34:40 +02:00
346291cc0d docs(changelog): record custom-date sorting fix under Unreleased
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-06-15 16:18:42 +02:00
2eda661e37 fix(export): order member export chronologically by custom :date fields 2026-06-15 16:18:13 +02:00
6d4629ef5b fix(member): order member list chronologically by custom :date fields 2026-06-15 16:14:14 +02:00
1aaa0ece5d fix(membership): add chronological sort key for custom :date fields
Custom :date values are real Date structs; sorting them by Erlang term
order compares day, then month, then year, so the member list ordered
them like day-first text instead of chronologically. Derive the sort key
from a single shared helper that maps a date to its Gregorian day count,
leaving the other value types at their already-correct natural order.
2026-06-15 16:10:14 +02:00
d6c322fd79 Merge pull request 'Collection of small UI Improvements closes #511' (#527) from issue/mitgliederverwaltung-511 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #527
2026-06-15 15:44:58 +02:00
0745eece25 docs(changelog): record member UI improvements under Unreleased
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-15 15:10:44 +02:00
856ea4279c refactor(member): share Ash error formatting across member-show components 2026-06-15 15:10:44 +02:00
24f67bea80 feat(member): keep text selection in the overview table from opening the member 2026-06-15 15:10:44 +02:00
be57dcfce8 fix(web): prevent sortable-header tooltips from being clipped by the sticky header 2026-06-15 15:10:44 +02:00
035edae522 feat(web): add tooltips to icon-only action buttons 2026-06-15 15:10:44 +02:00
bec49f0771 feat(settings): explain that OIDC enables single sign-on 2026-06-15 15:10:44 +02:00
3dc3a2b8ef feat(member): deactivate and reactivate members via an exit-date dialog 2026-06-15 15:10:44 +02:00
bcab2e21c4 Merge pull request 'fix publiccode.yml' (#526) from fix-opencode into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #526
2026-06-15 13:37:04 +02:00
6f62ef8bb9
fix: revert change to publiccode.yml
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-15 13:36:30 +02:00
b026cf6d94 Merge pull request 'Fix bulk action dropdown width' (#525) from fix-bulk-action-width into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #525
2026-06-08 12:15:16 +02:00
62c6970bf0 Merge pull request 'chore(deps): update mix dependencies' (#517) from renovate/mix-dependencies into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #517
2026-06-08 12:06:13 +02:00
2a11bfe60a chore: pin nodejs for browser-test tooling; ignore /node_modules
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-08 11:53:27 +02:00
9b7368d0a3
fix: width of bulk action
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-08 11:44:26 +02:00
72cf85e5cb
Merge branch 'main' into renovate/mix-dependencies
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-08 11:25:57 +02:00
7769fd53dc Merge pull request 'Collect Bulk Actions in Dropdown' (#524) from issue/mitgliederverwaltung-420 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #524
2026-06-04 17:38:25 +02:00
6a6099659b Merge branch 'main' into issue/mitgliederverwaltung-420
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
Integrate current main (CSV import, GDPR join-form description, dependency and
tooling bumps) into the bulk-actions-dropdown feature. Gettext catalogs were
reconciled with mix gettext.extract --merge; the CHANGELOG Unreleased entries
of both sides were combined.
2026-06-04 16:56:27 +02:00
3f44710a6b docs(changelog): record bulk-actions dropdown under Unreleased 2026-06-04 16:44:38 +02:00
c983c8d5bb feat(member): collect member-overview bulk actions into a single dropdown
The growing row of bulk-action buttons above the member overview is replaced
by one "Aktionen" dropdown holding all four actions (open in email program,
copy addresses, export CSV, export PDF). With no selection the actions operate
on all — or the currently filtered — members; the email-program action is
disabled past a recipient cap, because the browser cannot reliably hand a very
long mailto over to the mail client. The trigger shows the active scope as a
badge: an emphasized count when members are selected, a muted "alle"/"gefiltert"
otherwise.
2026-06-04 16:44:13 +02:00
8e5dd7e4c6 feat(web): add chevron affordance and scope-badge slot to dropdown triggers
Dropdown openers were visually indistinguishable from ordinary buttons. A
trailing chevron now marks every dropdown trigger — both the shared
dropdown_menu component and the bespoke member-filter trigger — and an
optional badge slot lets a trigger show a status indicator beside its label.
2026-06-04 16:40:05 +02:00