Commit Graph

464 Commits

Author SHA1 Message Date
Alex Lion
35a359b659 refactor: update event, user, provider, and audit log tables to use links for navigation 2026-04-06 16:53:29 +02:00
Alex Lion
8ce74c06a2 Add pagination tests for users and events in Admin module 2026-04-06 16:48:46 +02:00
Alex Lion
3fc4213b7c Merge branch 'dev' into feature/event-list-ui-rework
# Conflicts:
#	lib/claper_web/live/event_live/manage.ex
#	lib/claper_web/live/event_live/manage.html.heex
#	priv/gettext/de/LC_MESSAGES/default.po
#	priv/gettext/default.pot
#	priv/gettext/en/LC_MESSAGES/default.po
#	priv/gettext/es/LC_MESSAGES/default.po
#	priv/gettext/fr/LC_MESSAGES/default.po
#	priv/gettext/hu/LC_MESSAGES/default.po
#	priv/gettext/it/LC_MESSAGES/default.po
#	priv/gettext/lv/LC_MESSAGES/default.po
#	priv/gettext/nl/LC_MESSAGES/default.po
2026-04-06 15:14:03 +02:00
Alex Lion
c4303d0de2 Add event-scoped retrieval functions for embeds, forms, polls, posts, and quizzes 2026-04-06 15:08:20 +02:00
Alex Lion
efe6d6de51 Fix test fixtures for seeded roles 2026-04-06 14:04:15 +02:00
Alex Lion
b7548ec6f2 refactor: simplify button classes for presenter and event links in event management UI 2026-04-06 13:45:21 +02:00
Alex Lion
17fc962a2b feat: implement search functionality for users and adjust UI spacing across admin pages 2026-04-03 18:29:00 +02:00
Alex Lion
090d424131 feat: add AGENTS.md for repository guidance and development practices 2026-04-03 18:18:13 +02:00
Alex Lion
970ec0bb29 feat: polish event list UI 2026-04-03 18:17:22 +02:00
alxlion
0bc2b9239b Add audit log feature 2026-03-19 17:31:46 +00:00
Raúl R Pearson
4bbf9742c5 Add audit log (#214)
* Add audit log

* Update translation files

* Improve Audit queries

* Improve Audit.Log schema

* Make user auth audit logs async

* Relax Flop and Flop Phoenix dep specs

* Make Flop.validate!/2 call more robust

* Improve a11y and UI for audit log live view

* Improve audit_logs indexes

* Fix formatting

* Fix async_log_action and tests

* Add remote_ip

* Update translation files
2026-03-19 18:29:09 +01:00
Alex Lion
e5ea4090e1 refactor: clean up HTML structure and improve test selectors for event components 2026-03-13 20:09:42 +01:00
Alex Lion
92f77b844f feat: rework event list UI with drawer integration and improved action buttons 2026-03-13 18:54:17 +01:00
Alex Lion
6c2e3ed8ea feat: enhance user experience with avatar customization and modal improvements 2026-03-13 18:37:13 +01:00
Alex Lion
4a1af7d341 Update changelog with oidc fix 2026-03-05 18:40:01 +01:00
Alexandre Lion
60821dccd8 Fix/OIDC authelia compatibility (#216)
* Fix OIDC compatibility with self-hosted providers like Authelia

* Refactor OIDC authentication to enhance compatibility with Authelia and Entra ID

* Improve logging format and enhance code readability in OIDC authentication
2026-03-05 18:36:12 +01:00
Alex Lion
3df8d5c3dd Fix crash when broadcasting events to leaders with unregistered emails 2026-03-05 18:34:28 +01:00
Alex Lion
ff62056842 Rework event management UI by removing the floating action bar and adding action buttons for polls, forms, quizzes, and embeds 2026-02-26 19:16:57 +01:00
Alex Lion
e42989cf72 Merge branch 'dev' into feature/event-list-ui-rework 2026-02-26 18:48:35 +01:00
Alex Lion
f2fd8e7535 Fix quiz submission to handle duplicate options and update average score in real-time 2026-02-25 10:22:20 +01:00
Alex Lion
1f052c274d Fix date picker destroy crash when pickr is uninitialized 2026-02-24 10:41:31 +01:00
Alex Lion
0382d2c2f3 Fix date picker crash for unsupported browser locales 2026-02-24 10:38:42 +01:00
Alex Lion
91718f0b43 Add admin settings, global config, and improve transcription feature 2026-02-22 09:36:34 +00:00
Alex Lion
d9b52b13c4 Add i18n for transcription feature across 7 locales 2026-02-20 14:13:16 +00:00
Alex Lion
1c31368121 Add real-time presenter transcription via Mistral Voxtral Mini API
Stream presenter audio over Phoenix Channel, transcribe with Voxtral,
and display subtitles on presenter and attendee views. Configurable
via manage view toggles and MISTRAL_API_KEY env var.
2026-02-20 10:02:31 +00:00
Alex Lion
f5537223d7 Remove tour guide and preview popup 2026-02-17 17:20:38 +01:00
Alex Lion
1598025496 Merge branch 'dev' into feature/event-list-ui-rework 2026-02-17 17:00:51 +01:00
Alex Lion
5ea07f077d Refactor code structure for improved readability and maintainability 2026-02-17 16:54:41 +01:00
Alex Lion
71f5542dcb Refactor ManagerSettingsComponent to use separate components for interaction, presentation, and attendee options 2026-02-17 14:54:09 +01:00
Alex Lion
2a1d990ad0 Improve interaction and attendees submissions panes 2026-02-13 18:42:09 +01:00
Alex Lion
d0e88e136b Improve preview section 2026-02-12 14:38:57 +01:00
Alex Lion
d328ea1b0e Refactor ManageSlideSidebarComponent and update header styles for improved UI consistency 2026-02-10 17:22:35 +01:00
Alex Lion
b96b7dd68d Bump version to 2.5.0 in CHANGELOG and mix.exs 2026-02-10 09:34:49 +01:00
Alex Lion
c00958e97e Add ManageSlideSidebarComponent and refactor ManagerSettingsComponent
- Introduced ManageSlideSidebarComponent for displaying slide thumbnails with click functionality to navigate to the current page.
- Refactored ManagerSettingsComponent to improve layout and organization, including:
  - Consolidated toggle options into a reusable toggle_row component for better maintainability.
  - Enhanced the presentation and attendees settings sections with clearer labels and improved styling.
  - Removed redundant code and improved readability.
2026-02-09 19:20:08 +01:00
Alexandre Lion
910627f4ba Fix form submission crash for anonymous attendees (#210)
The FormSubmit changeset required user_id, but anonymous attendees only
have attendee_identifier. This caused a CaseClauseError since the error
tuple was unhandled. Now the changeset accepts either user_id or
attendee_identifier, and error cases are properly handled.
2026-02-09 19:19:05 +01:00
Alexandre Lion
8f46837900 Fix critical security vulnerabilities (#211)
* Fix critical security vulnerabilities

Address 5 critical findings from security audit:
- Sanitize custom embed HTML to prevent stored XSS (strip all non-iframe content)
- Escape URLs in format_body/1 to prevent reflected XSS via post messages
- Add authorization check to form export endpoint (IDOR fix)
- Replace String.to_atom/1 on user input with explicit whitelists (8 locations)
- Add IP-based rate limiting on authentication endpoints via Hammer

* Start rate limiter before endpoint in supervision tree

* Update CHANGELOG
2026-02-09 19:18:14 +01:00
Alex Lion
b5d875ac90 Add processing overlay and enhance event card UI with improved status indicators 2026-02-04 15:32:00 +01:00
Alex Lion
fe5ae576a0 Revamp event join page with gradient background, floating shapes, and enhanced UI elements for improved user experience 2026-02-02 20:00:59 +01:00
Alex Lion
8ace57d2a8 Refactor buttons to use DaisyUI system and add gradient style
- Add custom btn-gradient utility for cyan-to-purple gradient buttons
- Update all buttons to use DaisyUI classes (btn-primary, btn-outline, btn-secondary, etc.)
- Apply gradient style to "Create an event" and "Join" buttons only
- Increase grid card height to h-96 and adjust panel position for better content visibility

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 18:30:58 +00:00
Alex Lion
2d680f0838 Update event list IDs for active tab and add phx-update for dynamic rendering 2026-02-01 19:25:37 +01:00
Alex Lion
e30948e064 Enhance event card UI with dropdown menu and status badges for better user interaction 2026-02-01 19:13:07 +01:00
Alex Lion
eb5f3fb18f Refactor event card component to support mobile view and improve rendering logic 2026-01-24 17:15:57 +01:00
Alex Lion
46971719d6 Implement view mode persistence with localStorage and update event handling 2026-01-24 16:24:58 +01:00
Alex Lion
0d8d563282 Refactor styles and components for consistency
- Updated background styles in event join page to a solid color.
- Simplified button styles across various components, replacing complex gradient backgrounds with utility classes.
- Adjusted layout and spacing in profile dropdown and user menu for improved accessibility and readability.
- Enhanced alert and badge components with new styling classes for better visual consistency.
- Refined tab component styles for better alignment and spacing.
- Cleaned up button component attributes for clarity and maintainability.
- Improved test readability by formatting multiline statements.
2026-01-23 23:45:16 +01:00
Alex Lion
ce6db03065 Use Tabs component in event list with disabled state support
- Add gray color palette to theme.css
- Add disabled attribute support to Tabs component
- Refactor event list filter tabs to use the Tabs component

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:40:35 +00:00
Alex Lion
7d98198ae5 Update CHANGELOG for v.2.4.1: add fixes and improvements 2026-01-23 12:35:51 +01:00
Raúl R Pearson
767f0ddfd5 Handle slides for empty presentation (#200) 2026-01-23 12:11:09 +01:00
Raúl R Pearson
93229e8fbd Improve SMTP config (#197)
Drops Mua in favour of the SMTP Swoosh adapter and adjusts the config
accordingly. The lock file has also been cleaned up by running
`mix deps.unlock --unused`.
2026-01-23 12:08:30 +01:00
Alex Lion
97292775e4 Add DaisyUI-inspired Tabs component
Create tabs component based on DaisyUI design system:

- Styles: bordered (underline), lifted (raised active), boxed (pill)
- Support for slot-based tab items with active state
- Individual tab_item component for more control
- Accessible with role="tablist" and aria-selected
- Support for phx-click handlers on tabs

Import component globally in claper_web.ex.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:10:52 +00:00
Alex Lion
8caf8872a2 Add DaisyUI-inspired Badge component
Create badge component based on DaisyUI design system:

- Types: contained (filled), outlined (border only)
- Styles: default, neutral, primary, secondary, accent, ghost
- Sizes: xs (12px), sm (12px), md (14px), lg (16px)
- Rounded corners with appropriate padding per size

Import component globally in claper_web.ex.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:04:49 +00:00