Commit Graph

401 Commits

Author SHA1 Message Date
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
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
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
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
Alex Lion
c554d8cc4e Add DaisyUI-inspired Button component
Create a comprehensive button component based on DaisyUI design system:

- Styles: primary, secondary, neutral, accent, ghost, default
- Sizes: xs (24px), sm (32px), md (48px), lg (64px)
- Shapes: square (rounded-lg) and circle (pill)
- Support for left/right icon slots
- Disabled state with proper styling
- Icon-only button variant (icon_button)

Import component globally in claper_web.ex for use in all views/LiveViews.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 22:31:42 +00: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
374535c870 Fix custom S3 endpoint config (#199)
When using the standard AWS S3 service, the `nil` values in `s3_scheme`,
`s3_host` and `s3_port` create problems.
2025-12-30 12:53:54 +01:00
Alex Lion
6f0a4c3b9d Bump version to 2.4.1 and update CHANGELOG for upcoming release 2025-12-28 12:33:32 +01:00
Alex Lion
a5d9bef8e8 Update CHANGELOG for v.2.4.0: add breaking changes, new features, and fixes 2025-12-26 14:07:55 +01: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
ac6f28fccf Delete @tailwindcss/container-queries plugin (#191)
This is no longer needed with Tailwind 4.
2025-11-28 17:01:37 +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