Commit graph

1410 commits

Author SHA1 Message Date
5ba05f4c04 Merge pull request 'Adds more consistency in various UX topics closes #447' (#448) from feat/447_concistency into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #448
2026-02-25 17:34:10 +01:00
c7c082b867 Merge branch 'main' into feat/447_concistency
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-25 16:52:59 +01:00
0f12befd11 style: consistent back button and some translations
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-25 16:25:13 +01:00
91cf7cca6a feat: conistent danger zone delete flow
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-25 15:09:37 +01:00
e5a6003ace feat: sticky memberstable header
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-25 14:16:43 +01:00
49fd2181a7 style: highlight selected table and add tooltip
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-25 13:16:27 +01:00
02af136fd9 feat: restyle tabs and move delete to edit view 2026-02-25 10:33:30 +01:00
ff9f98f8e7 style: consitent flash messages 2026-02-25 09:45:10 +01:00
b7c93f19cb refactor: use core components 2026-02-25 09:17:32 +01:00
f0be98316c docs: adds design guidelines 2026-02-25 08:43:54 +01:00
d614ad2219 Merge pull request 'Refinex CSV import and PDf export closes #299 and #433' (#446) from feat/299_plz into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #446
2026-02-24 16:32:31 +01:00
bfc078d5aa Merge branch 'main' into feat/299_plz
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-24 16:02:56 +01:00
c62b105518 test: updated
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-24 16:00:46 +01:00
d060486d0d Merge pull request 'OIDC-only sign-in, Vereinfacht connection test, locale defaults, and settings/docs cleanup' (#445) from feature/settings into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #445
2026-02-24 15:51:49 +01:00
eec1451743
Fix DE translations: Groups claim, Member fields, Save OIDC Settings; remove fuzzy
Some checks reported errors
continuous-integration/drone/push Build was killed
2026-02-24 15:50:47 +01:00
89a48cbaf7
Nitpick: add missing newline at EOF in settings resource_snapshots JSON files
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-02-24 15:42:27 +01:00
fae1804fb1
Code review: SignInLive locale fallback, single root + id, CSS scoped to #sign-in-page, remove or-hack, refresh oidc_configured after save, tests assert English only 2026-02-24 15:42:16 +01:00
c8d7dd3e55 Merge branch 'main' into feat/299_plz
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is failing
2026-02-24 15:38:50 +01:00
6417958ccc i18n: Update translations 2026-02-24 15:38:20 +01:00
aaa897c8dc style: restyle PDF export 2026-02-24 15:27:12 +01:00
951d01dc4d
Tests: accept DE or EN in auth controller sign-in and error assertions
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-24 15:13:24 +01:00
7af65d997b
Gettext: add DE/EN for OIDC-only labels and auth divider (or/oder) 2026-02-24 15:13:21 +01:00
2d1d1c62dc
Docs and .env.example: document OIDC_ONLY 2026-02-24 15:13:17 +01:00
249fd12db0
Dev: comment out OIDC defaults so sign-in hides SSO when not configured 2026-02-24 15:13:13 +01:00
3a98f70ba5
Locale: default German in dev/prod, English in test; validate locale in LocaleController 2026-02-24 15:13:10 +01:00
2cab4b0de4
Sign-in: custom SignInLive, OIDC-only mode and hide OIDC when not configured, locale divider or/oder 2026-02-24 15:13:05 +01:00
3f73a36076
GlobalSettings: oidc_only checkbox, ENV merge for OIDC, disable when OIDC not configured 2026-02-24 15:13:01 +01:00
c49758fc46
Secrets: return MissingSecret when OIDC values nil to avoid crashes 2026-02-24 15:12:58 +01:00
4b31578f6c
Config: oidc_configured?/0, oidc_only?/0, OIDC_ONLY ENV and settings fallback 2026-02-24 15:12:53 +01:00
e775fe118b
Setting: add oidc_only boolean attribute (ENV + DB) 2026-02-24 15:12:50 +01:00
adb44241d9
Add migration: oidc_only boolean to settings table 2026-02-24 15:12:45 +01:00
8fd2ee067e style: udate csv import 2026-02-24 15:07:34 +01:00
62b37b9aa2
feat: Datafields page, merge fee types into membership_fee_settings, sidebar
- Add /admin/datafields (DatafieldsLive) for member and custom field config
- Remove Memberdata block from GlobalSettingsLive
- Router: drop /membership_fee_types, add new_fee_type and edit_fee_type under membership_fee_settings
- MembershipFeeSettingsLive: fee types table, collapsible examples; Index links updated
- PagePaths: admin_datafields, admin_import; remove membership_fee_types
- Sidebar: order and labels (Basic settings, Datafields, Membership fee settings, Import, Users, Roles)
- Gettext: German translations for sidebar and OIDC
- Tests: datafields and fee routes, permission and form tests updated
2026-02-24 13:58:38 +01:00
8edbbac95f
feat: OIDC configuration in global Settings (ENV or DB)
- Add oidc_* attributes to Setting, migration and Config helpers
- Secrets and OidcRoleSyncConfig read from Config (ENV overrides DB)
- GlobalSettingsLive: OIDC section with disabled fields when ENV set
- OIDC role sync tests use DataCase for DB access
2026-02-24 13:58:24 +01:00
f29bbb02a2
feat: add Vereinfacht connection test button to settings 2026-02-24 13:09:34 +01:00
fca0194a7d Merge pull request 'feat: rename OIDC strategy, fix sidebar, UI improvements closes #271' (#444) from feat/ux_polishment into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #444
2026-02-24 13:05:10 +01:00
623543b7bd
fix: add missing postal_code in seeds
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
postal_code is a Vereinfacht-required field. When Vereinfacht is
configured, seeds failed for members without postal_code.
2026-02-24 12:06:56 +01:00
d95d4dc737
Fix gettext msgid for OIDC sign-in button after strategy rename
All checks were successful
continuous-integration/drone/push Build is passing
Phoenix.Naming.humanize(:oidc) = "Oidc", so the generated msgid is
"Sign in with Oidc" (previously "Sign in with Rauthy" for :rauthy).
Update all .po/.pot files so the "Single Sign On" translation matches.
2026-02-24 11:51:01 +01:00
12419c5237
docs: fix remaining rauthy references after oidc rename
Update action names (register_with_rauthy → register_with_oidc,
sign_in_with_rauthy → sign_in_with_oidc) and strategy name
(:rauthy → :oidc) in docs, code comments and guidelines.
2026-02-24 11:51:01 +01:00
29f262e1a1
fix: use pointer-events-none instead of disabled for active status button
Replace disabled attribute with pointer-events-none so the active
status button keeps its color (btn-success/warning/error btn-active)
instead of being grayed out by the browser's disabled styling.
2026-02-24 11:51:01 +01:00
2b8d898429
style: match cycle status buttons to filter button pattern
All three status buttons (Paid/Suspended/Unpaid) are now always
visible. The active status is highlighted with its color (btn-active),
inactive buttons are neutral gray - identical to the filter buttons.
2026-02-24 11:51:00 +01:00
76223b04e9
style: use btn-outline for all cycle status action buttons
Make Paid, Suspended and Unpaid buttons consistent by applying
btn-outline to all three, matching the outlined style pattern.
2026-02-24 11:51:00 +01:00
bee4a7db66
fix: remove debug console.log from SidebarState hook
Remove the temporary console.log statement that was added during
sidebar state debugging.
2026-02-24 11:51:00 +01:00
339d37937a
Rename OIDC strategy from :rauthy to :oidc, update callback path
- Rename AshAuthentication strategy from :oidc :rauthy to :oidc :oidc;
  generated actions are now register_with_oidc / sign_in_with_oidc.
- Update config keys (:rauthy → :oidc) in dev.exs and runtime.exs.
- Update default_redirect_uri to /auth/user/oidc/callback everywhere.
- Rename Mv.Accounts helper functions accordingly.
- Update Mv.Secrets, AuthController, link_oidc_account_live and all tests.
- Update docker-compose.prod.yml, .env.example, README and docs.

IMPORTANT: OIDC providers must be updated to use the new redirect URI
/auth/user/oidc/callback instead of /auth/user/rauthy/callback.
2026-02-24 11:51:00 +01:00
c637b6b84f
Fix sidebar dropdown direction and accidental mobile drawer opening
- CSS: When sidebar is collapsed, open user-menu dropdown to the right
  (left: 0, right: auto) via data-sidebar-expanded="false" selector.
- JS: Guard drawerToggle change handler – prevent mobile drawer from
  opening on desktop viewports (window.innerWidth >= 1024).
- HTML: Add phx-update="ignore" to mobile-drawer checkbox to prevent
  LiveView from resetting its checked state on DOM patches.
2026-02-24 11:50:59 +01:00
97fcae3e9d
Translate "Sign in with Rauthy" to "Single Sign On" via Gettext
Add manual msgid/msgstr entries in auth.po (de + en) and auth.pot for the
dynamically interpolated OAuth2 sign-in button label.
2026-02-24 11:50:59 +01:00
2d01c70c16
Group cycle status buttons with DaisyUI join component
Wrap Paid/Suspended/Unpaid buttons in a <div class="join"> and add
join-item to each button. Delete button stays separate next to the group.
2026-02-24 11:50:59 +01:00
0a59cf5c33
Sort custom fields by name as default in read action
Add `prepare build(sort: [name: :asc])` to the primary read action of
CustomField. Prevents order changes when toggling the `required` flag.
2026-02-24 11:50:59 +01:00
9a7608f9a1 Merge branch 'main' into feat/299_plz
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-24 11:44:19 +01:00
63040afee7 Merge branch 'main' into feat/299_plz
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-24 10:40:26 +01:00