diff --git a/.env.sample b/.env.sample index 30c9381..9d27103 100644 --- a/.env.sample +++ b/.env.sample @@ -1,4 +1,5 @@ PRESENTATION_STORAGE=local +MAX_FILE_SIZE_MB=15 AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=xxx diff --git a/CHANGELOG.md b/CHANGELOG.md index bd95162..22aa34d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Migrate to Liveview 0.18 - Add multiple choice poll - Add feature to import all interactions from another presentation +- Add MAX_FILE_SIZE_MB environment variable to limit file upload size +- Add feature to deactivate messages during a presentation ## v1.3.0 diff --git a/assets/js/app.js b/assets/js/app.js index b1bcd54..7b638a7 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -148,8 +148,10 @@ Hooks.PostForm = { mounted() { const submitBtn = document.getElementById("submitBtn") const TA = document.getElementById("postFormTA") - submitBtn.addEventListener("click", (e) => this.onSubmit(e, TA)) - TA.addEventListener("keydown", (e) => this.onPress(e, submitBtn, TA)) + if (submitBtn && TA) { + submitBtn.addEventListener("click", (e) => this.onSubmit(e, TA)) + TA.addEventListener("keydown", (e) => this.onPress(e, submitBtn, TA)) + } }, updated() { const submitBtn = document.getElementById("submitBtn") @@ -165,8 +167,10 @@ Hooks.PostForm = { destroyed() { const submitBtn = document.getElementById("submitBtn") const TA = document.getElementById("postFormTA") - TA.removeEventListener("keydown", (e) => this.onPress(e, submitBtn, TA)) - submitBtn.removeEventListener("click", (e) => this.onSubmit(e, TA)) + if (submitBtn && TA) { + TA.removeEventListener("keydown", (e) => this.onPress(e, submitBtn, TA)) + submitBtn.removeEventListener("click", (e) => this.onSubmit(e, TA)) + } } } diff --git a/config/config.exs b/config/config.exs index 317f58e..c9148e6 100644 --- a/config/config.exs +++ b/config/config.exs @@ -66,6 +66,9 @@ config :ex_aws, region: {:system, "AWS_REGION"}, normalize_path: false +config :claper, max_file_size: System.get_env("MAX_FILE_SIZE_MB") || 15 + + # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. import_config "#{config_env()}.exs" diff --git a/config/runtime.exs b/config/runtime.exs index b187ab6..1606636 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -76,6 +76,8 @@ if config_env() == :prod do # Swoosh supports Hackney and Finch out of the box: # + + if System.get_env("MAIL_TRANSPORT", "local") == "smtp" do config :claper, Claper.Mailer, adapter: Swoosh.Adapters.SMTP, diff --git a/guides/introduction/configuration.md b/guides/introduction/configuration.md index b35ba91..cca6573 100644 --- a/guides/introduction/configuration.md +++ b/guides/introduction/configuration.md @@ -37,6 +37,7 @@ MAILBOX_PASSWORD | - | - | - | Basic auth password for mailbox route Variable | Values | Default | Required | Description --- | --- | --- | --- | --- ENABLE_ACCOUNT_CREATION | true, false | true | - | Enable/disable user registration +MAX_FILE_SIZE_MB | - | 15 | - | Max file size to upload in MB ## Production / Docker diff --git a/guides/usage/features.md b/guides/usage/features.md index a512f12..f748a4d 100644 --- a/guides/usage/features.md +++ b/guides/usage/features.md @@ -18,6 +18,8 @@ When you create a new presentation, click on **Present/Customize**, select the s During your presentation, enable **Active poll results** on the dashboard to see the poll results in real time. +You can choose between single choice and multiple choice polls. + ## Forms diff --git a/lib/claper/presentations/presentation_state.ex b/lib/claper/presentations/presentation_state.ex index 4e16779..a0d539c 100644 --- a/lib/claper/presentations/presentation_state.ex +++ b/lib/claper/presentations/presentation_state.ex @@ -7,6 +7,7 @@ defmodule Claper.Presentations.PresentationState do field :chat_visible, :boolean field :poll_visible, :boolean field :join_screen_visible, :boolean + field :chat_enabled, :boolean field :banned, {:array, :string}, default: [] belongs_to :presentation_file, Claper.Presentations.PresentationFile @@ -23,7 +24,8 @@ defmodule Claper.Presentations.PresentationState do :poll_visible, :join_screen_visible, :banned, - :presentation_file_id + :presentation_file_id, + :chat_enabled ]) |> validate_required([]) end diff --git a/lib/claper_web/live/event_live/event_form_component.ex b/lib/claper_web/live/event_live/event_form_component.ex index 2442ab1..1d2f378 100644 --- a/lib/claper_web/live/event_live/event_form_component.ex +++ b/lib/claper_web/live/event_live/event_form_component.ex @@ -7,15 +7,18 @@ defmodule ClaperWeb.EventLive.EventFormComponent do def update(%{event: event} = assigns, socket) do changeset = Events.change_event(event) + {max_file_size, _} = Integer.parse("#{Application.fetch_env!(:claper, :max_file_size)}") + {:ok, socket |> assign(assigns) |> assign(:changeset, changeset) + |> assign(:max_file_size, max_file_size) |> allow_upload(:presentation_file, accept: ~w(.pdf .ppt .pptx), auto_upload: true, max_entries: 1, - max_file_size: 15_000_000 + max_file_size: max_file_size * 1_000_000 # MB )} 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 26d3ea2..a20e622 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 @@ -75,7 +75,7 @@

<%= gettext("or drag and drop") %>

-

<%= gettext("PDF, PPT, PPTX up to 15MB") %>

+

<%= gettext("PDF, PPT, PPTX up to %{size} MB", size: @max_file_size) %>

<%= for entry <- @uploads.presentation_file.entries do %> <%= entry.progress %> diff --git a/lib/claper_web/live/event_live/manage.ex b/lib/claper_web/live/event_live/manage.ex index 92e480d..839d97c 100644 --- a/lib/claper_web/live/event_live/manage.ex +++ b/lib/claper_web/live/event_live/manage.ex @@ -297,6 +297,23 @@ defmodule ClaperWeb.EventLive.Manage do {:noreply, socket |> assign(:state, new_state)} end + @impl true + def handle_event( + "checked", + %{"key" => "chat_enabled", "value" => value}, + %{assigns: %{state: state}} = socket + ) do + {:ok, new_state} = + Claper.Presentations.update_presentation_state( + state, + %{ + :chat_enabled => value + } + ) + + {:noreply, socket |> assign(:state, new_state)} + end + @impl true def handle_event( "checked", diff --git a/lib/claper_web/live/event_live/manage.html.heex b/lib/claper_web/live/event_live/manage.html.heex index 16009ec..1cea4bc 100644 --- a/lib/claper_web/live/event_live/manage.html.heex +++ b/lib/claper_web/live/event_live/manage.html.heex @@ -759,29 +759,43 @@
-
- <%= gettext("On screen settings") %> +
+
+ <%= gettext("On screen settings") %> -
- - <%= gettext("Instructions") %> +
+ + <%= gettext("Show instructions") %> +
+ +
+ + <%= gettext("Show messages") %> +
+ +
+ + <%= gettext("Show poll results") %> +
-
- - <%= gettext("Messages") %> -
+
+ <%= gettext("Attendees settings") %> -
- - <%= gettext("Active poll results") %> +
+ + <%= gettext("Enable messages") %> +
diff --git a/lib/claper_web/live/event_live/show.ex b/lib/claper_web/live/event_live/show.ex index a463ba9..d9551b8 100644 --- a/lib/claper_web/live/event_live/show.ex +++ b/lib/claper_web/live/event_live/show.ex @@ -54,6 +54,7 @@ defmodule ClaperWeb.EventLive.Show do defp init(socket, event, false) do if connected?(socket) do Claper.Events.Event.subscribe(event.uuid) + Claper.Presentations.subscribe(event.presentation_file.id) Presence.track( self(), @@ -176,6 +177,13 @@ defmodule ClaperWeb.EventLive.Show do |> maybe_disable_empty_room} end + @impl true + def handle_info({:state_updated, presentation_state}, socket) do + {:noreply, + socket + |> assign(:state, presentation_state)} + end + @impl true def handle_info( {:banned, user_id}, diff --git a/lib/claper_web/live/event_live/show.html.heex b/lib/claper_web/live/event_live/show.html.heex index ab06320..d66b040 100644 --- a/lib/claper_web/live/event_live/show.html.heex +++ b/lib/claper_web/live/event_live/show.html.heex @@ -107,7 +107,7 @@ <% end %>
- <%= if @empty_room do %> + <%= if @empty_room && @state.chat_enabled do %>
<%= gettext("Be the first to react !") %> @@ -123,38 +123,67 @@ >
- <.form - :let={f} - for={@post_changeset} - id="post-form" - class="fixed bottom-12 w-full lg:w-1/3 lg:mx-auto" - phx-hook="PostForm" - phx-submit="save" - > -
+ <.form + :let={f} + for={@post_changeset} + id="post-form" + class="fixed bottom-12 w-full lg:w-1/3 lg:mx-auto" + phx-hook="PostForm" + phx-submit="save" > - -
- <%= textarea(f, :body, - id: "postFormTA", - class: - "bg-transparent outline-none w-full text-white h-10 placeholder-white pt-3 resize-none pr-20 leading-4 overflow-y-hidden focus:overflow-y-auto", - placeholder: gettext("Ask, comment...") - ) %> +
+ + +
+ <%= textarea(f, :body, + id: "postFormTA", + class: + "bg-transparent outline-none w-full text-white h-10 placeholder-white pt-3 resize-none pr-20 leading-4 overflow-y-hidden focus:overflow-y-auto", + placeholder: gettext("Ask, comment...") + ) %> +
+
+ <%= error_tag(f, :body) %> + <%= submit("Save", phx_disable_with: "Saving...", id: "hiddenSubmit", class: "hidden") %> + + + <% else %> + +
+
+ +
+
+ <%= gettext("Messages deactivated") %> +
+
- <%= error_tag(f, :body) %> - <%= submit("Save", phx_disable_with: "Saving...", id: "hiddenSubmit", class: "hidden") %> - + + + <% end %>
F in the presentation window to enable fullscreen" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:151 +#: lib/claper_web/live/event_live/show.html.heex:153 #, elixir-autogen, elixir-format msgid "Ask, comment..." msgstr "" -#: lib/claper_web/live/event_live/manage.html.heex:784 -#, elixir-autogen, elixir-format -msgid "Active poll results" -msgstr "" - -#: lib/claper_web/live/event_live/manage.html.heex:770 -#, elixir-autogen, elixir-format -msgid "Instructions" -msgstr "" - #: lib/claper_web/live/event_live/manage.html.heex:556 -#: lib/claper_web/live/event_live/manage.html.heex:775 #: lib/claper_web/live/stat_live/index.html.heex:71 #, elixir-autogen, elixir-format msgid "Messages" @@ -552,8 +541,8 @@ msgid "Blocking this user will delete all his messages and he will not be able t msgstr "" #: lib/claper_web/live/event_live/show.ex:50 -#: lib/claper_web/live/event_live/show.ex:188 -#: lib/claper_web/live/event_live/show.ex:203 +#: lib/claper_web/live/event_live/show.ex:196 +#: lib/claper_web/live/event_live/show.ex:211 #, elixir-autogen, elixir-format msgid "You have been banned from this event" msgstr "" @@ -695,11 +684,6 @@ msgstr "" msgid "Error when processing the new file" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.html.heex:78 -#, elixir-autogen, elixir-format -msgid "PDF, PPT, PPTX up to 15MB" -msgstr "" - #: lib/claper_web/live/event_live/join.html.heex:23 #: lib/claper_web/live/event_live/join.html.heex:44 #, elixir-autogen, elixir-format @@ -719,7 +703,7 @@ msgid "Connect to your account" msgstr "" #: lib/claper_web/live/event_live/presenter.html.heex:33 -#: lib/claper_web/live/event_live/show.html.heex:256 +#: lib/claper_web/live/event_live/show.html.heex:285 #, elixir-autogen, elixir-format msgid "Or use the code:" msgstr "" @@ -811,7 +795,7 @@ msgstr "" msgid "Form submissions from attendees will appear here." msgstr "" -#: lib/claper_web/live/event_live/manage.ex:420 +#: lib/claper_web/live/event_live/manage.ex:437 #, elixir-autogen, elixir-format msgid "Name" msgstr "" @@ -900,3 +884,38 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Select presentation" msgstr "" + +#: lib/claper_web/live/event_live/event_form_component.html.heex:78 +#, elixir-autogen, elixir-format +msgid "PDF, PPT, PPTX up to %{size} MB" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:790 +#, elixir-autogen, elixir-format +msgid "Attendees settings" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:797 +#, elixir-autogen, elixir-format +msgid "Enable messages" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:771 +#, elixir-autogen, elixir-format +msgid "Show instructions" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:776 +#, elixir-autogen, elixir-format +msgid "Show messages" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:785 +#, elixir-autogen, elixir-format +msgid "Show poll results" +msgstr "" + +#: lib/claper_web/live/event_live/show.html.heex:179 +#, elixir-autogen, elixir-format +msgid "Messages deactivated" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 295451c..b2ba1a7 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -18,7 +18,7 @@ msgstr "" msgid "Settings" msgstr "" -#: lib/claper_web/live/event_live/manage.ex:421 +#: lib/claper_web/live/event_live/manage.ex:438 #: lib/claper_web/live/form_live/form_component.html.heex:37 #: lib/claper_web/live/user_settings_live/show.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34 @@ -78,17 +78,17 @@ msgstr "" msgid "Your personal informations only visible by you" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:220 +#: lib/claper_web/live/event_live/show.html.heex:249 #, elixir-autogen, elixir-format msgid "days" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:226 +#: lib/claper_web/live/event_live/show.html.heex:255 #, elixir-autogen, elixir-format msgid "hours" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:232 +#: lib/claper_web/live/event_live/show.html.heex:261 #, elixir-autogen, elixir-format msgid "minutes" msgstr "" @@ -117,7 +117,7 @@ msgstr "" msgid "Host" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:238 +#: lib/claper_web/live/event_live/show.html.heex:267 #, elixir-autogen, elixir-format, fuzzy msgid "seconds" msgstr "" @@ -169,7 +169,7 @@ msgid "Name of your presentation" msgstr "" #: lib/claper_web/live/event_live/presenter.html.heex:21 -#: lib/claper_web/live/event_live/show.html.heex:247 +#: lib/claper_web/live/event_live/show.html.heex:276 #, elixir-autogen, elixir-format msgid "Scan to interact in real-time" msgstr "" @@ -179,7 +179,7 @@ msgstr "" msgid "Starting on" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.ex:203 +#: lib/claper_web/live/event_live/event_form_component.ex:205 #, elixir-autogen, elixir-format msgid "Updated successfully" msgstr "" @@ -206,7 +206,7 @@ msgstr "" msgid "Return to home" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.ex:175 +#: lib/claper_web/live/event_live/event_form_component.ex:177 #, elixir-autogen, elixir-format, fuzzy msgid "Created successfully" msgstr "" @@ -351,12 +351,12 @@ msgstr "" msgid "or drag and drop" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.ex:212 +#: lib/claper_web/live/event_live/event_form_component.ex:214 #, elixir-autogen, elixir-format, fuzzy msgid "You have selected an incorrect file type" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.ex:211 +#: lib/claper_web/live/event_live/event_form_component.ex:213 #, elixir-autogen, elixir-format msgid "Your file is too large" msgstr "" @@ -386,7 +386,7 @@ msgstr "" msgid "Title of your poll" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.ex:213 +#: lib/claper_web/live/event_live/event_form_component.ex:215 #, elixir-autogen, elixir-format, fuzzy msgid "Upload failed" msgstr "" @@ -457,7 +457,7 @@ msgstr "" msgid "Messages from attendees will appear here." msgstr "" -#: lib/claper_web/live/event_live/manage.html.heex:763 +#: lib/claper_web/live/event_live/manage.html.heex:764 #, elixir-autogen, elixir-format msgid "On screen settings" msgstr "" @@ -482,23 +482,12 @@ msgstr "" msgid "Press F in the presentation window to enable fullscreen" msgstr "" -#: lib/claper_web/live/event_live/show.html.heex:151 +#: lib/claper_web/live/event_live/show.html.heex:153 #, elixir-autogen, elixir-format msgid "Ask, comment..." msgstr "" -#: lib/claper_web/live/event_live/manage.html.heex:784 -#, elixir-autogen, elixir-format -msgid "Active poll results" -msgstr "" - -#: lib/claper_web/live/event_live/manage.html.heex:770 -#, elixir-autogen, elixir-format -msgid "Instructions" -msgstr "" - #: lib/claper_web/live/event_live/manage.html.heex:556 -#: lib/claper_web/live/event_live/manage.html.heex:775 #: lib/claper_web/live/stat_live/index.html.heex:71 #, elixir-autogen, elixir-format, fuzzy msgid "Messages" @@ -553,8 +542,8 @@ msgid "Blocking this user will delete all his messages and he will not be able t msgstr "" #: lib/claper_web/live/event_live/show.ex:50 -#: lib/claper_web/live/event_live/show.ex:188 -#: lib/claper_web/live/event_live/show.ex:203 +#: lib/claper_web/live/event_live/show.ex:196 +#: lib/claper_web/live/event_live/show.ex:211 #, elixir-autogen, elixir-format msgid "You have been banned from this event" msgstr "" @@ -696,11 +685,6 @@ msgstr "" msgid "Error when processing the new file" msgstr "" -#: lib/claper_web/live/event_live/event_form_component.html.heex:78 -#, elixir-autogen, elixir-format, fuzzy -msgid "PDF, PPT, PPTX up to 15MB" -msgstr "" - #: lib/claper_web/live/event_live/join.html.heex:23 #: lib/claper_web/live/event_live/join.html.heex:44 #, elixir-autogen, elixir-format @@ -720,7 +704,7 @@ msgid "Connect to your account" msgstr "" #: lib/claper_web/live/event_live/presenter.html.heex:33 -#: lib/claper_web/live/event_live/show.html.heex:256 +#: lib/claper_web/live/event_live/show.html.heex:285 #, elixir-autogen, elixir-format msgid "Or use the code:" msgstr "" @@ -812,7 +796,7 @@ msgstr "" msgid "Form submissions from attendees will appear here." msgstr "" -#: lib/claper_web/live/event_live/manage.ex:420 +#: lib/claper_web/live/event_live/manage.ex:437 #, elixir-autogen, elixir-format msgid "Name" msgstr "" @@ -901,3 +885,38 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "Select presentation" msgstr "" + +#: lib/claper_web/live/event_live/event_form_component.html.heex:78 +#, elixir-autogen, elixir-format, fuzzy +msgid "PDF, PPT, PPTX up to %{size} MB" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:790 +#, elixir-autogen, elixir-format +msgid "Attendees settings" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:797 +#, elixir-autogen, elixir-format +msgid "Enable messages" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:771 +#, elixir-autogen, elixir-format +msgid "Show instructions" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:776 +#, elixir-autogen, elixir-format, fuzzy +msgid "Show messages" +msgstr "" + +#: lib/claper_web/live/event_live/manage.html.heex:785 +#, elixir-autogen, elixir-format +msgid "Show poll results" +msgstr "" + +#: lib/claper_web/live/event_live/show.html.heex:179 +#, elixir-autogen, elixir-format, fuzzy +msgid "Messages deactivated" +msgstr "" diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po index a5b35e6..e565a92 100644 --- a/priv/gettext/fr/LC_MESSAGES/default.po +++ b/priv/gettext/fr/LC_MESSAGES/default.po @@ -18,7 +18,7 @@ msgstr "" msgid "Settings" msgstr "Paramètres" -#: lib/claper_web/live/event_live/manage.ex:421 +#: lib/claper_web/live/event_live/manage.ex:438 #: lib/claper_web/live/form_live/form_component.html.heex:37 #: lib/claper_web/live/user_settings_live/show.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34 @@ -78,17 +78,17 @@ msgstr "Nous vous avons envoyé un email à" msgid "Your personal informations only visible by you" msgstr "Vos informations personnelles ne sont visibles que par vous" -#: lib/claper_web/live/event_live/show.html.heex:220 +#: lib/claper_web/live/event_live/show.html.heex:249 #, elixir-autogen, elixir-format msgid "days" msgstr "jours" -#: lib/claper_web/live/event_live/show.html.heex:226 +#: lib/claper_web/live/event_live/show.html.heex:255 #, elixir-autogen, elixir-format msgid "hours" msgstr "heures" -#: lib/claper_web/live/event_live/show.html.heex:232 +#: lib/claper_web/live/event_live/show.html.heex:261 #, elixir-autogen, elixir-format msgid "minutes" msgstr "minutes" @@ -117,7 +117,7 @@ msgstr "Tableau de bord" msgid "Host" msgstr "Animateur" -#: lib/claper_web/live/event_live/show.html.heex:238 +#: lib/claper_web/live/event_live/show.html.heex:267 #, elixir-autogen, elixir-format, fuzzy msgid "seconds" msgstr "secondes" @@ -169,7 +169,7 @@ msgid "Name of your presentation" msgstr "Nom de votre présentation" #: lib/claper_web/live/event_live/presenter.html.heex:21 -#: lib/claper_web/live/event_live/show.html.heex:247 +#: lib/claper_web/live/event_live/show.html.heex:276 #, elixir-autogen, elixir-format msgid "Scan to interact in real-time" msgstr "Scannez pour interagir en temps réel" @@ -179,7 +179,7 @@ msgstr "Scannez pour interagir en temps réel" msgid "Starting on" msgstr "Commence le" -#: lib/claper_web/live/event_live/event_form_component.ex:203 +#: lib/claper_web/live/event_live/event_form_component.ex:205 #, elixir-autogen, elixir-format msgid "Updated successfully" msgstr "Mis à jour avec succès" @@ -206,7 +206,7 @@ msgstr "C'est le moment de propulser vos présentations." msgid "Return to home" msgstr "Retourner à l'accueil" -#: lib/claper_web/live/event_live/event_form_component.ex:175 +#: lib/claper_web/live/event_live/event_form_component.ex:177 #, elixir-autogen, elixir-format, fuzzy msgid "Created successfully" msgstr "Mis à jour avec succès" @@ -351,12 +351,12 @@ msgstr "Chargez un fichier" msgid "or drag and drop" msgstr "ou glisser-déposer" -#: lib/claper_web/live/event_live/event_form_component.ex:212 +#: lib/claper_web/live/event_live/event_form_component.ex:214 #, elixir-autogen, elixir-format, fuzzy msgid "You have selected an incorrect file type" msgstr "Vous avez sélectionné un type de fichier incorrect" -#: lib/claper_web/live/event_live/event_form_component.ex:211 +#: lib/claper_web/live/event_live/event_form_component.ex:213 #, elixir-autogen, elixir-format msgid "Your file is too large" msgstr "Votre fichier est trop volumineux" @@ -386,7 +386,7 @@ msgstr "Nouveau sondage" msgid "Title of your poll" msgstr "Titre de votre sondage" -#: lib/claper_web/live/event_live/event_form_component.ex:213 +#: lib/claper_web/live/event_live/event_form_component.ex:215 #, elixir-autogen, elixir-format, fuzzy msgid "Upload failed" msgstr "Échec du chargement" @@ -457,10 +457,10 @@ msgstr "La modification de votre fichier supprimera tous les éléments d'intera msgid "Messages from attendees will appear here." msgstr "Les messages des participants apparaîtront ici." -#: lib/claper_web/live/event_live/manage.html.heex:763 +#: lib/claper_web/live/event_live/manage.html.heex:764 #, elixir-autogen, elixir-format msgid "On screen settings" -msgstr "Paramètres à l'écran" +msgstr "Paramètres écran" #: lib/claper_web/live/event_live/event_card_component.ex:139 #, elixir-autogen, elixir-format @@ -482,23 +482,12 @@ msgstr "Démarrer" msgid "Press F in the presentation window to enable fullscreen" msgstr "Appuyez sur F dans la fenêtre de présentation pour activer le plein écran" -#: lib/claper_web/live/event_live/show.html.heex:151 +#: lib/claper_web/live/event_live/show.html.heex:153 #, elixir-autogen, elixir-format msgid "Ask, comment..." msgstr "Questionnez, commentez..." -#: lib/claper_web/live/event_live/manage.html.heex:784 -#, elixir-autogen, elixir-format -msgid "Active poll results" -msgstr "Résultats du sondage actif" - -#: lib/claper_web/live/event_live/manage.html.heex:770 -#, elixir-autogen, elixir-format -msgid "Instructions" -msgstr "Instructions" - #: lib/claper_web/live/event_live/manage.html.heex:556 -#: lib/claper_web/live/event_live/manage.html.heex:775 #: lib/claper_web/live/stat_live/index.html.heex:71 #, elixir-autogen, elixir-format, fuzzy msgid "Messages" @@ -553,8 +542,8 @@ msgid "Blocking this user will delete all his messages and he will not be able t msgstr "Bloquer cet utilisateur supprimera tous ses messages et il ne pourra pas rejoindre à nouveau, confirmer ?" #: lib/claper_web/live/event_live/show.ex:50 -#: lib/claper_web/live/event_live/show.ex:188 -#: lib/claper_web/live/event_live/show.ex:203 +#: lib/claper_web/live/event_live/show.ex:196 +#: lib/claper_web/live/event_live/show.ex:211 #, elixir-autogen, elixir-format msgid "You have been banned from this event" msgstr "Vous avez été banni de cet événement" @@ -696,11 +685,6 @@ msgstr "Erreur lors du traitement du fichier" msgid "Error when processing the new file" msgstr "Erreur lors du traitement du nouveau fichier" -#: lib/claper_web/live/event_live/event_form_component.html.heex:78 -#, elixir-autogen, elixir-format, fuzzy -msgid "PDF, PPT, PPTX up to 15MB" -msgstr "PDF, PPT, PPTX jusqu'à 15MB" - #: lib/claper_web/live/event_live/join.html.heex:23 #: lib/claper_web/live/event_live/join.html.heex:44 #, elixir-autogen, elixir-format @@ -720,7 +704,7 @@ msgid "Connect to your account" msgstr "Connectez-vous à votre compte" #: lib/claper_web/live/event_live/presenter.html.heex:33 -#: lib/claper_web/live/event_live/show.html.heex:256 +#: lib/claper_web/live/event_live/show.html.heex:285 #, elixir-autogen, elixir-format msgid "Or use the code:" msgstr "Ou utilisez le code:" @@ -812,7 +796,7 @@ msgstr "Soumissions de formulaire" msgid "Form submissions from attendees will appear here." msgstr "Les formulaires soumis par les participants apparaîtront ici." -#: lib/claper_web/live/event_live/manage.ex:420 +#: lib/claper_web/live/event_live/manage.ex:437 #, elixir-autogen, elixir-format msgid "Name" msgstr "Nom" @@ -901,3 +885,38 @@ msgstr "Interactions importées avec succès" #, elixir-autogen, elixir-format, fuzzy msgid "Select presentation" msgstr "Sélectionnez la présentation" + +#: lib/claper_web/live/event_live/event_form_component.html.heex:78 +#, elixir-autogen, elixir-format, fuzzy +msgid "PDF, PPT, PPTX up to %{size} MB" +msgstr "PDF, PPT, PPTX jusqu'à %{size} MB" + +#: lib/claper_web/live/event_live/manage.html.heex:790 +#, elixir-autogen, elixir-format +msgid "Attendees settings" +msgstr "Paramètres participants" + +#: lib/claper_web/live/event_live/manage.html.heex:797 +#, elixir-autogen, elixir-format +msgid "Enable messages" +msgstr "Activer messages" + +#: lib/claper_web/live/event_live/manage.html.heex:771 +#, elixir-autogen, elixir-format +msgid "Show instructions" +msgstr "Afficher instructions" + +#: lib/claper_web/live/event_live/manage.html.heex:776 +#, elixir-autogen, elixir-format, fuzzy +msgid "Show messages" +msgstr "Afficher messages" + +#: lib/claper_web/live/event_live/manage.html.heex:785 +#, elixir-autogen, elixir-format +msgid "Show poll results" +msgstr "Afficher résultats sondage" + +#: lib/claper_web/live/event_live/show.html.heex:179 +#, elixir-autogen, elixir-format, fuzzy +msgid "Messages deactivated" +msgstr "Messages désactivés" diff --git a/priv/repo/migrations/20230421093834_add_chat_enabled_to_presentation_states.exs b/priv/repo/migrations/20230421093834_add_chat_enabled_to_presentation_states.exs new file mode 100644 index 0000000..edaea64 --- /dev/null +++ b/priv/repo/migrations/20230421093834_add_chat_enabled_to_presentation_states.exs @@ -0,0 +1,9 @@ +defmodule Claper.Repo.Migrations.AddChatEnabledToPresentationStates do + use Ecto.Migration + + def change do + alter table(:presentation_states) do + add :chat_enabled, :boolean, default: true + end + end +end diff --git a/test/claper/events_test.exs b/test/claper/events_test.exs index 56826b1..c854ac6 100644 --- a/test/claper/events_test.exs +++ b/test/claper/events_test.exs @@ -92,8 +92,8 @@ defmodule Claper.EventsTest do from_event = event_fixture(%{user: bad_user, name: "from event"}) to_event = event_fixture(%{user: user, name: "to event"}) from_presentation_file = presentation_file_fixture(%{event: from_event}) - from_poll = poll_fixture(%{presentation_file_id: from_presentation_file.id}) - to_presentation_file = presentation_file_fixture(%{event: to_event, hash: "444444"}) + _from_poll = poll_fixture(%{presentation_file_id: from_presentation_file.id}) + _to_presentation_file = presentation_file_fixture(%{event: to_event, hash: "444444"}) assert_raise Ecto.NoResultsError, fn -> Events.import(user.id, from_event.uuid, to_event.uuid)