diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c09b7b..15eb9e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,10 @@ - Add ARM Docker image - Refactor all runtime configuration - Improve local storage with PRESENTATION_STORAGE_DIR environment variable -- Fix poll panel scroll on mobile +- Fix poll/form panel scroll on mobile - Fix message length validation - Fix message word break +- Minor fixes on form management ## v1.5.0 diff --git a/assets/js/app.js b/assets/js/app.js index 0419ed8..cc19d56 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -484,19 +484,6 @@ window.addEventListener("phx:page-loading-stop", info => { topbar.hide() }) -// Used to fix the scroll issue on mobile on poll panel -window.addEventListener("claper:toggle-poll", (event) => { - let extended = document.getElementById("extended-poll") - let parent = document.getElementById("poll-wrapper-parent") - if (extended.style.display == "block") { - parent.classList.add("overflow-y-auto") - parent.classList.add("h-full") - } else { - parent.classList.remove("overflow-y-auto") - parent.classList.remove("h-full") - } -}) - const renderOnlineUsers = function(presences) { let onlineUsers = Presence.list(presences, (_id, {metas: [user, ...rest]}) => { return onlineUserTemplate(user); diff --git a/lib/claper_web/live/event_live/manage.ex b/lib/claper_web/live/event_live/manage.ex index e5046a6..0cec26a 100644 --- a/lib/claper_web/live/event_live/manage.ex +++ b/lib/claper_web/live/event_live/manage.ex @@ -51,6 +51,7 @@ defmodule ClaperWeb.EventLive.Manage do timeout: 500 }) |> poll_at_position(false) + |> form_at_position(false) {:ok, socket, temporary_assigns: [posts: [], form_submits: []]} end @@ -157,7 +158,8 @@ defmodule ClaperWeb.EventLive.Manage do {:noreply, socket |> assign(:state, new_state) - |> poll_at_position} + |> poll_at_position + |> form_at_position} end @impl true @@ -493,6 +495,27 @@ defmodule ClaperWeb.EventLive.Manage do end end + defp form_at_position( + %{assigns: %{event: event, state: state}} = socket, + broadcast \\ true + ) do + with form <- + Claper.Forms.get_form_current_position( + event.presentation_file.id, + state.position + ) do + if broadcast do + Phoenix.PubSub.broadcast( + Claper.PubSub, + "event:#{event.uuid}", + {:current_form, form} + ) + end + + socket |> assign(:current_form, form) + end + end + defp ban(user, %{assigns: %{event: event, state: state}} = socket) do {:ok, new_state} = Claper.Presentations.update_presentation_state(state, %{ diff --git a/lib/claper_web/live/event_live/manage.html.heex b/lib/claper_web/live/event_live/manage.html.heex index 7cd691f..a8ea5ea 100644 --- a/lib/claper_web/live/event_live/manage.html.heex +++ b/lib/claper_web/live/event_live/manage.html.heex @@ -714,7 +714,7 @@ <% end %>