Commit Graph

196 Commits

Author SHA1 Message Date
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
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
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
Raúl R Pearson
767f0ddfd5 Handle slides for empty presentation (#200) 2026-01-23 12:11:09 +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
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
c8bf32542f feat: add hu and lv locales to airpicker and moment 2025-08-24 09:55:09 +02:00
Alex Lion
d3c45533f0 fix: spacing in settings 2025-08-09 19:29:20 +02:00
Chayan Das
137d5f3de1 add scroll to the setting drawer (#168)
Signed-off-by: Chayan Das <01chayandas@gmail.com>
2025-08-09 16:33:43 +02:00
Aryel780
9b4cda357b fix: Scrollbar not showing in event manager when no presentation file (#162) 2025-07-16 17:13:00 +02:00
Alex Lion
983552772a feat: add configurable language support via LANGUAGES environment variable 2025-07-11 14:46:33 +01:00
Alex Lion
c92edbb885 chore: refactor toggle interaction modal 2025-07-07 23:17:02 +02:00
Alex Lion
afb989485e fix: avoid quick event empty name 2025-07-07 23:16:22 +02:00
Alex Lion
9c1c3d01c1 deps: upgrade to tailwind 4+
commit e5905358dc20cea2fcc41b3580c4985e8ac53217
Author: Alex Lion <dev@alexandrelion.com>
Date:   Mon Jul 7 22:56:14 2025 +0200

    chore: update changelog

commit 2696a29ffdc6deb930b8ffb6f92cae21b176e853
Author: Alex Lion <dev@alexandrelion.com>
Date:   Mon Jul 7 22:52:11 2025 +0200

    Change js file to css and migrate css classes

commit 19093360ed2404f956d799c0a9ec1656c9fa1a74
Author: Alex Lion <dev@alexandrelion.com>
Date:   Sat Jul 5 19:28:34 2025 +0200

    chore: upgrade to tailwind 4+

commit 75312e8b3d3c9fd25137189e7020994640a0f901
Author: Alex Lion <dev@alexandrelion.com>
Date:   Thu Jul 3 16:59:58 2025 +0200

    chore: remove useless files
2025-07-07 23:00:30 +02:00
Alex Lion
b61c82fe55 chore: change gettext backend syntax 2025-07-03 15:38:53 +02:00
Alex Lion
827c6c77da deps: upgrade to live view 1.0 2025-07-03 14:55:23 +02:00