102 Commits

Author SHA1 Message Date
Alex Lion
817aa22c06 Detect ImageMagick and add to Docker images 2026-06-26 11:20:39 +02:00
Alex Lion
abae1c7e5f Add interaction drag-and-drop and move API 2026-06-12 23:22:52 +02:00
Alex Lion
7a424cbb93 Add slide reordering with drag-and-drop 2026-06-12 22:53:24 +02:00
Alex Lion
dd5dd82daa Squashed commit of the following:
commit 7db48f592f
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri Jun 5 10:16:10 2026 +0200

    Update changelog

commit 3039b70edc
Author: Peter Rundqvist <47314226+pete1854@users.noreply.github.com>
Date:   Fri Jun 5 10:11:07 2026 +0200

    Add swedish translation (#228)

    * Initial translation

    * Initial error msg translation

    * Fixes suggested by Copilot.

    * Fixed spacing before ! and ?

    * Added missing provider translation.

    * Upddated translation for "Unpin"

    * Added missing Content-Type header.

commit d18e5d7c32
Author: fgallarday <fgallarday@users.noreply.github.com>
Date:   Fri Jun 5 03:07:25 2026 -0500

    Add PageUp and PageDown slide navigation support (#227)

commit 24e18c2764
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri Jun 5 10:06:54 2026 +0200

    Bump version to 2.5.2

commit d5df9a73f8
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri May 8 22:42:04 2026 +0200

    Fix form submissions losing values when field names contain spaces or non-word characters

commit 57596952d4
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri May 8 14:50:33 2026 +0200

    Update package-lock.json: add asset name, upgrade dependencies, and remove unused packages

commit e246530c23
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri May 8 14:34:53 2026 +0200

    Bump version to 2.5.1

commit 534d915782
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri May 8 10:55:38 2026 +0200

    Handle Ecto.NoResultsError in event retrieval and redirect with error message

commit b762e21325
Author: Alex Lion <dev@alexandrelion.com>
Date:   Fri May 8 10:47:01 2026 +0200

    Fix crash on event manager pages when an event has multiple activity leaders

commit 153cadb42b
Author: alxlion <dev@alexandrelion.com>
Date:   Wed Apr 29 13:42:05 2026 +0000

    Fix presentation views without slide count

commit 3cfb3cab7f
Author: alxlion <dev@alexandrelion.com>
Date:   Wed Apr 29 13:16:48 2026 +0000

    Fix event code normalization validation
2026-06-05 10:24:46 +02:00
Alex Lion
f3904095e0 Add transcription features and improve stats reporting 2026-06-01 18:35:37 +02:00
Alex Lion
20abccf384 Merge branch 'feature/real-time-transcription' into v3
# Conflicts:
#	lib/claper_web/live/admin_live/event_live.ex
#	lib/claper_web/live/event_live/manage.ex
#	lib/claper_web/live/event_live/manage.html.heex
#	lib/claper_web/live/event_live/manager_settings_component.ex
#	lib/claper_web/router.ex
#	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-28 17:50:19 +02:00
Alex Lion
d0830a3c5b Add support for thumbnail regeneration in event management 2026-04-15 08:04:27 +02:00
Alex Lion
6ff6be7708 ui: Rebuild signup flow 2026-04-15 07:21:54 +02:00
Alex Lion
8a9e31f68b Add audit logs table for user admin view 2026-04-08 17:36:15 +02:00
Alex Lion
f03e57a236 refactor: simplify percentage calculation in get_dashboard_stats function 2026-04-08 17:34:48 +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
17fc962a2b feat: implement search functionality for users and adjust UI spacing across admin pages 2026-04-03 18:29:00 +02: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
3df8d5c3dd Fix crash when broadcasting events to leaders with unregistered emails 2026-03-05 18:34:28 +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
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
1598025496 Merge branch 'dev' into feature/event-list-ui-rework 2026-02-17 17:00:51 +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
Raúl R Pearson
767f0ddfd5 Handle slides for empty presentation (#200) 2026-01-23 12:11:09 +01:00
Alex Lion
604b029b3d Rework event list UI with updated design system
- Update theme colors: primary (Claper Purple) and secondary (Navy Purple)
- Redesign event card component with improved layout and styling
- Refactor event list page with cleaner structure
- Add presentation count queries in Events and Presentations modules
- Update profile dropdown template
- Fix related tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 22:25:44 +00:00
Raúl R Pearson
c8d87196ba Left join leader in get_managed_event!/2 (#194) 2025-12-06 11:32:41 +01:00
Raúl R Pearson
5cf4759f05 Make S3 service configurable (#190) 2025-12-06 11:31:28 +01:00
Raúl R Pearson
6dc618151a Enable optional form fields (#193)
* Enable optional form fields

* Suffix optional text and email component labels

* Update gettext files
2025-12-05 12:31:00 +01:00
Raúl R Pearson
3b511bcc6e Improve event live listing (#185)
* Expand user events PubSub

* Improve updates in events LiveView
2025-12-04 15:00:23 +01:00
Raúl R Pearson
10a5392d56 Set PollOpt preload order (#187) 2025-11-20 13:37:18 +01:00
Alexandre Lion
5853bc34d8 Add admin panel and user roles (#189) 2025-11-20 10:44:06 +01:00
Dimitrije Dimitrijevic
16bcce1a60 Fix duplicate key quiz when duplicate (#182)
* add quiz_responses association to user

* bugfix possible duplicate key entries in multi when adding quiz responses

* remove user_id from casting changeset in QuizResponse

* pass whole user to submit_quiz function

* update test to match changes

* simplify submit_quiz/3 function for inserting quiz response

---------

Co-authored-by: Dimitrije Dimitrijevic <me@dimitrijedimitrijevic.com>
2025-11-04 18:46:29 +01:00
Raúl R Pearson
fc667bb478 Hideable presenter attendee count (#183) 2025-10-28 18:34:49 +01:00
Raúl R Pearson
03feb9a901 Fix email change confirmation (#172)
* Update translation files

I run `mix gettext.extract` and `mix gettext.merge priv/gettext`
as it seems that the files were somewhat outdated.

* Fix email change confirmation

Send the confirmation email to the new address

* Tweak email change confirmation email

* Run ./dev.sh format
2025-09-10 08:16:55 +02:00
Alex Lion
afb989485e fix: avoid quick event empty name 2025-07-07 23:16:22 +02:00
Alex Lion
b61c82fe55 chore: change gettext backend syntax 2025-07-03 15:38:53 +02:00
Alex Lion
b4b5cfb756 add length validation for event name and code fields 2025-05-30 17:20:11 +02:00
Alex Lion
89a3eced83 Improve quiz export 2025-01-02 21:27:36 +01:00
Alex Lion
f3a36163b6 Add soft delete user account 2024-12-28 13:13:55 -05:00
Alex Lion
13a7ad3531 Fix event creation 2024-12-26 12:40:20 -05:00
Alex Lion
f7dbb13a49 Fix tests 2024-12-25 10:40:03 -05:00
Alex Lion
4e943a17f6 Fix format 2024-12-25 10:30:12 -05:00
Alex Lion
5ac1c8aed2 Add quiz created event 2024-12-25 10:02:07 -05:00
Alex Lion
666299525f Fix warning 2024-12-25 03:00:19 -05:00
Alex Lion
d89d95de5a Fix format 2024-12-23 11:10:35 -05:00
Alex Lion
a2227d0ccf Fix create lti quiz only when needed 2024-12-23 11:02:39 -05:00
Alex Lion
5857b85384 Fix format 2024-12-22 09:58:59 -05:00
Alex Lion
aa76c96f59 Add mailer job for invitation 2024-12-22 09:46:14 -05:00