From b4b5cfb75691390a28cb7cf78a1db0256e454a4a Mon Sep 17 00:00:00 2001 From: Alex Lion Date: Fri, 30 May 2025 17:20:11 +0200 Subject: [PATCH] add length validation for event name and code fields --- CHANGELOG.md | 2 ++ lib/claper/events/event.ex | 4 ++++ .../live/event_live/event_form_component.html.heex | 2 ++ lib/claper_web/views/components/input_component.ex | 6 ++++++ 4 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 283c360..b5fc833 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - Fix settings panel on tablet-sized screens (#121) - Fix question counting for quiz component - Fix embed deletion bad keys for attendees +- Fix event name length validation (min: 5, max: 50) +- Fix event code length validation (min: 5, max: 10) ### v.2.3.1 diff --git a/lib/claper/events/event.ex b/lib/claper/events/event.ex index 2f27ff3..d557346 100644 --- a/lib/claper/events/event.ex +++ b/lib/claper/events/event.ex @@ -58,6 +58,8 @@ defmodule Claper.Events.Event do |> cast_assoc(:presentation_file) |> cast_assoc(:leaders) |> validate_required([:code, :started_at]) + |> validate_length(:code, min: 5, max: 10) + |> validate_length(:name, min: 5, max: 50) |> downcase_code |> put_change(:uuid, Ecto.UUID.generate()) end @@ -76,6 +78,8 @@ defmodule Claper.Events.Event do |> cast_assoc(:presentation_file) |> cast_assoc(:leaders) |> validate_required([:code, :started_at]) + |> validate_length(:code, min: 5, max: 10) + |> validate_length(:name, min: 5, max: 50) |> downcase_code end diff --git a/lib/claper_web/live/event_live/event_form_component.html.heex b/lib/claper_web/live/event_live/event_form_component.html.heex index a55bef9..740ab5c 100644 --- a/lib/claper_web/live/event_live/event_form_component.html.heex +++ b/lib/claper_web/live/event_live/event_form_component.html.heex @@ -271,6 +271,8 @@ name={gettext("Name of your event")} autofocus="true" required="true" + minlength="5" + maxlength="50" /> diff --git a/lib/claper_web/views/components/input_component.ex b/lib/claper_web/views/components/input_component.ex index f67d4b9..9994328 100644 --- a/lib/claper_web/views/components/input_component.ex +++ b/lib/claper_web/views/components/input_component.ex @@ -14,6 +14,8 @@ defmodule ClaperWeb.Component.Input do |> assign_new(:labelClass, fn -> "text-gray-700" end) |> assign_new(:fieldClass, fn -> "bg-white" end) |> assign_new(:value, fn -> input_value(assigns.form, assigns.key) end) + |> assign_new(:minlength, fn -> nil end) + |> assign_new(:maxlength, fn -> nil end) ~H"""
@@ -26,6 +28,8 @@ defmodule ClaperWeb.Component.Input do placeholder: @placeholder, autocomplete: @key, value: @value, + minlength: @minlength, + maxlength: @maxlength, class: "#{@fieldClass} read-only:opacity-50 outline-none shadow-base focus:ring-primary-500 focus:border-primary-500 focus:ring-2 block w-full text-lg border-gray-300 rounded-md py-2 px-3" ) %> @@ -210,6 +214,8 @@ defmodule ClaperWeb.Component.Input do placeholder: @placeholder, autofocus: @autofocus, autocomplete: @key, + minlength: 5, + maxlength: 10, class: "read-only:opacity-50 outline-none shadow-base focus:ring-primary-500 focus:border-primary-500 block w-full text-lg border-gray-300 rounded-md py-2 pr-3 pl-9 uppercase" ) %>