feat: Add Embed #61 (#72)

This commit is contained in:
Dhanus
2023-11-23 16:36:39 +05:30
committed by GitHub
parent c4b91b0a0a
commit d3989068a2
26 changed files with 1627 additions and 284 deletions

189
lib/claper/embeds.ex Normal file
View File

@@ -0,0 +1,189 @@
defmodule Claper.Embeds do
@moduledoc """
The Embeds context.
"""
import Ecto.Query, warn: false
alias Claper.Repo
alias Claper.Embeds.Embed
@doc """
Returns the list of embeds for a given presentation file.
## Examples
iex> list_embeds(123)
[%Embed{}, ...]
"""
def list_embeds(presentation_file_id) do
from(e in Embed,
where: e.presentation_file_id == ^presentation_file_id,
order_by: [asc: e.id, asc: e.position]
)
|> Repo.all()
end
@doc """
Returns the list of embeds for a given presentation file and a given position.
## Examples
iex> list_embeds_at_position(123, 0)
[%Embed{}, ...]
"""
def list_embeds_at_position(presentation_file_id, position) do
from(e in Embed,
where: e.presentation_file_id == ^presentation_file_id and e.position == ^position,
order_by: [asc: e.id]
)
|> Repo.all()
end
@doc """
Gets a single embed.
Raises `Ecto.NoResultsError` if the Embed does not exist.
## Examples
iex> get_embed!(123)
%Embed{}
iex> get_embed!(456)
** (Ecto.NoResultsError)
"""
def get_embed!(id, preload \\ []),
do: Repo.get!(Embed, id) |> Repo.preload(preload)
@doc """
Gets a single embed for a given position.
## Examples
iex> get_embed_current_position(123, 0)
%Embed{}
"""
def get_embed_current_position(presentation_file_id, position) do
from(e in Embed,
where:
e.position == ^position and e.presentation_file_id == ^presentation_file_id and
e.enabled == true
)
|> Repo.one()
end
@doc """
Creates a embed.
## Examples
iex> create_embed(%{field: value})
{:ok, %Embed{}}
iex> create_embed(%{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def create_embed(attrs \\ %{}) do
%Embed{}
|> Embed.changeset(attrs)
|> Repo.insert()
end
@doc """
Updates a embed.
## Examples
iex> update_embed("123e4567-e89b-12d3-a456-426614174000", embed, %{field: new_value})
{:ok, %Embed{}}
iex> update_embed("123e4567-e89b-12d3-a456-426614174000", embed, %{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def update_embed(event_uuid, %Embed{} = embed, attrs) do
embed
|> Embed.changeset(attrs)
|> Repo.update()
|> case do
{:ok, embed} ->
broadcast({:ok, embed, event_uuid}, :embed_updated)
{:error, changeset} ->
{:error, %{changeset | action: :update}}
end
end
@doc """
Deletes a embed.
## Examples
iex> delete_embed("123e4567-e89b-12d3-a456-426614174000", embed)
{:ok, %Embed{}}
iex> delete_embed("123e4567-e89b-12d3-a456-426614174000", embed)
{:error, %Ecto.Changeset{}}
"""
def delete_embed(event_uuid, %Embed{} = embed) do
{:ok, embed} = Repo.delete(embed)
broadcast({:ok, embed, event_uuid}, :embed_deleted)
end
@doc """
Returns an `%Ecto.Changeset{}` for tracking embed changes.
## Examples
iex> change_embed(embed)
%Ecto.Changeset{data: %Embed{}}
"""
def change_embed(%Embed{} = embed, attrs \\ %{}) do
Embed.changeset(embed, attrs)
end
def disable_all(presentation_file_id, position) do
from(e in Embed,
where: e.presentation_file_id == ^presentation_file_id and e.position == ^position
)
|> Repo.update_all(set: [enabled: false])
end
def set_status(id, presentation_file_id, position, status) do
if status do
from(e in Embed,
where:
e.presentation_file_id == ^presentation_file_id and e.position == ^position and
e.id != ^id
)
|> Repo.update_all(set: [enabled: false])
end
from(e in Embed,
where:
e.presentation_file_id == ^presentation_file_id and e.position == ^position and
e.id == ^id
)
|> Repo.update_all(set: [enabled: status])
end
defp broadcast({:error, _reason} = error, _embed), do: error
defp broadcast({:ok, embed, event_uuid}, event) do
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{event_uuid}",
{event, embed}
)
{:ok, embed}
end
end

View File

@@ -0,0 +1,38 @@
defmodule Claper.Embeds.Embed do
use Ecto.Schema
import Ecto.Changeset
@derive {Jason.Encoder, only: [:title, :content, :position, :attendee_visibility]}
schema "embeds" do
field :title, :string
field :content, :string
field :enabled, :boolean, default: true
field :position, :integer, default: 0
field :attendee_visibility, :boolean, default: false
belongs_to :presentation_file, Claper.Presentations.PresentationFile
timestamps()
end
@doc false
def changeset(embed, attrs \\ %{}) do
embed
|> cast(attrs, [
:enabled,
:title,
:content,
:presentation_file_id,
:position,
:attendee_visibility
])
|> validate_required([
:title,
:content,
:presentation_file_id,
:position,
:attendee_visibility
])
|> validate_format(:content, ~r/<iframe.*<\/iframe>/, message: "Invalid embed format")
end
end

View File

@@ -275,11 +275,12 @@ defmodule Claper.Events do
|> Ecto.Multi.run(:from_event, fn _repo, _changes -> |> Ecto.Multi.run(:from_event, fn _repo, _changes ->
{:ok, {:ok,
get_user_event!(user_id, from_event_uuid, get_user_event!(user_id, from_event_uuid,
presentation_file: [polls: [:poll_opts], forms: []] presentation_file: [polls: [:poll_opts], forms: [], embeds: []]
)} )}
end) end)
|> Ecto.Multi.run(:to_event, fn _repo, _changes -> |> Ecto.Multi.run(:to_event, fn _repo, _changes ->
{:ok, get_user_event!(user_id, to_event_uuid, presentation_file: [:polls, :forms])} {:ok,
get_user_event!(user_id, to_event_uuid, presentation_file: [:polls, :forms, :embeds])}
end) end)
|> Ecto.Multi.run(:polls, fn _repo, %{from_event: from_event, to_event: to_event} -> |> Ecto.Multi.run(:polls, fn _repo, %{from_event: from_event, to_event: to_event} ->
{:ok, {:ok,
@@ -321,6 +322,22 @@ defmodule Claper.Events do
end end
end)} end)}
end) end)
|> Ecto.Multi.run(:embeds, fn _repo, %{from_event: from_event, to_event: to_event} ->
{:ok,
from_event.presentation_file.embeds
|> Enum.each(fn embed ->
if embed.position < to_event.presentation_file.length do
Claper.Embeds.create_embed(%{
title: embed.title,
content: embed.content,
position: embed.position,
enabled: embed.enabled,
attendee_visibility: embed.attendee_visibility,
presentation_file_id: to_event.presentation_file.id
})
end
end)}
end)
|> Repo.transaction() do |> Repo.transaction() do
{:ok, %{to_event: to_event}} -> {:ok, to_event} {:ok, %{to_event: to_event}} -> {:ok, to_event}
end end

View File

@@ -181,20 +181,22 @@ defmodule Claper.Forms do
|> Repo.update_all(set: [enabled: false]) |> Repo.update_all(set: [enabled: false])
end end
def set_default(id, presentation_file_id, position) do def set_status(id, presentation_file_id, position, status) do
from(f in Form, if status do
where: from(f in Form,
f.presentation_file_id == ^presentation_file_id and f.position == ^position and where:
f.id != ^id f.presentation_file_id == ^presentation_file_id and f.position == ^position and
) f.id != ^id
|> Repo.update_all(set: [enabled: false]) )
|> Repo.update_all(set: [enabled: false])
end
from(f in Form, from(f in Form,
where: where:
f.presentation_file_id == ^presentation_file_id and f.position == ^position and f.presentation_file_id == ^presentation_file_id and f.position == ^position and
f.id == ^id f.id == ^id
) )
|> Repo.update_all(set: [enabled: true]) |> Repo.update_all(set: [enabled: status])
end end
defp broadcast({:error, _reason} = error, _form), do: error defp broadcast({:error, _reason} = error, _form), do: error

View File

@@ -275,20 +275,22 @@ defmodule Claper.Polls do
|> Repo.update_all(set: [enabled: false]) |> Repo.update_all(set: [enabled: false])
end end
def set_default(id, presentation_file_id, position) do def set_status(id, presentation_file_id, position, status) do
from(p in Poll, if status do
where: from(p in Poll,
p.presentation_file_id == ^presentation_file_id and p.position == ^position and where:
p.id != ^id p.presentation_file_id == ^presentation_file_id and p.position == ^position and
) p.id != ^id
|> Repo.update_all(set: [enabled: false]) )
|> Repo.update_all(set: [enabled: false])
end
from(p in Poll, from(p in Poll,
where: where:
p.presentation_file_id == ^presentation_file_id and p.position == ^position and p.presentation_file_id == ^presentation_file_id and p.position == ^position and
p.id == ^id p.id == ^id
) )
|> Repo.update_all(set: [enabled: true]) |> Repo.update_all(set: [enabled: status])
end end
defp broadcast({:error, _reason} = error, _poll), do: error defp broadcast({:error, _reason} = error, _poll), do: error

View File

@@ -10,6 +10,7 @@ defmodule Claper.Presentations.PresentationFile do
belongs_to :event, Claper.Events.Event belongs_to :event, Claper.Events.Event
has_many :polls, Claper.Polls.Poll has_many :polls, Claper.Polls.Poll
has_many :forms, Claper.Forms.Form has_many :forms, Claper.Forms.Form
has_many :embeds, Claper.Embeds.Embed
has_one :presentation_state, Claper.Presentations.PresentationState, on_replace: :delete has_one :presentation_state, Claper.Presentations.PresentationState, on_replace: :delete
timestamps() timestamps()

View File

@@ -0,0 +1,92 @@
defmodule ClaperWeb.EmbedLive.FormComponent do
use ClaperWeb, :live_component
alias Claper.Embeds
@impl true
def update(%{embed: embed} = assigns, socket) do
changeset = Embeds.change_embed(embed)
{:ok,
socket
|> assign(assigns)
|> assign_new(:dark, fn -> false end)
|> assign(:embeds, list_embeds(assigns))
|> assign(:changeset, changeset)}
end
@impl true
def handle_event("delete", %{"id" => id}, socket) do
embed = Embeds.get_embed!(id)
{:ok, _} = Embeds.delete_embed(socket.assigns.event_uuid, embed)
{:noreply, socket |> push_redirect(to: socket.assigns.return_to)}
end
@impl true
def handle_event("validate", %{"embed" => embed_params}, socket) do
changeset =
socket.assigns.embed
|> Embeds.change_embed(embed_params)
|> Map.put(:action, :validate)
{:noreply, socket |> assign(:changeset, changeset)}
end
@impl true
def handle_event("save", %{"embed" => embed_params}, socket) do
save_embed(socket, socket.assigns.live_action, embed_params)
end
defp save_embed(socket, :edit, embed_params) do
case Embeds.update_embed(
socket.assigns.event_uuid,
socket.assigns.embed,
embed_params
) do
{:ok, _embed} ->
{:noreply,
socket
|> push_redirect(to: socket.assigns.return_to)}
{:error, %Ecto.Changeset{} = changeset} ->
{:noreply, assign(socket, :changeset, changeset)}
end
end
defp save_embed(socket, :new, embed_params) do
case Embeds.create_embed(
embed_params
|> Map.put("presentation_file_id", socket.assigns.presentation_file.id)
|> Map.put("position", socket.assigns.position)
|> Map.put("enabled", false)
) do
{:ok, embed} ->
{:noreply,
socket
|> maybe_change_current_embed(embed)
|> push_redirect(to: socket.assigns.return_to)}
{:error, %Ecto.Changeset{} = changeset} ->
{:noreply, assign(socket, changeset: changeset)}
end
end
defp maybe_change_current_embed(socket, %{enabled: true} = embed) do
embed = Embeds.get_embed!(embed.id)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event_uuid}",
{:current_embed, embed}
)
socket
end
defp maybe_change_current_embed(socket, _), do: socket
defp list_embeds(assigns) do
Embeds.list_embeds(assigns.presentation_file.id)
end
end

View File

@@ -0,0 +1,64 @@
<div>
<.form
:let={f}
for={@changeset}
id="embed-form"
phx-target={@myself}
phx-change="validate"
phx-submit="save"
>
<div class="my-3 mb-10">
<ClaperWeb.Component.Input.text
form={f}
key={:title}
name={gettext("Title of your embed")}
labelClass={if @dark, do: "text-white"}
fieldClass={if @dark, do: "bg-gray-700 text-white"}
autofocus="true"
required="true"
/>
<ClaperWeb.Component.Input.textarea
form={f}
key={:content}
name={gettext("Content of your embed")}
labelClass={if @dark, do: "text-white"}
fieldClass={if @dark, do: "bg-gray-700 text-white"}
autofocus="true"
required="true"
/>
<div class="flex gap-x-2 mb-5 mt-3">
<%= checkbox(f, :attendee_visibility, class: "h-4 w-5") %>
<%= label(f, :attendee_visibility, gettext("Attendee can access the embed on the device"),
class: "text-sm font-medium"
) %>
</div>
</div>
<div class="flex space-x-3">
<button
type="submit"
phx_disable_with="Loading..."
class="w-full lg:w-auto px-6 text-white py-2 rounded-md tracking-wide font-bold focus:outline-none focus:shadow-outline bg-gradient-to-tl from-primary-500 to-secondary-500 bg-size-200 bg-pos-0 hover:bg-pos-100 transition-all duration-500"
>
<%= case @live_action do
:new -> gettext("Create")
:edit -> gettext("Save")
end %>
</button>
<%= if @live_action == :edit do %>
<%= link(gettext("Delete"),
to: "#",
phx_click: "delete",
phx_target: @myself,
phx_value_id: @embed.id,
data: [
confirm: gettext("This will delete the embed, are you sure?")
],
class:
"w-full lg:w-auto px-6 text-center text-white py-2 rounded-md tracking-wide font-bold focus:outline-none focus:shadow-outline bg-gradient-to-tl from-supporting-red-600 to-supporting-red-400 bg-size-200 bg-pos-0 hover:bg-pos-100 transition-all duration-500"
) %>
<% end %>
</div>
</.form>
</div>

View File

@@ -0,0 +1,84 @@
defmodule ClaperWeb.EventLive.EmbedComponent do
use ClaperWeb, :live_component
@impl true
def render(assigns) do
~H"""
<div>
<div
id="collapsed-embed"
class="bg-black py-3 px-6 text-black shadow-lg mx-auto rounded-full w-max hidden"
>
<div
class="block w-full h-full cursor-pointer"
phx-click={toggle_embed()}
phx-target={@myself}
>
<div class="text-white flex space-x-2 items-center">
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-6 w-6"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3"></path>
<path d="M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3"></path>
<path d="M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7"></path>
<path d="M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1"></path>
<path d="M17 12h.01"></path>
<path d="M13 12h.01"></path>
</svg>
<span class="font-bold"><%= gettext("See current embed") %></span>
</div>
</div>
</div>
<div id="extended-embed" class="bg-black w-full py-3 px-6 text-black shadow-lg rounded-md">
<div
class="block w-full h-full cursor-pointer"
phx-click={toggle_embed()}
phx-target={@myself}
>
<div id="embed-pane" class="float-right mt-2">
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-8 w-8 text-white"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
</svg>
</div>
<p class="text-xs text-gray-500 my-1"><%= gettext("Current embed") %></p>
<p class="text-white text-lg font-semibold mb-4"><%= @embed.title %></p>
</div>
<div class="flex flex-col space-y-3">
<%= raw(@embed.content) %>
</div>
</div>
</div>
"""
end
def toggle_embed(js \\ %JS{}) do
js
|> JS.toggle(
out: "animate__animated animate__zoomOut",
in: "animate__animated animate__zoomIn",
to: "#collapsed-embed",
time: 50
)
|> JS.toggle(
out: "animate__animated animate__zoomOut",
in: "animate__animated animate__zoomIn",
to: "#extended-embed"
)
end
end

View File

@@ -4,6 +4,7 @@ defmodule ClaperWeb.EventLive.Manage do
alias ClaperWeb.Presence alias ClaperWeb.Presence
alias Claper.Polls alias Claper.Polls
alias Claper.Forms alias Claper.Forms
alias Claper.Embeds
@impl true @impl true
def mount(%{"code" => code}, session, socket) do def mount(%{"code" => code}, session, socket) do
@@ -43,6 +44,7 @@ defmodule ClaperWeb.EventLive.Manage do
|> assign(:posts, list_posts(socket, event.uuid)) |> assign(:posts, list_posts(socket, event.uuid))
|> assign(:polls, list_polls(socket, event.presentation_file.id)) |> assign(:polls, list_polls(socket, event.presentation_file.id))
|> assign(:forms, list_forms(socket, event.presentation_file.id)) |> assign(:forms, list_forms(socket, event.presentation_file.id))
|> assign(:embeds, list_embeds(socket, event.presentation_file.id))
|> assign(:create, nil) |> assign(:create, nil)
|> assign(:list_tab, :posts) |> assign(:list_tab, :posts)
|> assign(:create_action, :new) |> assign(:create_action, :new)
@@ -52,6 +54,7 @@ defmodule ClaperWeb.EventLive.Manage do
}) })
|> poll_at_position(false) |> poll_at_position(false)
|> form_at_position(false) |> form_at_position(false)
|> embed_at_position(false)
{:ok, socket, temporary_assigns: [posts: [], form_submits: []]} {:ok, socket, temporary_assigns: [posts: [], form_submits: []]}
end end
@@ -128,6 +131,21 @@ defmodule ClaperWeb.EventLive.Manage do
{:noreply, socket |> assign(:current_poll, poll)} {:noreply, socket |> assign(:current_poll, poll)}
end end
@impl true
def handle_info({:embed_updated, embed}, socket) do
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> embed end)}
end
@impl true
def handle_info(
{:current_embed, embed},
socket
) do
{:noreply, socket |> assign(:current_embed, embed)}
end
@impl true @impl true
def handle_info(_, socket) do def handle_info(_, socket) do
{:noreply, socket} {:noreply, socket}
@@ -159,7 +177,8 @@ defmodule ClaperWeb.EventLive.Manage do
socket socket
|> assign(:state, new_state) |> assign(:state, new_state)
|> poll_at_position |> poll_at_position
|> form_at_position} |> form_at_position
|> embed_at_position}
end end
@impl true @impl true
@@ -185,13 +204,15 @@ defmodule ClaperWeb.EventLive.Manage do
end end
end end
def handle_event("poll-set-default", %{"id" => id}, socket) do def handle_event("poll-set-active", %{"id" => id}, socket) do
Forms.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position) Forms.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Embeds.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Polls.set_default( Polls.set_status(
id, id,
socket.assigns.event.presentation_file.id, socket.assigns.event.presentation_file.id,
socket.assigns.state.position socket.assigns.state.position,
true
) )
poll = Polls.get_poll!(id) poll = Polls.get_poll!(id)
@@ -208,19 +229,28 @@ defmodule ClaperWeb.EventLive.Manage do
{:current_form, nil} {:current_form, nil}
) )
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_embed, nil}
)
{:noreply, {:noreply,
socket socket
|> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id)) |> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id))
|> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))} |> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))
|> assign(:embeds, list_embeds(socket, socket.assigns.event.presentation_file.id))}
end end
def handle_event("form-set-default", %{"id" => id}, socket) do def handle_event("form-set-active", %{"id" => id}, socket) do
Polls.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position) Polls.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Embeds.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Forms.set_default( Forms.set_status(
id, id,
socket.assigns.event.presentation_file.id, socket.assigns.event.presentation_file.id,
socket.assigns.state.position socket.assigns.state.position,
true
) )
form = Forms.get_form!(id) form = Forms.get_form!(id)
@@ -237,12 +267,114 @@ defmodule ClaperWeb.EventLive.Manage do
{:current_poll, nil} {:current_poll, nil}
) )
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_embed, nil}
)
{:noreply, {:noreply,
socket socket
|> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id)) |> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id))
|> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))
|> assign(:embeds, list_embeds(socket, socket.assigns.event.presentation_file.id))}
end
def handle_event("embed-set-active", %{"id" => id}, socket) do
Polls.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Forms.disable_all(socket.assigns.event.presentation_file.id, socket.assigns.state.position)
Embeds.set_status(
id,
socket.assigns.event.presentation_file.id,
socket.assigns.state.position,
true
)
embed = Embeds.get_embed!(id)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_embed, embed}
)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_poll, nil}
)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_form, nil}
)
{:noreply,
socket
|> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id))
|> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))
|> assign(:embeds, list_embeds(socket, socket.assigns.event.presentation_file.id))}
end
def handle_event("poll-set-inactive", %{"id" => id}, socket) do
Polls.set_status(
id,
socket.assigns.event.presentation_file.id,
socket.assigns.state.position,
false
)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_poll, nil}
)
{:noreply,
socket
|> assign(:polls, list_polls(socket, socket.assigns.event.presentation_file.id))}
end
def handle_event("form-set-inactive", %{"id" => id}, socket) do
Forms.set_status(
id,
socket.assigns.event.presentation_file.id,
socket.assigns.state.position,
false
)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_form, nil}
)
{:noreply,
socket
|> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))} |> assign(:forms, list_forms(socket, socket.assigns.event.presentation_file.id))}
end end
def handle_event("embed-set-inactive", %{"id" => id}, socket) do
Embeds.set_status(
id,
socket.assigns.event.presentation_file.id,
socket.assigns.state.position,
false
)
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{socket.assigns.event.uuid}",
{:current_embed, nil}
)
{:noreply,
socket
|> assign(:embeds, list_embeds(socket, socket.assigns.event.presentation_file.id))}
end
@impl true @impl true
def handle_event( def handle_event(
"ban", "ban",
@@ -459,6 +591,12 @@ defmodule ClaperWeb.EventLive.Manage do
}) })
end end
defp apply_action(socket, :add_embed, _params) do
socket
|> assign(:create, "embed")
|> assign(:embed, %Embeds.Embed{})
end
defp apply_action(socket, :import, _params) do defp apply_action(socket, :import, _params) do
socket socket
|> assign(:create, "import") |> assign(:create, "import")
@@ -474,6 +612,15 @@ defmodule ClaperWeb.EventLive.Manage do
|> assign(:form, form) |> assign(:form, form)
end end
defp apply_action(socket, :edit_embed, %{"id" => id}) do
embed = Embeds.get_embed!(id)
socket
|> assign(:create, "embed")
|> assign(:create_action, :edit)
|> assign(:embed, embed)
end
defp poll_at_position( defp poll_at_position(
%{assigns: %{event: event, state: state}} = socket, %{assigns: %{event: event, state: state}} = socket,
broadcast \\ true broadcast \\ true
@@ -516,6 +663,27 @@ defmodule ClaperWeb.EventLive.Manage do
end end
end end
defp embed_at_position(
%{assigns: %{event: event, state: state}} = socket,
broadcast \\ true
) do
with embed <-
Claper.Embeds.get_embed_current_position(
event.presentation_file.id,
state.position
) do
if broadcast do
Phoenix.PubSub.broadcast(
Claper.PubSub,
"event:#{event.uuid}",
{:current_embed, embed}
)
end
socket |> assign(:current_embed, embed)
end
end
defp ban(user, %{assigns: %{event: event, state: state}} = socket) do defp ban(user, %{assigns: %{event: event, state: state}} = socket) do
{:ok, new_state} = {:ok, new_state} =
Claper.Presentations.update_presentation_state(state, %{ Claper.Presentations.update_presentation_state(state, %{
@@ -543,6 +711,10 @@ defmodule ClaperWeb.EventLive.Manage do
Claper.Forms.list_forms(presentation_file_id) Claper.Forms.list_forms(presentation_file_id)
end end
defp list_embeds(_socket, presentation_file_id) do
Claper.Embeds.list_embeds(presentation_file_id)
end
defp list_form_submits(_socket, presentation_file_id) do defp list_form_submits(_socket, presentation_file_id) do
Claper.Forms.list_form_submits(presentation_file_id) Claper.Forms.list_form_submits(presentation_file_id)
end end

View File

@@ -215,6 +215,37 @@
</div> </div>
</a> </a>
</li> </li>
<li id="option-3" role="option" tabindex="-1">
<a
data-phx-link="patch"
data-phx-link-state="push"
href={Routes.event_manage_path(@socket, :add_embed, @event.code)}
class="group flex select-none rounded-xl p-3 w-full hover:bg-gray-200 cursor-pointer"
>
<div class="flex h-12 w-12 flex-none text-white items-center justify-center rounded-lg bg-gradient-to-br from-primary-500 to-secondary-500">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-6 h-6"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M14.25 9.75L16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"
/>
</svg>
</div>
<div class="ml-4 flex-auto text-left">
<p class="font-medium text-gray-700"><%= gettext("Embeded") %></p>
<p class="text-gray-500">
<%= gettext("Add a Youtube video or any web content.") %>
</p>
</div>
</a>
</li>
</ul> </ul>
<%= if (length @polls) == 0 && (length @forms) == 0 do %> <%= if (length @polls) == 0 && (length @forms) == 0 do %>
@@ -290,6 +321,27 @@
</div> </div>
<% end %> <% end %>
<%= if @create == "embed" do %>
<div class="scroll-py-3 overflow-y-auto bg-gray-100 p-3">
<p class="text-xl font-bold">
<%= case @create_action do
:new -> gettext("New Embed")
:edit -> gettext("Edit Embed")
end %>
</p>
<.live_component
module={ClaperWeb.EmbedLive.FormComponent}
id="embed-create"
event_uuid={@event.uuid}
presentation_file={@event.presentation_file}
embed={@embed}
live_action={@create_action}
position={@state.position}
return_to={Routes.event_manage_path(@socket, :show, @event.code)}
/>
</div>
<% end %>
<%= if @create == "import" do %> <%= if @create == "import" do %>
<div class="scroll-py-3 overflow-y-auto bg-gray-100 p-3"> <div class="scroll-py-3 overflow-y-auto bg-gray-100 p-3">
<p class="text-xl font-bold"><%= gettext("Select presentation") %></p> <p class="text-xl font-bold"><%= gettext("Select presentation") %></p>
@@ -396,7 +448,11 @@
</span> </span>
<%= if @state.position == index do %> <%= if @state.position == index do %>
<%= if poll.enabled do %> <%= if poll.enabled do %>
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-supporting-green-100 text-supporting-green-800"> <button
phx-click="poll-set-inactive"
phx-value-id={poll.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-supporting-green-100 text-supporting-green-800"
>
<svg <svg
style="--animate-duration: 10s;" style="--animate-duration: 10s;"
class="mr-1.5 h-2 w-2 text-supporting-green-400 animate__animated animate__flash animate__infinite" class="mr-1.5 h-2 w-2 text-supporting-green-400 animate__animated animate__flash animate__infinite"
@@ -406,10 +462,10 @@
<circle cx="4" cy="4" r="3" /> <circle cx="4" cy="4" r="3" />
</svg> </svg>
<%= gettext("Active") %> <%= gettext("Active") %>
</span> </button>
<% else %> <% else %>
<button <button
phx-click="poll-set-default" phx-click="poll-set-active"
phx-value-id={poll.id} phx-value-id={poll.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-primary-100 text-primary-800" class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-primary-100 text-primary-800"
> >
@@ -472,7 +528,11 @@
</span> </span>
<%= if @state.position == index do %> <%= if @state.position == index do %>
<%= if form.enabled do %> <%= if form.enabled do %>
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-supporting-green-100 text-supporting-green-800"> <button
phx-click="form-set-inactive"
phx-value-id={form.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-supporting-green-100 text-supporting-green-800"
>
<svg <svg
style="--animate-duration: 10s;" style="--animate-duration: 10s;"
class="mr-1.5 h-2 w-2 text-supporting-green-400 animate__animated animate__flash animate__infinite" class="mr-1.5 h-2 w-2 text-supporting-green-400 animate__animated animate__flash animate__infinite"
@@ -482,10 +542,10 @@
<circle cx="4" cy="4" r="3" /> <circle cx="4" cy="4" r="3" />
</svg> </svg>
<%= gettext("Active") %> <%= gettext("Active") %>
</span> </button>
<% else %> <% else %>
<button <button
phx-click="form-set-default" phx-click="form-set-active"
phx-value-id={form.id} phx-value-id={form.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-primary-100 text-primary-800" class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-primary-100 text-primary-800"
> >
@@ -518,6 +578,82 @@
</div> </div>
<div class="h-10 border border-gray-300"></div> <div class="h-10 border border-gray-300"></div>
<% end %> <% end %>
<%= for embed<- Enum.filter(@embeds, fn embed -> embed.position == index end) do %>
<div class="flex space-x-2 items-center">
<div class="flex h-10 w-10 flex-none text-white items-center justify-center rounded-lg bg-gradient-to-br from-primary-500 to-secondary-500">
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-6 w-6"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M14.25 9.75L16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"
/>
</svg>
</div>
<div class="flex space-x-2">
<span>
<span class="font-semibold"><%= gettext "Embed" %></span>: <%= embed.title %>
</span>
<%= if @state.position == index do %>
<%= if embed.enabled do %>
<button
phx-click="embed-set-inactive"
phx-value-id={embed.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-supporting-green-100 text-supporting-green-800"
>
<svg
style="--animate-duration: 10s;"
class="mr-1.5 h-2 w-2 text-supporting-green-400 animate__animated animate__flash animate__infinite"
fill="currentColor"
viewBox="0 0 8 8"
>
<circle cx="4" cy="4" r="3" />
</svg>
<%= gettext("Active") %>
</button>
<% else %>
<button
phx-click="embed-set-active"
phx-value-id={embed.id}
class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-primary-100 text-primary-800"
>
<%= gettext("Set active") %>
</button>
<% end %>
<a
data-phx-link="patch"
data-phx-link-state="push"
href={
Routes.event_manage_path(@socket, :edit_embed, @event.code, embed.id)
}
class="text-xs text-primary-500"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
/>
</svg>
</a>
<% end %>
</div>
</div>
<div class="h-10 border border-gray-300"></div>
<% end %>
</div> </div>
<%= if @state.position == index do %> <%= if @state.position == index do %>
@@ -773,7 +909,7 @@
<ClaperWeb.Component.Input.check <ClaperWeb.Component.Input.check
key={:join_screen_visible} key={:join_screen_visible}
checked={@state.join_screen_visible} checked={@state.join_screen_visible}
shortcut="Q" shortcut={if @create == nil, do: "Q", else: nil}
/> />
<span><%= gettext("Show instructions") %><code class="pl-1">(Q)</code></span> <span><%= gettext("Show instructions") %><code class="pl-1">(Q)</code></span>
</div> </div>
@@ -782,7 +918,7 @@
<ClaperWeb.Component.Input.check <ClaperWeb.Component.Input.check
key={:chat_visible} key={:chat_visible}
checked={@state.chat_visible} checked={@state.chat_visible}
shortcut="W" shortcut={if @create == nil, do: "W", else: nil}
/> />
<span><%= gettext("Show messages") %><code class="pl-1">(W)</code></span> <span><%= gettext("Show messages") %><code class="pl-1">(W)</code></span>
</div> </div>
@@ -792,7 +928,7 @@
key={:poll_visible} key={:poll_visible}
disabled={!@current_poll} disabled={!@current_poll}
checked={@state.poll_visible} checked={@state.poll_visible}
shortcut="E" shortcut={if @create == nil, do: "E", else: nil}
/> />
<span><%= gettext("Show poll results") %><code class="pl-1">(E)</code></span> <span><%= gettext("Show poll results") %><code class="pl-1">(E)</code></span>
</div> </div>
@@ -805,7 +941,7 @@
<ClaperWeb.Component.Input.check <ClaperWeb.Component.Input.check
key={:chat_enabled} key={:chat_enabled}
checked={@state.chat_enabled} checked={@state.chat_enabled}
shortcut="A" shortcut={if @create == nil, do: "A", else: nil}
/> />
<span><%= gettext("Enable messages") %><code class="pl-1">(A)</code></span> <span><%= gettext("Enable messages") %><code class="pl-1">(A)</code></span>
</div> </div>
@@ -814,7 +950,7 @@
<ClaperWeb.Component.Input.check <ClaperWeb.Component.Input.check
key={:anonymous_chat_enabled} key={:anonymous_chat_enabled}
checked={@state.anonymous_chat_enabled} checked={@state.anonymous_chat_enabled}
shortcut="S" shortcut={if @create == nil, do: "S", else: nil}
/> />
<span> <span>
<%= gettext("Enable anonymous messages") %><code class="pl-1">(S)</code> <%= gettext("Enable anonymous messages") %><code class="pl-1">(S)</code>

View File

@@ -49,6 +49,7 @@ defmodule ClaperWeb.EventLive.Presenter do
|> assign(:reacts, []) |> assign(:reacts, [])
|> poll_at_position |> poll_at_position
|> form_at_position |> form_at_position
|> embed_at_position
{:ok, socket, temporary_assigns: [posts: []]} {:ok, socket, temporary_assigns: [posts: []]}
end end
@@ -80,7 +81,8 @@ defmodule ClaperWeb.EventLive.Presenter do
|> assign(:state, state) |> assign(:state, state)
|> push_event("page", %{current_page: state.position}) |> push_event("page", %{current_page: state.position})
|> push_event("reset-global-react", %{}) |> push_event("reset-global-react", %{})
|> poll_at_position} |> poll_at_position
|> embed_at_position}
end end
@impl true @impl true
@@ -105,9 +107,15 @@ defmodule ClaperWeb.EventLive.Presenter do
@impl true @impl true
def handle_info({:poll_updated, poll}, socket) do def handle_info({:poll_updated, poll}, socket) do
{:noreply, if poll.enabled do
socket {:noreply,
|> update(:current_poll, fn _current_poll -> poll end)} socket
|> update(:current_poll, fn _current_poll -> poll end)}
else
{:noreply,
socket
|> update(:current_poll, fn _current_poll -> nil end)}
end
end end
@impl true @impl true
@@ -119,9 +127,15 @@ defmodule ClaperWeb.EventLive.Presenter do
@impl true @impl true
def handle_info({:form_updated, form}, socket) do def handle_info({:form_updated, form}, socket) do
{:noreply, if form.active do
socket {:noreply,
|> update(:current_form, fn _current_form -> form end)} socket
|> update(:current_form, fn _current_form -> form end)}
else
{:noreply,
socket
|> update(:current_form, fn _current_form -> nil end)}
end
end end
@impl true @impl true
@@ -131,6 +145,26 @@ defmodule ClaperWeb.EventLive.Presenter do
|> update(:current_form, fn _current_form -> nil end)} |> update(:current_form, fn _current_form -> nil end)}
end end
@impl true
def handle_info({:embed_updated, embed}, socket) do
if embed.active do
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> embed end)}
else
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> nil end)}
end
end
@impl true
def handle_info({:embed_deleted, _embed}, socket) do
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> nil end)}
end
@impl true @impl true
def handle_info({:chat_visible, value}, socket) do def handle_info({:chat_visible, value}, socket) do
{:noreply, {:noreply,
@@ -178,6 +212,14 @@ defmodule ClaperWeb.EventLive.Presenter do
{:noreply, socket |> assign(:current_form, form)} {:noreply, socket |> assign(:current_form, form)}
end end
@impl true
def handle_info(
{:current_embed, embed},
socket
) do
{:noreply, socket |> assign(:current_embed, embed)}
end
@impl true @impl true
def handle_info(_, socket) do def handle_info(_, socket) do
{:noreply, socket} {:noreply, socket}
@@ -212,6 +254,16 @@ defmodule ClaperWeb.EventLive.Presenter do
end end
end end
defp embed_at_position(%{assigns: %{event: event, state: state}} = socket) do
with embed <-
Claper.Embeds.get_embed_current_position(
event.presentation_file.id,
state.position
) do
socket |> assign(:current_embed, embed)
end
end
defp list_posts(_socket, event_id) do defp list_posts(_socket, event_id) do
Claper.Posts.list_posts(event_id, [:event, :reactions]) Claper.Posts.list_posts(event_id, [:event, :reactions])
end end

View File

@@ -1,7 +1,12 @@
<style> <style>
body { body {
background: black; background: black;
} }
iframe {
width: 100%;
height: 100%;
}
</style> </style>
<div <div
@@ -14,7 +19,7 @@
<!-- JOIN SCREEN --> <!-- JOIN SCREEN -->
<div <div
id="joinScreen" id="joinScreen"
class={"#{if @state.join_screen_visible, do: 'opacity-100', else: 'opacity-0'} h-full w-full flex flex-col justify-center bg-black absolute z-30 transition-opacity"} class={"#{if @state.join_screen_visible, do: 'opacity-100 z-40', else: 'opacity-0'} h-full w-full flex flex-col justify-center bg-black absolute transition-opacity"}
> >
<div class="h-full bg-black text-white bg-opacity-50 text-center flex flex-col items-center justify-center"> <div class="h-full bg-black text-white bg-opacity-50 text-center flex flex-col items-center justify-center">
<span class="font-semibold mb-10 sm:text-3xl md:text-4xl lg:text-6xl"> <span class="font-semibold mb-10 sm:text-3xl md:text-4xl lg:text-6xl">
@@ -68,6 +73,15 @@
</div> </div>
</div> </div>
<% end %> <% end %>
<%= if @current_embed do %>
<!-- EMBED -->
<div
id="embed"
class={"#{if @state.chat_visible, do: 'h-5/6 w-9/12 right-0', else: 'h-screen w-full'} transition-all duration-150 inline-block transform -translate-y-1/2 top-1/2 z-30 absolute transition-opacity"}
>
<%= raw(@current_embed.content) %>
</div>
<% end %>
<!-- MESSAGES --> <!-- MESSAGES -->
<div <div
id="slider-wrapper" id="slider-wrapper"

View File

@@ -1,7 +1,7 @@
defmodule ClaperWeb.EventLive.Show do defmodule ClaperWeb.EventLive.Show do
use ClaperWeb, :live_view use ClaperWeb, :live_view
alias Claper.{Posts, Polls, Forms} alias Claper.{Posts, Polls, Forms, Embeds}
alias ClaperWeb.Presence alias ClaperWeb.Presence
on_mount(ClaperWeb.AttendeeLiveAuth) on_mount(ClaperWeb.AttendeeLiveAuth)
@@ -86,6 +86,7 @@ defmodule ClaperWeb.EventLive.Show do
|> starting_soon_assigns(event) |> starting_soon_assigns(event)
|> get_current_poll(event) |> get_current_poll(event)
|> get_current_form(event) |> get_current_form(event)
|> get_current_embed(event)
|> check_leader(event) |> check_leader(event)
|> leader_list(event) |> leader_list(event)
@@ -245,6 +246,14 @@ defmodule ClaperWeb.EventLive.Show do
end end
end end
@impl true
def handle_info(
{:current_embed, embed},
socket
) do
{:noreply, socket |> assign(:current_embed, embed)}
end
@impl true @impl true
def handle_info({:post_updated, post}, socket) do def handle_info({:post_updated, post}, socket) do
{:noreply, socket |> update(:posts, fn posts -> [post | posts] end)} {:noreply, socket |> update(:posts, fn posts -> [post | posts] end)}
@@ -267,9 +276,15 @@ defmodule ClaperWeb.EventLive.Show do
@impl true @impl true
def handle_info({:poll_updated, poll}, socket) do def handle_info({:poll_updated, poll}, socket) do
{:noreply, if poll.enabled do
socket {:noreply,
|> update(:current_poll, fn _current_poll -> poll end)} socket
|> update(:current_poll, fn _current_poll -> poll end)}
else
{:noreply,
socket
|> update(:current_poll, fn _current_poll -> nil end)}
end
end end
@impl true @impl true
@@ -281,9 +296,15 @@ defmodule ClaperWeb.EventLive.Show do
@impl true @impl true
def handle_info({:form_updated, form}, socket) do def handle_info({:form_updated, form}, socket) do
{:noreply, if form.enabled do
socket {:noreply,
|> update(:current_form, fn _current_form -> form end)} socket
|> update(:current_form, fn _current_form -> form end)}
else
{:noreply,
socket
|> update(:current_form, fn _current_form -> nil end)}
end
end end
@impl true @impl true
@@ -293,6 +314,26 @@ defmodule ClaperWeb.EventLive.Show do
|> update(:current_form, fn _current_form -> nil end)} |> update(:current_form, fn _current_form -> nil end)}
end end
@impl true
def handle_info({:embed_updated, embed}, socket) do
if embed.enabled do
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> embed end)}
else
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> nil end)}
end
end
@impl true
def handle_info({:embed_deleted, _embed}, socket) do
{:noreply,
socket
|> update(:current_embed, fn _current_embed -> nil end)}
end
@impl true @impl true
def handle_info({:react, type}, socket) do def handle_info({:react, type}, socket) do
{:noreply, {:noreply,
@@ -647,6 +688,16 @@ defmodule ClaperWeb.EventLive.Show do
end end
end end
defp get_current_embed(socket, event) do
with embed <-
Embeds.get_embed_current_position(
event.presentation_file.id,
event.presentation_file.presentation_state.position
) do
socket |> assign(:current_embed, embed)
end
end
defp get_current_vote(%{assigns: %{current_user: current_user}} = socket, poll_id) defp get_current_vote(%{assigns: %{current_user: current_user}} = socket, poll_id)
when is_map(current_user) do when is_map(current_user) do
vote = Polls.get_poll_vote(current_user.id, poll_id) vote = Polls.get_poll_vote(current_user.id, poll_id)

View File

@@ -88,6 +88,24 @@
</div> </div>
<% end %> <% end %>
<%= if @current_embed != nil and @current_embed.attendee_visibility == true do %>
<div
id="embed-wrapper-parent"
class="animate__animated animate__zoomInDown w-full lg:w-1/3 lg:mx-auto fixed top-16 z-10 px-2 pb-6 lg:px-7 max-h-screen overflow-y-auto"
>
<div class="transition-all" id="embed-wrapper">
<.live_component
module={ClaperWeb.EventLive.EmbedComponent}
id={"#{@current_embed.id}-embed"}
embed={@current_embed}
current_user={@current_user}
attendee_identifier={@attendee_identifier}
event={@event}
/>
</div>
</div>
<% end %>
<div <div
class="flex flex-col space-y-4 px-5 pt-20 pb-32 lg:w-1/3 bg-black min-h-screen" class="flex flex-col space-y-4 px-5 pt-20 pb-32 lg:w-1/3 bg-black min-h-screen"
id="post-list" id="post-list"

View File

@@ -13,7 +13,7 @@ defmodule ClaperWeb.StatLive.Index do
event = event =
Events.get_managed_event!(socket.assigns.current_user, id, Events.get_managed_event!(socket.assigns.current_user, id,
presentation_file: [polls: [:poll_opts], forms: [:form_submits]] presentation_file: [polls: [:poll_opts], forms: [:form_submits], embeds: []]
) )
grouped_total_votes = Claper.Stats.total_vote_count(event.presentation_file.id) grouped_total_votes = Claper.Stats.total_vote_count(event.presentation_file.id)

View File

@@ -252,6 +252,17 @@
<% end %> <% end %>
<% end %> <% end %>
<%= for embed <- Enum.filter(@event.presentation_file.embeds , fn e -> e.position == position end) do %>
<span class="text-2xl font-semibold text-gray-900 mb-4">
<%= gettext("Embed") %>: <%= embed.title %>
</span>
<div class="px-4 pb-2 pt-3 rounded-b-lg rounded-tr-lg bg-white relative shadow-md text-black break-all mt-4">
<div class="flex space-x-3 items-center">
<%= raw(embed.content) %>
</div>
</div>
<% end %>
<% posts = Enum.filter(@posts, fn p -> p.position == position end) %> <% posts = Enum.filter(@posts, fn p -> p.position == position end) %>
<span class="text-2xl font-semibold text-gray-900 mb-4">Messages</span> <span class="text-2xl font-semibold text-gray-900 mb-4">Messages</span>

View File

@@ -68,6 +68,8 @@ defmodule ClaperWeb.Router do
live("/e/:code/manage/add/form", EventLive.Manage, :add_form) live("/e/:code/manage/add/form", EventLive.Manage, :add_form)
live("/e/:code/manage/import", EventLive.Manage, :import) live("/e/:code/manage/import", EventLive.Manage, :import)
live("/e/:code/manage/edit/form/:id", EventLive.Manage, :edit_form) live("/e/:code/manage/edit/form/:id", EventLive.Manage, :edit_form)
live("/e/:code/manage/add/embed", EventLive.Manage, :add_embed)
live("/e/:code/manage/edit/embed/:id", EventLive.Manage, :edit_embed)
end end
end end

View File

@@ -37,6 +37,39 @@ defmodule ClaperWeb.Component.Input do
""" """
end end
def textarea(assigns) do
assigns =
assigns
|> assign_new(:required, fn -> false end)
|> assign_new(:autofocus, fn -> false end)
|> assign_new(:placeholder, fn -> false end)
|> assign_new(:readonly, fn -> false end)
|> 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)
~H"""
<div class="relative">
<%= label(@form, @key, @name, class: "block text-sm font-medium #{@labelClass}") %>
<div class="mt-1">
<%= text_input(@form, @key,
required: @required,
readonly: @readonly,
autofocus: @autofocus,
placeholder: @placeholder,
autocomplete: @key,
value: @value,
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-4 px-3"
) %>
</div>
<%= if Keyword.has_key?(@form.errors, @key) do %>
<p class="text-supporting-red-500 text-sm"><%= error_tag(@form, @key) %></p>
<% end %>
</div>
"""
end
def select(assigns) do def select(assigns) do
assigns = assigns =
assigns assigns

View File

@@ -15,7 +15,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: lib/claper_web/live/event_live/manage.ex:457 #: lib/claper_web/live/event_live/manage.ex:529
#: lib/claper_web/live/form_live/form_component.html.heex:37 #: 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/live/user_settings_live/show.html.heex:34
#: lib/claper_web/templates/user_registration/new.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34
@@ -78,22 +78,22 @@ msgstr "Wir haben Ihnen eine E-Mail geschickt an"
msgid "Your personal informations only visible by you" msgid "Your personal informations only visible by you"
msgstr "Ihre persönlichen Informationen sind nur für Sie sichtbar" msgstr "Ihre persönlichen Informationen sind nur für Sie sichtbar"
#: lib/claper_web/live/event_live/show.html.heex:387 #: lib/claper_web/live/event_live/show.html.heex:405
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "days" msgid "days"
msgstr "Tage" msgstr "Tage"
#: lib/claper_web/live/event_live/show.html.heex:393 #: lib/claper_web/live/event_live/show.html.heex:411
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "hours" msgid "hours"
msgstr "Stunden" msgstr "Stunden"
#: lib/claper_web/live/event_live/show.html.heex:399 #: lib/claper_web/live/event_live/show.html.heex:417
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "minutes" msgid "minutes"
msgstr "Minuten" msgstr "Minuten"
#: lib/claper_web/live/event_live/show.html.heex:118 #: lib/claper_web/live/event_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Be the first to react !" msgid "Be the first to react !"
msgstr "Seien Sie der Erste, der reagiert!" msgstr "Seien Sie der Erste, der reagiert!"
@@ -101,7 +101,7 @@ msgstr "Seien Sie der Erste, der reagiert!"
#: lib/claper_web/live/event_live/event_card_component.ex:98 #: lib/claper_web/live/event_live/event_card_component.ex:98
#: lib/claper_web/live/event_live/join.ex:42 #: lib/claper_web/live/event_live/join.ex:42
#: lib/claper_web/live/event_live/join.html.heex:106 #: lib/claper_web/live/event_live/join.html.heex:106
#: lib/claper_web/live/event_live/show.html.heex:239 #: lib/claper_web/live/event_live/show.html.heex:257
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Join" msgid "Join"
msgstr "Teilnehmen" msgstr "Teilnehmen"
@@ -119,7 +119,7 @@ msgstr "Dashboard"
msgid "Host" msgid "Host"
msgstr "Host" msgstr "Host"
#: lib/claper_web/live/event_live/show.html.heex:405 #: lib/claper_web/live/event_live/show.html.heex:423
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "seconds" msgid "seconds"
msgstr "Sekunden" msgstr "Sekunden"
@@ -171,7 +171,7 @@ msgid "Name of your presentation"
msgstr "Name Ihrer Präsentation" msgstr "Name Ihrer Präsentation"
#: lib/claper_web/live/event_live/presenter.html.heex:21 #: lib/claper_web/live/event_live/presenter.html.heex:21
#: lib/claper_web/live/event_live/show.html.heex:414 #: lib/claper_web/live/event_live/show.html.heex:432
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Scan to interact in real-time" msgid "Scan to interact in real-time"
msgstr "Scannen und in Echtzeit interagieren" msgstr "Scannen und in Echtzeit interagieren"
@@ -213,7 +213,7 @@ msgstr "Zurück zur Startseite"
msgid "Created successfully" msgid "Created successfully"
msgstr "Erfolgreich erstellt" msgstr "Erfolgreich erstellt"
#: lib/claper_web/live/event_live/manage.ex:23 #: lib/claper_web/live/event_live/manage.ex:24
#: lib/claper_web/live/event_live/presenter.ex:21 #: lib/claper_web/live/event_live/presenter.ex:21
#: lib/claper_web/live/event_live/show.ex:24 #: lib/claper_web/live/event_live/show.ex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -228,6 +228,7 @@ msgstr "Präsentation existiert nicht"
msgid "Edit" msgid "Edit"
msgstr "Ändern" msgstr "Ändern"
#: lib/claper_web/live/embed_live/form_component.html.heex:38
#: lib/claper_web/live/event_live/event_form_component.html.heex:18 #: lib/claper_web/live/event_live/event_form_component.html.heex:18
#: lib/claper_web/live/event_live/event_form_component.html.heex:25 #: lib/claper_web/live/event_live/event_form_component.html.heex:25
#: lib/claper_web/live/event_live/index.ex:71 #: lib/claper_web/live/event_live/index.ex:71
@@ -238,10 +239,11 @@ msgstr "Ändern"
msgid "Create" msgid "Create"
msgstr "Erstellen" msgstr "Erstellen"
#: lib/claper_web/live/embed_live/form_component.html.heex:43
#: lib/claper_web/live/event_live/event_card_component.ex:171 #: lib/claper_web/live/event_live/event_card_component.ex:171
#: lib/claper_web/live/event_live/event_form_component.html.heex:30 #: lib/claper_web/live/event_live/event_form_component.html.heex:30
#: lib/claper_web/live/event_live/manage.html.heex:631 #: lib/claper_web/live/event_live/manage.html.heex:755
#: lib/claper_web/live/event_live/manage.html.heex:731 #: lib/claper_web/live/event_live/manage.html.heex:855
#: lib/claper_web/live/event_live/post_component.ex:44 #: lib/claper_web/live/event_live/post_component.ex:44
#: lib/claper_web/live/event_live/post_component.ex:116 #: lib/claper_web/live/event_live/post_component.ex:116
#: lib/claper_web/live/form_live/form_component.html.heex:103 #: lib/claper_web/live/form_live/form_component.html.heex:103
@@ -250,6 +252,7 @@ msgstr "Erstellen"
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
#: lib/claper_web/live/embed_live/form_component.html.heex:39
#: lib/claper_web/live/event_live/event_form_component.html.heex:17 #: lib/claper_web/live/event_live/event_form_component.html.heex:17
#: lib/claper_web/live/event_live/event_form_component.html.heex:24 #: lib/claper_web/live/event_live/event_form_component.html.heex:24
#: lib/claper_web/live/form_live/form_component.html.heex:99 #: lib/claper_web/live/form_live/form_component.html.heex:99
@@ -373,12 +376,12 @@ msgstr "Datei ändern"
msgid "Presentation replaced" msgid "Presentation replaced"
msgstr "Präsentation ersetzt" msgstr "Präsentation ersetzt"
#: lib/claper_web/live/event_live/manage.html.heex:256 #: lib/claper_web/live/event_live/manage.html.heex:287
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit poll" msgid "Edit poll"
msgstr "Umfrage bearbeiten" msgstr "Umfrage bearbeiten"
#: lib/claper_web/live/event_live/manage.html.heex:255 #: lib/claper_web/live/event_live/manage.html.heex:286
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New poll" msgid "New poll"
msgstr "Neue Umfrage" msgstr "Neue Umfrage"
@@ -399,7 +402,7 @@ msgid "Add poll to know opinion of your public."
msgstr "Fügen Sie eine Umfrage hinzu, um die Meinung Ihres Publikums zu erfahren." msgstr "Fügen Sie eine Umfrage hinzu, um die Meinung Ihres Publikums zu erfahren."
#: lib/claper_web/live/event_live/manage.html.heex:174 #: lib/claper_web/live/event_live/manage.html.heex:174
#: lib/claper_web/live/event_live/manage.html.heex:395 #: lib/claper_web/live/event_live/manage.html.heex:447
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Poll" msgid "Poll"
msgstr "Umfrage" msgstr "Umfrage"
@@ -443,8 +446,9 @@ msgstr "Benutzer Email-Adresse"
msgid "Present/Customize" msgid "Present/Customize"
msgstr "Vorstellen/Ändern" msgstr "Vorstellen/Ändern"
#: lib/claper_web/live/event_live/manage.html.heex:408 #: lib/claper_web/live/event_live/manage.html.heex:460
#: lib/claper_web/live/event_live/manage.html.heex:484 #: lib/claper_web/live/event_live/manage.html.heex:536
#: lib/claper_web/live/event_live/manage.html.heex:606
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Active" msgid "Active"
msgstr "Aktiv" msgstr "Aktiv"
@@ -454,12 +458,12 @@ msgstr "Aktiv"
msgid "Changing your file will remove all interaction elements like polls associated." msgid "Changing your file will remove all interaction elements like polls associated."
msgstr "Wenn Sie Ihre Datei ändern, werden alle damit verbundenen Interaktionselemente wie Umfragen entfernt." msgstr "Wenn Sie Ihre Datei ändern, werden alle damit verbundenen Interaktionselemente wie Umfragen entfernt."
#: lib/claper_web/live/event_live/manage.html.heex:584 #: lib/claper_web/live/event_live/manage.html.heex:708
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages from attendees will appear here." msgid "Messages from attendees will appear here."
msgstr "Nachrichten von Teilnehmern werden hier erscheinen." msgstr "Nachrichten von Teilnehmern werden hier erscheinen."
#: lib/claper_web/live/event_live/manage.html.heex:770 #: lib/claper_web/live/event_live/manage.html.heex:894
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "On screen settings" msgid "On screen settings"
msgstr "Bildschirmeinstellungen" msgstr "Bildschirmeinstellungen"
@@ -484,19 +488,20 @@ msgstr "Start"
msgid "Press <strong>F</strong> in the presentation window to enable fullscreen" msgid "Press <strong>F</strong> in the presentation window to enable fullscreen"
msgstr "Drücken Sie <strong>F</strong> im Präsentationsfenster, um den Vollbildmodus zu aktivieren" msgstr "Drücken Sie <strong>F</strong> im Präsentationsfenster, um den Vollbildmodus zu aktivieren"
#: lib/claper_web/live/event_live/show.html.heex:298 #: lib/claper_web/live/event_live/show.html.heex:316
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ask, comment..." msgid "Ask, comment..."
msgstr "Fragen, kommentieren..." msgstr "Fragen, kommentieren..."
#: lib/claper_web/live/event_live/manage.html.heex:556 #: lib/claper_web/live/event_live/manage.html.heex:680
#: lib/claper_web/live/stat_live/index.html.heex:71 #: lib/claper_web/live/stat_live/index.html.heex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages" msgid "Messages"
msgstr "Nachrichten" msgstr "Nachrichten"
#: lib/claper_web/live/event_live/manage.html.heex:416 #: lib/claper_web/live/event_live/manage.html.heex:468
#: lib/claper_web/live/event_live/manage.html.heex:492 #: lib/claper_web/live/event_live/manage.html.heex:544
#: lib/claper_web/live/event_live/manage.html.heex:614
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set active" msgid "Set active"
msgstr "Aktivieren" msgstr "Aktivieren"
@@ -532,26 +537,26 @@ msgstr "Wenn Sie Probleme mit der obigen Schaltfläche haben, kopieren Sie die f
msgid "You can change your email by visiting the URL below" msgid "You can change your email by visiting the URL below"
msgstr "Sie können Ihre E-Mail-Adresse ändern, indem Sie die folgende URL aufrufen" msgstr "Sie können Ihre E-Mail-Adresse ändern, indem Sie die folgende URL aufrufen"
#: lib/claper_web/live/event_live/manage.html.heex:525 #: lib/claper_web/live/event_live/manage.html.heex:649
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add interaction" msgid "Add interaction"
msgstr "Interaktion hinzufügen" msgstr "Interaktion hinzufügen"
#: lib/claper_web/live/event_live/manage.html.heex:607 #: lib/claper_web/live/event_live/manage.html.heex:731
#: lib/claper_web/live/event_live/manage.html.heex:622 #: lib/claper_web/live/event_live/manage.html.heex:746
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?" msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?"
msgstr "Wenn Sie diesen Benutzer sperren, werden alle seine Nachrichten gelöscht, und er kann nicht mehr beitreten. Bestätigen?" msgstr "Wenn Sie diesen Benutzer sperren, werden alle seine Nachrichten gelöscht, und er kann nicht mehr beitreten. Bestätigen?"
#: lib/claper_web/live/event_live/show.ex:50 #: lib/claper_web/live/event_live/show.ex:50
#: lib/claper_web/live/event_live/show.ex:197 #: lib/claper_web/live/event_live/show.ex:198
#: lib/claper_web/live/event_live/show.ex:212 #: lib/claper_web/live/event_live/show.ex:213
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You have been banned from this event" msgid "You have been banned from this event"
msgstr "Sie wurden von dieser Veranstaltung ausgeschlossen" msgstr "Sie wurden von dieser Veranstaltung ausgeschlossen"
#: lib/claper_web/live/event_live/manage.html.heex:601 #: lib/claper_web/live/event_live/manage.html.heex:725
#: lib/claper_web/live/event_live/manage.html.heex:616 #: lib/claper_web/live/event_live/manage.html.heex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ban" msgid "Ban"
msgstr "Ban" msgstr "Ban"
@@ -645,7 +650,7 @@ msgstr "Veranstaltung"
msgid "Interactions history" msgid "Interactions history"
msgstr "Interaktionsgeschichte" msgstr "Interaktionsgeschichte"
#: lib/claper_web/live/stat_live/index.html.heex:260 #: lib/claper_web/live/stat_live/index.html.heex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No messages has been sent" msgid "No messages has been sent"
msgstr "Es wurden keine Nachrichten gesendet" msgstr "Es wurden keine Nachrichten gesendet"
@@ -705,7 +710,7 @@ msgstr "Anmeldung"
msgid "Connect to your account" msgid "Connect to your account"
msgstr "Verbinden Sie sich mit Ihrem Konto" msgstr "Verbinden Sie sich mit Ihrem Konto"
#: lib/claper_web/live/event_live/show.html.heex:423 #: lib/claper_web/live/event_live/show.html.heex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Or use the code:" msgid "Or use the code:"
msgstr "Oder verwenden Sie den Code:" msgstr "Oder verwenden Sie den Code:"
@@ -776,34 +781,34 @@ msgstr "Fügen Sie ein Formular hinzu, um Daten von Ihrem Publikum zu sammeln."
msgid "Current form" msgid "Current form"
msgstr "Aktuelles Formular" msgstr "Aktuelles Formular"
#: lib/claper_web/live/event_live/manage.html.heex:277 #: lib/claper_web/live/event_live/manage.html.heex:308
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit form" msgid "Edit form"
msgstr "Formular bearbeiten" msgstr "Formular bearbeiten"
#: lib/claper_web/live/event_live/manage.html.heex:211 #: lib/claper_web/live/event_live/manage.html.heex:211
#: lib/claper_web/live/event_live/manage.html.heex:471 #: lib/claper_web/live/event_live/manage.html.heex:523
#: lib/claper_web/live/stat_live/index.html.heex:215 #: lib/claper_web/live/stat_live/index.html.heex:215
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form" msgid "Form"
msgstr "Formular" msgstr "Formular"
#: lib/claper_web/live/event_live/manage.html.heex:559 #: lib/claper_web/live/event_live/manage.html.heex:683
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions" msgid "Form submissions"
msgstr "Abgeschickte Formulare" msgstr "Abgeschickte Formulare"
#: lib/claper_web/live/event_live/manage.html.heex:711 #: lib/claper_web/live/event_live/manage.html.heex:835
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions from attendees will appear here." msgid "Form submissions from attendees will appear here."
msgstr "Formulareinsendungen der Teilnehmer werden hier angezeigt." msgstr "Formulareinsendungen der Teilnehmer werden hier angezeigt."
#: lib/claper_web/live/event_live/manage.ex:456 #: lib/claper_web/live/event_live/manage.ex:528
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: lib/claper_web/live/event_live/manage.html.heex:276 #: lib/claper_web/live/event_live/manage.html.heex:307
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New form" msgid "New form"
msgstr "Neues Formular" msgstr "Neues Formular"
@@ -828,7 +833,7 @@ msgstr "Abschicken"
msgid "Text" msgid "Text"
msgstr "Text" msgstr "Text"
#: lib/claper_web/live/event_live/manage.html.heex:736 #: lib/claper_web/live/event_live/manage.html.heex:860
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This cannot be undone, confirm ?" msgid "This cannot be undone, confirm ?"
msgstr "Dies kann nicht rückgängig gemacht werden. Bestätigen?" msgstr "Dies kann nicht rückgängig gemacht werden. Bestätigen?"
@@ -868,22 +873,22 @@ msgstr "Wählen Sie eine oder mehrere Optionen aus"
msgid "Multiple answers" msgid "Multiple answers"
msgstr "Mehrere Antworten" msgstr "Mehrere Antworten"
#: lib/claper_web/live/event_live/manage.html.heex:244 #: lib/claper_web/live/event_live/manage.html.heex:275
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Import all interactions from another presentation" msgid "Import all interactions from another presentation"
msgstr "Importieren Sie alle Interaktionen aus einer anderen Präsentation" msgstr "Importieren Sie alle Interaktionen aus einer anderen Präsentation"
#: lib/claper_web/live/event_live/manage.ex:183 #: lib/claper_web/live/event_live/manage.ex:202
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions import failed" msgid "Interactions import failed"
msgstr "Der Import der Interaktionen ist fehlgeschlagen" msgstr "Der Import der Interaktionen ist fehlgeschlagen"
#: lib/claper_web/live/event_live/manage.ex:176 #: lib/claper_web/live/event_live/manage.ex:195
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions imported successfully" msgid "Interactions imported successfully"
msgstr "Interaktionen erfolgreich importiert" msgstr "Interaktionen erfolgreich importiert"
#: lib/claper_web/live/event_live/manage.html.heex:295 #: lib/claper_web/live/event_live/manage.html.heex:347
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select presentation" msgid "Select presentation"
msgstr "Präsentation auswählen" msgstr "Präsentation auswählen"
@@ -893,55 +898,55 @@ msgstr "Präsentation auswählen"
msgid "PDF, PPT, PPTX up to %{size} MB" msgid "PDF, PPT, PPTX up to %{size} MB"
msgstr "PDF, PPT, PPTX bis zu %{size} MB" msgstr "PDF, PPT, PPTX bis zu %{size} MB"
#: lib/claper_web/live/event_live/manage.html.heex:796 #: lib/claper_web/live/event_live/manage.html.heex:920
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Attendees settings" msgid "Attendees settings"
msgstr "Teilnehmereinstellungen" msgstr "Teilnehmereinstellungen"
#: lib/claper_web/live/event_live/manage.html.heex:800 #: lib/claper_web/live/event_live/manage.html.heex:924
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable messages" msgid "Enable messages"
msgstr "Nachrichten aktivieren" msgstr "Nachrichten aktivieren"
#: lib/claper_web/live/event_live/manage.html.heex:777 #: lib/claper_web/live/event_live/manage.html.heex:901
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show instructions" msgid "Show instructions"
msgstr "Anleitung anzeigen" msgstr "Anleitung anzeigen"
#: lib/claper_web/live/event_live/manage.html.heex:782 #: lib/claper_web/live/event_live/manage.html.heex:906
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show messages" msgid "Show messages"
msgstr "Nachrichten anzeigen" msgstr "Nachrichten anzeigen"
#: lib/claper_web/live/event_live/manage.html.heex:791 #: lib/claper_web/live/event_live/manage.html.heex:915
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show poll results" msgid "Show poll results"
msgstr "Umfrageergebnisse anzeigen" msgstr "Umfrageergebnisse anzeigen"
#: lib/claper_web/live/event_live/show.html.heex:318 #: lib/claper_web/live/event_live/show.html.heex:336
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages deactivated" msgid "Messages deactivated"
msgstr "Nachrichten deaktiviert" msgstr "Nachrichten deaktiviert"
#: lib/claper_web/live/event_live/show.html.heex:161 #: lib/claper_web/live/event_live/show.html.heex:179
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#: lib/claper_web/live/event_live/show.html.heex:282 #: lib/claper_web/live/event_live/show.html.heex:300
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Anonymous" msgid "Anonymous"
msgstr "Anonymous" msgstr "Anonymous"
#: lib/claper_web/live/event_live/show.html.heex:208 #: lib/claper_web/live/event_live/show.html.heex:226
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: lib/claper_web/live/event_live/manage.html.heex:808 #: lib/claper_web/live/event_live/manage.html.heex:932
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Enable anonymous messages" msgid "Enable anonymous messages"
msgstr "Anonyme Nachrichten aktivieren" msgstr "Anonyme Nachrichten aktivieren"
#: lib/claper_web/live/event_live/show.html.heex:189 #: lib/claper_web/live/event_live/show.html.heex:207
#: lib/claper_web/live/event_live/show.html.heex:234 #: lib/claper_web/live/event_live/show.html.heex:252
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Enter your name" msgid "Enter your name"
msgstr "Benutze deinen Namen" msgstr "Benutze deinen Namen"
@@ -951,12 +956,12 @@ msgstr "Benutze deinen Namen"
msgid "Or go to %{url} and use the code:" msgid "Or go to %{url} and use the code:"
msgstr "Oder gehen Sie zu %{url} und verwenden Sie den Code:" msgstr "Oder gehen Sie zu %{url} und verwenden Sie den Code:"
#: lib/claper_web/live/event_live/show.html.heex:202 #: lib/claper_web/live/event_live/show.html.heex:220
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Use your name" msgid "Use your name"
msgstr "Benutze deinen Namen" msgstr "Benutze deinen Namen"
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "disabled" msgid "disabled"
msgstr "deaktiviert" msgstr "deaktiviert"
@@ -966,6 +971,57 @@ msgstr "deaktiviert"
msgid "Account creation is disabled" msgid "Account creation is disabled"
msgstr "Kontoerstellung ist deaktiviert" msgstr "Kontoerstellung ist deaktiviert"
#: lib/claper_web/live/event_live/manage.html.heex:244
#, elixir-autogen, elixir-format
msgid "Add a Youtube video or any web content."
msgstr "Fügen Sie ein YouTube-Video oder einen beliebigen Webinhalt hinzu."
#: lib/claper_web/live/embed_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "Content of your embed"
msgstr "Inhalt Ihrer Einbettung"
#: lib/claper_web/live/event_live/embed_component.ex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Current embed"
msgstr "Aktuelle Einbettung"
#: lib/claper_web/live/event_live/manage.html.heex:329
#, elixir-autogen, elixir-format
msgid "Edit Embed"
msgstr "Einbetten bearbeiten"
#: lib/claper_web/live/event_live/manage.html.heex:593
#: lib/claper_web/live/stat_live/index.html.heex:257
#, elixir-autogen, elixir-format
msgid "Embed"
msgstr "Einbetten"
#: lib/claper_web/live/event_live/manage.html.heex:242
#, elixir-autogen, elixir-format
msgid "Embeded"
msgstr "Eingebettet"
#: lib/claper_web/live/event_live/manage.html.heex:328
#, elixir-autogen, elixir-format
msgid "New Embed"
msgstr "Neue Einbettung"
#: lib/claper_web/live/event_live/embed_component.ex:36
#, elixir-autogen, elixir-format, fuzzy
msgid "See current embed"
msgstr "Siehe aktuelle Einbettung"
#: lib/claper_web/live/embed_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "This will delete the embed, are you sure?"
msgstr "Dadurch wird die Einbettung gelöscht. Sind Sie sicher?"
#: lib/claper_web/live/embed_live/form_component.html.heex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Title of your embed"
msgstr "Titel Ihrer Einbettung"
#: lib/claper_web/templates/user_reset_password/edit.html.heex:51 #: lib/claper_web/templates/user_reset_password/edit.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm new password" msgid "Confirm new password"
@@ -1005,4 +1061,4 @@ msgstr "Aktualisieren Sie Ihr Passwort"
#: lib/claper_web/templates/user_reset_password/new.html.heex:41 #: lib/claper_web/templates/user_reset_password/new.html.heex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Send link to reset password" msgid "Send link to reset password"
msgstr "Link zum Zurücksetzen des Passworts senden" msgstr "Link zum Zurücksetzen des Passworts senden"

View File

@@ -17,7 +17,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.ex:457 #: lib/claper_web/live/event_live/manage.ex:529
#: lib/claper_web/live/form_live/form_component.html.heex:37 #: 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/live/user_settings_live/show.html.heex:34
#: lib/claper_web/templates/user_registration/new.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34
@@ -80,22 +80,22 @@ msgstr ""
msgid "Your personal informations only visible by you" msgid "Your personal informations only visible by you"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:387 #: lib/claper_web/live/event_live/show.html.heex:405
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "days" msgid "days"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:393 #: lib/claper_web/live/event_live/show.html.heex:411
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "hours" msgid "hours"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:399 #: lib/claper_web/live/event_live/show.html.heex:417
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "minutes" msgid "minutes"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:118 #: lib/claper_web/live/event_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Be the first to react !" msgid "Be the first to react !"
msgstr "" msgstr ""
@@ -103,7 +103,7 @@ msgstr ""
#: lib/claper_web/live/event_live/event_card_component.ex:98 #: lib/claper_web/live/event_live/event_card_component.ex:98
#: lib/claper_web/live/event_live/join.ex:42 #: lib/claper_web/live/event_live/join.ex:42
#: lib/claper_web/live/event_live/join.html.heex:106 #: lib/claper_web/live/event_live/join.html.heex:106
#: lib/claper_web/live/event_live/show.html.heex:239 #: lib/claper_web/live/event_live/show.html.heex:257
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Join" msgid "Join"
msgstr "" msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
msgid "Host" msgid "Host"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:405 #: lib/claper_web/live/event_live/show.html.heex:423
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "seconds" msgid "seconds"
msgstr "" msgstr ""
@@ -173,7 +173,7 @@ msgid "Name of your presentation"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/presenter.html.heex:21 #: lib/claper_web/live/event_live/presenter.html.heex:21
#: lib/claper_web/live/event_live/show.html.heex:414 #: lib/claper_web/live/event_live/show.html.heex:432
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Scan to interact in real-time" msgid "Scan to interact in real-time"
msgstr "" msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
msgid "Created successfully" msgid "Created successfully"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.ex:23 #: lib/claper_web/live/event_live/manage.ex:24
#: lib/claper_web/live/event_live/presenter.ex:21 #: lib/claper_web/live/event_live/presenter.ex:21
#: lib/claper_web/live/event_live/show.ex:24 #: lib/claper_web/live/event_live/show.ex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -230,6 +230,7 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:38
#: lib/claper_web/live/event_live/event_form_component.html.heex:18 #: lib/claper_web/live/event_live/event_form_component.html.heex:18
#: lib/claper_web/live/event_live/event_form_component.html.heex:25 #: lib/claper_web/live/event_live/event_form_component.html.heex:25
#: lib/claper_web/live/event_live/index.ex:71 #: lib/claper_web/live/event_live/index.ex:71
@@ -240,10 +241,11 @@ msgstr ""
msgid "Create" msgid "Create"
msgstr "" msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:43
#: lib/claper_web/live/event_live/event_card_component.ex:171 #: lib/claper_web/live/event_live/event_card_component.ex:171
#: lib/claper_web/live/event_live/event_form_component.html.heex:30 #: lib/claper_web/live/event_live/event_form_component.html.heex:30
#: lib/claper_web/live/event_live/manage.html.heex:631 #: lib/claper_web/live/event_live/manage.html.heex:755
#: lib/claper_web/live/event_live/manage.html.heex:731 #: lib/claper_web/live/event_live/manage.html.heex:855
#: lib/claper_web/live/event_live/post_component.ex:44 #: lib/claper_web/live/event_live/post_component.ex:44
#: lib/claper_web/live/event_live/post_component.ex:116 #: lib/claper_web/live/event_live/post_component.ex:116
#: lib/claper_web/live/form_live/form_component.html.heex:103 #: lib/claper_web/live/form_live/form_component.html.heex:103
@@ -252,6 +254,7 @@ msgstr ""
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:39
#: lib/claper_web/live/event_live/event_form_component.html.heex:17 #: lib/claper_web/live/event_live/event_form_component.html.heex:17
#: lib/claper_web/live/event_live/event_form_component.html.heex:24 #: lib/claper_web/live/event_live/event_form_component.html.heex:24
#: lib/claper_web/live/form_live/form_component.html.heex:99 #: lib/claper_web/live/form_live/form_component.html.heex:99
@@ -375,12 +378,12 @@ msgstr ""
msgid "Presentation replaced" msgid "Presentation replaced"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:256 #: lib/claper_web/live/event_live/manage.html.heex:287
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit poll" msgid "Edit poll"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:255 #: lib/claper_web/live/event_live/manage.html.heex:286
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New poll" msgid "New poll"
msgstr "" msgstr ""
@@ -401,7 +404,7 @@ msgid "Add poll to know opinion of your public."
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:174 #: lib/claper_web/live/event_live/manage.html.heex:174
#: lib/claper_web/live/event_live/manage.html.heex:395 #: lib/claper_web/live/event_live/manage.html.heex:447
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Poll" msgid "Poll"
msgstr "" msgstr ""
@@ -445,8 +448,9 @@ msgstr ""
msgid "Present/Customize" msgid "Present/Customize"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:408 #: lib/claper_web/live/event_live/manage.html.heex:460
#: lib/claper_web/live/event_live/manage.html.heex:484 #: lib/claper_web/live/event_live/manage.html.heex:536
#: lib/claper_web/live/event_live/manage.html.heex:606
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Active" msgid "Active"
msgstr "" msgstr ""
@@ -456,12 +460,12 @@ msgstr ""
msgid "Changing your file will remove all interaction elements like polls associated." msgid "Changing your file will remove all interaction elements like polls associated."
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:584 #: lib/claper_web/live/event_live/manage.html.heex:708
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages from attendees will appear here." msgid "Messages from attendees will appear here."
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:770 #: lib/claper_web/live/event_live/manage.html.heex:894
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "On screen settings" msgid "On screen settings"
msgstr "" msgstr ""
@@ -486,19 +490,20 @@ msgstr ""
msgid "Press <strong>F</strong> in the presentation window to enable fullscreen" msgid "Press <strong>F</strong> in the presentation window to enable fullscreen"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:298 #: lib/claper_web/live/event_live/show.html.heex:316
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ask, comment..." msgid "Ask, comment..."
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:556 #: lib/claper_web/live/event_live/manage.html.heex:680
#: lib/claper_web/live/stat_live/index.html.heex:71 #: lib/claper_web/live/stat_live/index.html.heex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages" msgid "Messages"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:416 #: lib/claper_web/live/event_live/manage.html.heex:468
#: lib/claper_web/live/event_live/manage.html.heex:492 #: lib/claper_web/live/event_live/manage.html.heex:544
#: lib/claper_web/live/event_live/manage.html.heex:614
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set active" msgid "Set active"
msgstr "" msgstr ""
@@ -534,26 +539,26 @@ msgstr ""
msgid "You can change your email by visiting the URL below" msgid "You can change your email by visiting the URL below"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:525 #: lib/claper_web/live/event_live/manage.html.heex:649
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add interaction" msgid "Add interaction"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:607 #: lib/claper_web/live/event_live/manage.html.heex:731
#: lib/claper_web/live/event_live/manage.html.heex:622 #: lib/claper_web/live/event_live/manage.html.heex:746
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?" msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.ex:50 #: lib/claper_web/live/event_live/show.ex:50
#: lib/claper_web/live/event_live/show.ex:197 #: lib/claper_web/live/event_live/show.ex:198
#: lib/claper_web/live/event_live/show.ex:212 #: lib/claper_web/live/event_live/show.ex:213
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You have been banned from this event" msgid "You have been banned from this event"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:601 #: lib/claper_web/live/event_live/manage.html.heex:725
#: lib/claper_web/live/event_live/manage.html.heex:616 #: lib/claper_web/live/event_live/manage.html.heex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ban" msgid "Ban"
msgstr "" msgstr ""
@@ -647,7 +652,7 @@ msgstr ""
msgid "Interactions history" msgid "Interactions history"
msgstr "" msgstr ""
#: lib/claper_web/live/stat_live/index.html.heex:260 #: lib/claper_web/live/stat_live/index.html.heex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No messages has been sent" msgid "No messages has been sent"
msgstr "" msgstr ""
@@ -707,7 +712,7 @@ msgstr ""
msgid "Connect to your account" msgid "Connect to your account"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:423 #: lib/claper_web/live/event_live/show.html.heex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Or use the code:" msgid "Or use the code:"
msgstr "" msgstr ""
@@ -778,34 +783,34 @@ msgstr ""
msgid "Current form" msgid "Current form"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:277 #: lib/claper_web/live/event_live/manage.html.heex:308
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit form" msgid "Edit form"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:211 #: lib/claper_web/live/event_live/manage.html.heex:211
#: lib/claper_web/live/event_live/manage.html.heex:471 #: lib/claper_web/live/event_live/manage.html.heex:523
#: lib/claper_web/live/stat_live/index.html.heex:215 #: lib/claper_web/live/stat_live/index.html.heex:215
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form" msgid "Form"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:559 #: lib/claper_web/live/event_live/manage.html.heex:683
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions" msgid "Form submissions"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:711 #: lib/claper_web/live/event_live/manage.html.heex:835
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions from attendees will appear here." msgid "Form submissions from attendees will appear here."
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.ex:456 #: lib/claper_web/live/event_live/manage.ex:528
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:276 #: lib/claper_web/live/event_live/manage.html.heex:307
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New form" msgid "New form"
msgstr "" msgstr ""
@@ -830,7 +835,7 @@ msgstr ""
msgid "Text" msgid "Text"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:736 #: lib/claper_web/live/event_live/manage.html.heex:860
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This cannot be undone, confirm ?" msgid "This cannot be undone, confirm ?"
msgstr "" msgstr ""
@@ -870,22 +875,22 @@ msgstr ""
msgid "Multiple answers" msgid "Multiple answers"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:244 #: lib/claper_web/live/event_live/manage.html.heex:275
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Import all interactions from another presentation" msgid "Import all interactions from another presentation"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.ex:183 #: lib/claper_web/live/event_live/manage.ex:202
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions import failed" msgid "Interactions import failed"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.ex:176 #: lib/claper_web/live/event_live/manage.ex:195
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions imported successfully" msgid "Interactions imported successfully"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:295 #: lib/claper_web/live/event_live/manage.html.heex:347
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select presentation" msgid "Select presentation"
msgstr "" msgstr ""
@@ -895,55 +900,55 @@ msgstr ""
msgid "PDF, PPT, PPTX up to %{size} MB" msgid "PDF, PPT, PPTX up to %{size} MB"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:796 #: lib/claper_web/live/event_live/manage.html.heex:920
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Attendees settings" msgid "Attendees settings"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:800 #: lib/claper_web/live/event_live/manage.html.heex:924
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable messages" msgid "Enable messages"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:777 #: lib/claper_web/live/event_live/manage.html.heex:901
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show instructions" msgid "Show instructions"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:782 #: lib/claper_web/live/event_live/manage.html.heex:906
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show messages" msgid "Show messages"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:791 #: lib/claper_web/live/event_live/manage.html.heex:915
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show poll results" msgid "Show poll results"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:318 #: lib/claper_web/live/event_live/show.html.heex:336
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages deactivated" msgid "Messages deactivated"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:161 #: lib/claper_web/live/event_live/show.html.heex:179
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#: lib/claper_web/live/event_live/show.html.heex:282 #: lib/claper_web/live/event_live/show.html.heex:300
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Anonymous" msgid "Anonymous"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:208 #: lib/claper_web/live/event_live/show.html.heex:226
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:808 #: lib/claper_web/live/event_live/manage.html.heex:932
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable anonymous messages" msgid "Enable anonymous messages"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:189 #: lib/claper_web/live/event_live/show.html.heex:207
#: lib/claper_web/live/event_live/show.html.heex:234 #: lib/claper_web/live/event_live/show.html.heex:252
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enter your name" msgid "Enter your name"
msgstr "" msgstr ""
@@ -953,12 +958,12 @@ msgstr ""
msgid "Or go to %{url} and use the code:" msgid "Or go to %{url} and use the code:"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:202 #: lib/claper_web/live/event_live/show.html.heex:220
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Use your name" msgid "Use your name"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
@@ -968,6 +973,56 @@ msgstr ""
msgid "Account creation is disabled" msgid "Account creation is disabled"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:244
#, elixir-autogen, elixir-format
msgid "Add a Youtube video or any web content."
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "Content of your embed"
msgstr ""
#: lib/claper_web/live/event_live/embed_component.ex:59
#, elixir-autogen, elixir-format
msgid "Current embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:329
#, elixir-autogen, elixir-format
msgid "Edit Embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:593
#: lib/claper_web/live/stat_live/index.html.heex:257
#, elixir-autogen, elixir-format
msgid "Embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:242
#, elixir-autogen, elixir-format
msgid "Embeded"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:328
#, elixir-autogen, elixir-format
msgid "New Embed"
msgstr ""
#: lib/claper_web/live/event_live/embed_component.ex:36
#, elixir-autogen, elixir-format
msgid "See current embed"
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "This will delete the embed, are you sure?"
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:14
#, elixir-autogen, elixir-format
msgid "Title of your embed"
#: lib/claper_web/templates/user_reset_password/edit.html.heex:51 #: lib/claper_web/templates/user_reset_password/edit.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm new password" msgid "Confirm new password"

View File

@@ -15,7 +15,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Settings" msgstr "Settings"
#: lib/claper_web/live/event_live/manage.ex:457 #: lib/claper_web/live/event_live/manage.ex:529
#: lib/claper_web/live/form_live/form_component.html.heex:37 #: 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/live/user_settings_live/show.html.heex:34
#: lib/claper_web/templates/user_registration/new.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34
@@ -78,22 +78,22 @@ msgstr "We sent you an email at"
msgid "Your personal informations only visible by you" msgid "Your personal informations only visible by you"
msgstr "Your personal informations only visible by you" msgstr "Your personal informations only visible by you"
#: lib/claper_web/live/event_live/show.html.heex:387 #: lib/claper_web/live/event_live/show.html.heex:405
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "days" msgid "days"
msgstr "days" msgstr "days"
#: lib/claper_web/live/event_live/show.html.heex:393 #: lib/claper_web/live/event_live/show.html.heex:411
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "hours" msgid "hours"
msgstr "hours" msgstr "hours"
#: lib/claper_web/live/event_live/show.html.heex:399 #: lib/claper_web/live/event_live/show.html.heex:417
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "minutes" msgid "minutes"
msgstr "minutes" msgstr "minutes"
#: lib/claper_web/live/event_live/show.html.heex:118 #: lib/claper_web/live/event_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Be the first to react !" msgid "Be the first to react !"
msgstr "Be the first to react !" msgstr "Be the first to react !"
@@ -101,7 +101,7 @@ msgstr "Be the first to react !"
#: lib/claper_web/live/event_live/event_card_component.ex:98 #: lib/claper_web/live/event_live/event_card_component.ex:98
#: lib/claper_web/live/event_live/join.ex:42 #: lib/claper_web/live/event_live/join.ex:42
#: lib/claper_web/live/event_live/join.html.heex:106 #: lib/claper_web/live/event_live/join.html.heex:106
#: lib/claper_web/live/event_live/show.html.heex:239 #: lib/claper_web/live/event_live/show.html.heex:257
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Join" msgid "Join"
msgstr "Join" msgstr "Join"
@@ -119,7 +119,7 @@ msgstr "Dashboard"
msgid "Host" msgid "Host"
msgstr "Host" msgstr "Host"
#: lib/claper_web/live/event_live/show.html.heex:405 #: lib/claper_web/live/event_live/show.html.heex:423
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "seconds" msgid "seconds"
msgstr "seconds" msgstr "seconds"
@@ -171,7 +171,7 @@ msgid "Name of your presentation"
msgstr "Name of your presentation" msgstr "Name of your presentation"
#: lib/claper_web/live/event_live/presenter.html.heex:21 #: lib/claper_web/live/event_live/presenter.html.heex:21
#: lib/claper_web/live/event_live/show.html.heex:414 #: lib/claper_web/live/event_live/show.html.heex:432
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Scan to interact in real-time" msgid "Scan to interact in real-time"
msgstr "Scan to interact in real-time" msgstr "Scan to interact in real-time"
@@ -213,7 +213,7 @@ msgstr "Return to home"
msgid "Created successfully" msgid "Created successfully"
msgstr "Created successfully" msgstr "Created successfully"
#: lib/claper_web/live/event_live/manage.ex:23 #: lib/claper_web/live/event_live/manage.ex:24
#: lib/claper_web/live/event_live/presenter.ex:21 #: lib/claper_web/live/event_live/presenter.ex:21
#: lib/claper_web/live/event_live/show.ex:24 #: lib/claper_web/live/event_live/show.ex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -228,6 +228,7 @@ msgstr "Presentation doesn't exist"
msgid "Edit" msgid "Edit"
msgstr "Edit" msgstr "Edit"
#: lib/claper_web/live/embed_live/form_component.html.heex:38
#: lib/claper_web/live/event_live/event_form_component.html.heex:18 #: lib/claper_web/live/event_live/event_form_component.html.heex:18
#: lib/claper_web/live/event_live/event_form_component.html.heex:25 #: lib/claper_web/live/event_live/event_form_component.html.heex:25
#: lib/claper_web/live/event_live/index.ex:71 #: lib/claper_web/live/event_live/index.ex:71
@@ -238,10 +239,11 @@ msgstr "Edit"
msgid "Create" msgid "Create"
msgstr "Create" msgstr "Create"
#: lib/claper_web/live/embed_live/form_component.html.heex:43
#: lib/claper_web/live/event_live/event_card_component.ex:171 #: lib/claper_web/live/event_live/event_card_component.ex:171
#: lib/claper_web/live/event_live/event_form_component.html.heex:30 #: lib/claper_web/live/event_live/event_form_component.html.heex:30
#: lib/claper_web/live/event_live/manage.html.heex:631 #: lib/claper_web/live/event_live/manage.html.heex:755
#: lib/claper_web/live/event_live/manage.html.heex:731 #: lib/claper_web/live/event_live/manage.html.heex:855
#: lib/claper_web/live/event_live/post_component.ex:44 #: lib/claper_web/live/event_live/post_component.ex:44
#: lib/claper_web/live/event_live/post_component.ex:116 #: lib/claper_web/live/event_live/post_component.ex:116
#: lib/claper_web/live/form_live/form_component.html.heex:103 #: lib/claper_web/live/form_live/form_component.html.heex:103
@@ -250,6 +252,7 @@ msgstr "Create"
msgid "Delete" msgid "Delete"
msgstr "Delete" msgstr "Delete"
#: lib/claper_web/live/embed_live/form_component.html.heex:39
#: lib/claper_web/live/event_live/event_form_component.html.heex:17 #: lib/claper_web/live/event_live/event_form_component.html.heex:17
#: lib/claper_web/live/event_live/event_form_component.html.heex:24 #: lib/claper_web/live/event_live/event_form_component.html.heex:24
#: lib/claper_web/live/form_live/form_component.html.heex:99 #: lib/claper_web/live/form_live/form_component.html.heex:99
@@ -373,12 +376,12 @@ msgstr "Change file"
msgid "Presentation replaced" msgid "Presentation replaced"
msgstr "Presentation replaced" msgstr "Presentation replaced"
#: lib/claper_web/live/event_live/manage.html.heex:256 #: lib/claper_web/live/event_live/manage.html.heex:287
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit poll" msgid "Edit poll"
msgstr "Edit poll" msgstr "Edit poll"
#: lib/claper_web/live/event_live/manage.html.heex:255 #: lib/claper_web/live/event_live/manage.html.heex:286
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New poll" msgid "New poll"
msgstr "New poll" msgstr "New poll"
@@ -399,7 +402,7 @@ msgid "Add poll to know opinion of your public."
msgstr "Add poll to know opinion of your public." msgstr "Add poll to know opinion of your public."
#: lib/claper_web/live/event_live/manage.html.heex:174 #: lib/claper_web/live/event_live/manage.html.heex:174
#: lib/claper_web/live/event_live/manage.html.heex:395 #: lib/claper_web/live/event_live/manage.html.heex:447
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Poll" msgid "Poll"
msgstr "Poll" msgstr "Poll"
@@ -443,8 +446,9 @@ msgstr "User email address"
msgid "Present/Customize" msgid "Present/Customize"
msgstr "Present/Customize" msgstr "Present/Customize"
#: lib/claper_web/live/event_live/manage.html.heex:408 #: lib/claper_web/live/event_live/manage.html.heex:460
#: lib/claper_web/live/event_live/manage.html.heex:484 #: lib/claper_web/live/event_live/manage.html.heex:536
#: lib/claper_web/live/event_live/manage.html.heex:606
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Active" msgid "Active"
msgstr "Active" msgstr "Active"
@@ -454,12 +458,12 @@ msgstr "Active"
msgid "Changing your file will remove all interaction elements like polls associated." msgid "Changing your file will remove all interaction elements like polls associated."
msgstr "Changing your file will remove all interaction elements like polls associated." msgstr "Changing your file will remove all interaction elements like polls associated."
#: lib/claper_web/live/event_live/manage.html.heex:584 #: lib/claper_web/live/event_live/manage.html.heex:708
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages from attendees will appear here." msgid "Messages from attendees will appear here."
msgstr "Messages from attendees will appear here." msgstr "Messages from attendees will appear here."
#: lib/claper_web/live/event_live/manage.html.heex:770 #: lib/claper_web/live/event_live/manage.html.heex:894
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "On screen settings" msgid "On screen settings"
msgstr "On screen settings" msgstr "On screen settings"
@@ -484,19 +488,20 @@ msgstr "Start"
msgid "Press <strong>F</strong> in the presentation window to enable fullscreen" msgid "Press <strong>F</strong> in the presentation window to enable fullscreen"
msgstr "Press <strong>F</strong> in the presentation window to enable fullscreen" msgstr "Press <strong>F</strong> in the presentation window to enable fullscreen"
#: lib/claper_web/live/event_live/show.html.heex:298 #: lib/claper_web/live/event_live/show.html.heex:316
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ask, comment..." msgid "Ask, comment..."
msgstr "Ask, comment..." msgstr "Ask, comment..."
#: lib/claper_web/live/event_live/manage.html.heex:556 #: lib/claper_web/live/event_live/manage.html.heex:680
#: lib/claper_web/live/stat_live/index.html.heex:71 #: lib/claper_web/live/stat_live/index.html.heex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages" msgid "Messages"
msgstr "Messages" msgstr "Messages"
#: lib/claper_web/live/event_live/manage.html.heex:416 #: lib/claper_web/live/event_live/manage.html.heex:468
#: lib/claper_web/live/event_live/manage.html.heex:492 #: lib/claper_web/live/event_live/manage.html.heex:544
#: lib/claper_web/live/event_live/manage.html.heex:614
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set active" msgid "Set active"
msgstr "Set active" msgstr "Set active"
@@ -532,26 +537,26 @@ msgstr "If youre having trouble with the button above, copy and paste the URL
msgid "You can change your email by visiting the URL below" msgid "You can change your email by visiting the URL below"
msgstr "You can change your email by visiting the URL below" msgstr "You can change your email by visiting the URL below"
#: lib/claper_web/live/event_live/manage.html.heex:525 #: lib/claper_web/live/event_live/manage.html.heex:649
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Add interaction" msgid "Add interaction"
msgstr "Add interaction" msgstr "Add interaction"
#: lib/claper_web/live/event_live/manage.html.heex:607 #: lib/claper_web/live/event_live/manage.html.heex:731
#: lib/claper_web/live/event_live/manage.html.heex:622 #: lib/claper_web/live/event_live/manage.html.heex:746
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?" msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?"
msgstr "Blocking this user will delete all his messages and he will not be able to join again, confirm ?" msgstr "Blocking this user will delete all his messages and he will not be able to join again, confirm ?"
#: lib/claper_web/live/event_live/show.ex:50 #: lib/claper_web/live/event_live/show.ex:50
#: lib/claper_web/live/event_live/show.ex:197 #: lib/claper_web/live/event_live/show.ex:198
#: lib/claper_web/live/event_live/show.ex:212 #: lib/claper_web/live/event_live/show.ex:213
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You have been banned from this event" msgid "You have been banned from this event"
msgstr "You have been banned from this event" msgstr "You have been banned from this event"
#: lib/claper_web/live/event_live/manage.html.heex:601 #: lib/claper_web/live/event_live/manage.html.heex:725
#: lib/claper_web/live/event_live/manage.html.heex:616 #: lib/claper_web/live/event_live/manage.html.heex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ban" msgid "Ban"
msgstr "Ban" msgstr "Ban"
@@ -645,7 +650,7 @@ msgstr "Event"
msgid "Interactions history" msgid "Interactions history"
msgstr "Interactions history" msgstr "Interactions history"
#: lib/claper_web/live/stat_live/index.html.heex:260 #: lib/claper_web/live/stat_live/index.html.heex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No messages has been sent" msgid "No messages has been sent"
msgstr "No messages has been sent" msgstr "No messages has been sent"
@@ -705,7 +710,7 @@ msgstr "Login"
msgid "Connect to your account" msgid "Connect to your account"
msgstr "Connect to your account" msgstr "Connect to your account"
#: lib/claper_web/live/event_live/show.html.heex:423 #: lib/claper_web/live/event_live/show.html.heex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Or use the code:" msgid "Or use the code:"
msgstr "Or use the code:" msgstr "Or use the code:"
@@ -776,34 +781,34 @@ msgstr "Add form to collect data from your public."
msgid "Current form" msgid "Current form"
msgstr "Current form" msgstr "Current form"
#: lib/claper_web/live/event_live/manage.html.heex:277 #: lib/claper_web/live/event_live/manage.html.heex:308
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit form" msgid "Edit form"
msgstr "Edit form" msgstr "Edit form"
#: lib/claper_web/live/event_live/manage.html.heex:211 #: lib/claper_web/live/event_live/manage.html.heex:211
#: lib/claper_web/live/event_live/manage.html.heex:471 #: lib/claper_web/live/event_live/manage.html.heex:523
#: lib/claper_web/live/stat_live/index.html.heex:215 #: lib/claper_web/live/stat_live/index.html.heex:215
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form" msgid "Form"
msgstr "Form" msgstr "Form"
#: lib/claper_web/live/event_live/manage.html.heex:559 #: lib/claper_web/live/event_live/manage.html.heex:683
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions" msgid "Form submissions"
msgstr "Form submissions" msgstr "Form submissions"
#: lib/claper_web/live/event_live/manage.html.heex:711 #: lib/claper_web/live/event_live/manage.html.heex:835
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions from attendees will appear here." msgid "Form submissions from attendees will appear here."
msgstr "Form submissions from attendees will appear here." msgstr "Form submissions from attendees will appear here."
#: lib/claper_web/live/event_live/manage.ex:456 #: lib/claper_web/live/event_live/manage.ex:528
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: lib/claper_web/live/event_live/manage.html.heex:276 #: lib/claper_web/live/event_live/manage.html.heex:307
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New form" msgid "New form"
msgstr "New form" msgstr "New form"
@@ -828,7 +833,7 @@ msgstr "Submit"
msgid "Text" msgid "Text"
msgstr "Text" msgstr "Text"
#: lib/claper_web/live/event_live/manage.html.heex:736 #: lib/claper_web/live/event_live/manage.html.heex:860
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This cannot be undone, confirm ?" msgid "This cannot be undone, confirm ?"
msgstr "This cannot be undone, confirm ?" msgstr "This cannot be undone, confirm ?"
@@ -868,22 +873,22 @@ msgstr "Select one or multiple options"
msgid "Multiple answers" msgid "Multiple answers"
msgstr "Multiple answers" msgstr "Multiple answers"
#: lib/claper_web/live/event_live/manage.html.heex:244 #: lib/claper_web/live/event_live/manage.html.heex:275
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Import all interactions from another presentation" msgid "Import all interactions from another presentation"
msgstr "Import all interactions from another presentation" msgstr "Import all interactions from another presentation"
#: lib/claper_web/live/event_live/manage.ex:183 #: lib/claper_web/live/event_live/manage.ex:202
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions import failed" msgid "Interactions import failed"
msgstr "Interactions import failed" msgstr "Interactions import failed"
#: lib/claper_web/live/event_live/manage.ex:176 #: lib/claper_web/live/event_live/manage.ex:195
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions imported successfully" msgid "Interactions imported successfully"
msgstr "Interactions imported successfully" msgstr "Interactions imported successfully"
#: lib/claper_web/live/event_live/manage.html.heex:295 #: lib/claper_web/live/event_live/manage.html.heex:347
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select presentation" msgid "Select presentation"
msgstr "Select presentation" msgstr "Select presentation"
@@ -893,55 +898,55 @@ msgstr "Select presentation"
msgid "PDF, PPT, PPTX up to %{size} MB" msgid "PDF, PPT, PPTX up to %{size} MB"
msgstr "PDF, PPT, PPTX up to %{size} MB" msgstr "PDF, PPT, PPTX up to %{size} MB"
#: lib/claper_web/live/event_live/manage.html.heex:796 #: lib/claper_web/live/event_live/manage.html.heex:920
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Attendees settings" msgid "Attendees settings"
msgstr "Attendees settings" msgstr "Attendees settings"
#: lib/claper_web/live/event_live/manage.html.heex:800 #: lib/claper_web/live/event_live/manage.html.heex:924
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable messages" msgid "Enable messages"
msgstr "Enable messages" msgstr "Enable messages"
#: lib/claper_web/live/event_live/manage.html.heex:777 #: lib/claper_web/live/event_live/manage.html.heex:901
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show instructions" msgid "Show instructions"
msgstr "Show instructions" msgstr "Show instructions"
#: lib/claper_web/live/event_live/manage.html.heex:782 #: lib/claper_web/live/event_live/manage.html.heex:906
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show messages" msgid "Show messages"
msgstr "Show messages" msgstr "Show messages"
#: lib/claper_web/live/event_live/manage.html.heex:791 #: lib/claper_web/live/event_live/manage.html.heex:915
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show poll results" msgid "Show poll results"
msgstr "Show poll results" msgstr "Show poll results"
#: lib/claper_web/live/event_live/show.html.heex:318 #: lib/claper_web/live/event_live/show.html.heex:336
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages deactivated" msgid "Messages deactivated"
msgstr "Messages deactivated" msgstr "Messages deactivated"
#: lib/claper_web/live/event_live/show.html.heex:161 #: lib/claper_web/live/event_live/show.html.heex:179
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#: lib/claper_web/live/event_live/show.html.heex:282 #: lib/claper_web/live/event_live/show.html.heex:300
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Anonymous" msgid "Anonymous"
msgstr "Anonymous" msgstr "Anonymous"
#: lib/claper_web/live/event_live/show.html.heex:208 #: lib/claper_web/live/event_live/show.html.heex:226
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Close" msgid "Close"
msgstr "Close" msgstr "Close"
#: lib/claper_web/live/event_live/manage.html.heex:808 #: lib/claper_web/live/event_live/manage.html.heex:932
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Enable anonymous messages" msgid "Enable anonymous messages"
msgstr "Enable anonymous messages" msgstr "Enable anonymous messages"
#: lib/claper_web/live/event_live/show.html.heex:189 #: lib/claper_web/live/event_live/show.html.heex:207
#: lib/claper_web/live/event_live/show.html.heex:234 #: lib/claper_web/live/event_live/show.html.heex:252
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enter your name" msgid "Enter your name"
msgstr "" msgstr ""
@@ -951,12 +956,12 @@ msgstr ""
msgid "Or go to %{url} and use the code:" msgid "Or go to %{url} and use the code:"
msgstr "Or go to %{url} and use the code:" msgstr "Or go to %{url} and use the code:"
#: lib/claper_web/live/event_live/show.html.heex:202 #: lib/claper_web/live/event_live/show.html.heex:220
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Use your name" msgid "Use your name"
msgstr "Use your name" msgstr "Use your name"
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "disabled" msgid "disabled"
msgstr "disabled" msgstr "disabled"
@@ -966,6 +971,57 @@ msgstr "disabled"
msgid "Account creation is disabled" msgid "Account creation is disabled"
msgstr "" msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:244
#, elixir-autogen, elixir-format
msgid "Add a Youtube video or any web content."
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "Content of your embed"
msgstr ""
#: lib/claper_web/live/event_live/embed_component.ex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Current embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:329
#, elixir-autogen, elixir-format
msgid "Edit Embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:593
#: lib/claper_web/live/stat_live/index.html.heex:257
#, elixir-autogen, elixir-format
msgid "Embed"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:242
#, elixir-autogen, elixir-format
msgid "Embeded"
msgstr ""
#: lib/claper_web/live/event_live/manage.html.heex:328
#, elixir-autogen, elixir-format
msgid "New Embed"
msgstr ""
#: lib/claper_web/live/event_live/embed_component.ex:36
#, elixir-autogen, elixir-format, fuzzy
msgid "See current embed"
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "This will delete the embed, are you sure?"
msgstr ""
#: lib/claper_web/live/embed_live/form_component.html.heex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Title of your embed"
msgstr ""
#: lib/claper_web/templates/user_reset_password/edit.html.heex:51 #: lib/claper_web/templates/user_reset_password/edit.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm new password" msgid "Confirm new password"

View File

@@ -15,7 +15,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
#: lib/claper_web/live/event_live/manage.ex:457 #: lib/claper_web/live/event_live/manage.ex:529
#: lib/claper_web/live/form_live/form_component.html.heex:37 #: 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/live/user_settings_live/show.html.heex:34
#: lib/claper_web/templates/user_registration/new.html.heex:34 #: lib/claper_web/templates/user_registration/new.html.heex:34
@@ -78,22 +78,22 @@ msgstr "Nous vous avons envoyé un email à"
msgid "Your personal informations only visible by you" msgid "Your personal informations only visible by you"
msgstr "Vos informations personnelles ne sont visibles que par vous" msgstr "Vos informations personnelles ne sont visibles que par vous"
#: lib/claper_web/live/event_live/show.html.heex:387 #: lib/claper_web/live/event_live/show.html.heex:405
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "days" msgid "days"
msgstr "jours" msgstr "jours"
#: lib/claper_web/live/event_live/show.html.heex:393 #: lib/claper_web/live/event_live/show.html.heex:411
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "hours" msgid "hours"
msgstr "heures" msgstr "heures"
#: lib/claper_web/live/event_live/show.html.heex:399 #: lib/claper_web/live/event_live/show.html.heex:417
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "minutes" msgid "minutes"
msgstr "minutes" msgstr "minutes"
#: lib/claper_web/live/event_live/show.html.heex:118 #: lib/claper_web/live/event_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Be the first to react !" msgid "Be the first to react !"
msgstr "Soyez le premier à réagir !" msgstr "Soyez le premier à réagir !"
@@ -101,7 +101,7 @@ msgstr "Soyez le premier à réagir !"
#: lib/claper_web/live/event_live/event_card_component.ex:98 #: lib/claper_web/live/event_live/event_card_component.ex:98
#: lib/claper_web/live/event_live/join.ex:42 #: lib/claper_web/live/event_live/join.ex:42
#: lib/claper_web/live/event_live/join.html.heex:106 #: lib/claper_web/live/event_live/join.html.heex:106
#: lib/claper_web/live/event_live/show.html.heex:239 #: lib/claper_web/live/event_live/show.html.heex:257
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Join" msgid "Join"
msgstr "Rejoindre" msgstr "Rejoindre"
@@ -119,7 +119,7 @@ msgstr "Tableau de bord"
msgid "Host" msgid "Host"
msgstr "Animateur" msgstr "Animateur"
#: lib/claper_web/live/event_live/show.html.heex:405 #: lib/claper_web/live/event_live/show.html.heex:423
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "seconds" msgid "seconds"
msgstr "secondes" msgstr "secondes"
@@ -171,7 +171,7 @@ msgid "Name of your presentation"
msgstr "Nom de votre présentation" msgstr "Nom de votre présentation"
#: lib/claper_web/live/event_live/presenter.html.heex:21 #: lib/claper_web/live/event_live/presenter.html.heex:21
#: lib/claper_web/live/event_live/show.html.heex:414 #: lib/claper_web/live/event_live/show.html.heex:432
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Scan to interact in real-time" msgid "Scan to interact in real-time"
msgstr "Scannez pour interagir en temps réel" msgstr "Scannez pour interagir en temps réel"
@@ -213,7 +213,7 @@ msgstr "Retourner à l'accueil"
msgid "Created successfully" msgid "Created successfully"
msgstr "Mis à jour avec succès" msgstr "Mis à jour avec succès"
#: lib/claper_web/live/event_live/manage.ex:23 #: lib/claper_web/live/event_live/manage.ex:24
#: lib/claper_web/live/event_live/presenter.ex:21 #: lib/claper_web/live/event_live/presenter.ex:21
#: lib/claper_web/live/event_live/show.ex:24 #: lib/claper_web/live/event_live/show.ex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -228,6 +228,7 @@ msgstr "La présentation n'existe pas"
msgid "Edit" msgid "Edit"
msgstr "Modifier" msgstr "Modifier"
#: lib/claper_web/live/embed_live/form_component.html.heex:38
#: lib/claper_web/live/event_live/event_form_component.html.heex:18 #: lib/claper_web/live/event_live/event_form_component.html.heex:18
#: lib/claper_web/live/event_live/event_form_component.html.heex:25 #: lib/claper_web/live/event_live/event_form_component.html.heex:25
#: lib/claper_web/live/event_live/index.ex:71 #: lib/claper_web/live/event_live/index.ex:71
@@ -238,10 +239,11 @@ msgstr "Modifier"
msgid "Create" msgid "Create"
msgstr "Créer" msgstr "Créer"
#: lib/claper_web/live/embed_live/form_component.html.heex:43
#: lib/claper_web/live/event_live/event_card_component.ex:171 #: lib/claper_web/live/event_live/event_card_component.ex:171
#: lib/claper_web/live/event_live/event_form_component.html.heex:30 #: lib/claper_web/live/event_live/event_form_component.html.heex:30
#: lib/claper_web/live/event_live/manage.html.heex:631 #: lib/claper_web/live/event_live/manage.html.heex:755
#: lib/claper_web/live/event_live/manage.html.heex:731 #: lib/claper_web/live/event_live/manage.html.heex:855
#: lib/claper_web/live/event_live/post_component.ex:44 #: lib/claper_web/live/event_live/post_component.ex:44
#: lib/claper_web/live/event_live/post_component.ex:116 #: lib/claper_web/live/event_live/post_component.ex:116
#: lib/claper_web/live/form_live/form_component.html.heex:103 #: lib/claper_web/live/form_live/form_component.html.heex:103
@@ -250,6 +252,7 @@ msgstr "Créer"
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
#: lib/claper_web/live/embed_live/form_component.html.heex:39
#: lib/claper_web/live/event_live/event_form_component.html.heex:17 #: lib/claper_web/live/event_live/event_form_component.html.heex:17
#: lib/claper_web/live/event_live/event_form_component.html.heex:24 #: lib/claper_web/live/event_live/event_form_component.html.heex:24
#: lib/claper_web/live/form_live/form_component.html.heex:99 #: lib/claper_web/live/form_live/form_component.html.heex:99
@@ -373,12 +376,12 @@ msgstr "Changer le fichier"
msgid "Presentation replaced" msgid "Presentation replaced"
msgstr "Présentation remplacée" msgstr "Présentation remplacée"
#: lib/claper_web/live/event_live/manage.html.heex:256 #: lib/claper_web/live/event_live/manage.html.heex:287
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit poll" msgid "Edit poll"
msgstr "Modifier le sondage" msgstr "Modifier le sondage"
#: lib/claper_web/live/event_live/manage.html.heex:255 #: lib/claper_web/live/event_live/manage.html.heex:286
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New poll" msgid "New poll"
msgstr "Nouveau sondage" msgstr "Nouveau sondage"
@@ -399,7 +402,7 @@ msgid "Add poll to know opinion of your public."
msgstr "Ajoutez un sondage pour connaître l'opinion de votre public." msgstr "Ajoutez un sondage pour connaître l'opinion de votre public."
#: lib/claper_web/live/event_live/manage.html.heex:174 #: lib/claper_web/live/event_live/manage.html.heex:174
#: lib/claper_web/live/event_live/manage.html.heex:395 #: lib/claper_web/live/event_live/manage.html.heex:447
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Poll" msgid "Poll"
msgstr "Sondage" msgstr "Sondage"
@@ -444,8 +447,9 @@ msgstr "Adresse email"
msgid "Present/Customize" msgid "Present/Customize"
msgstr "Présenter/Personnaliser" msgstr "Présenter/Personnaliser"
#: lib/claper_web/live/event_live/manage.html.heex:408 #: lib/claper_web/live/event_live/manage.html.heex:460
#: lib/claper_web/live/event_live/manage.html.heex:484 #: lib/claper_web/live/event_live/manage.html.heex:536
#: lib/claper_web/live/event_live/manage.html.heex:606
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Active" msgid "Active"
msgstr "Actif" msgstr "Actif"
@@ -455,12 +459,12 @@ msgstr "Actif"
msgid "Changing your file will remove all interaction elements like polls associated." msgid "Changing your file will remove all interaction elements like polls associated."
msgstr "La modification de votre fichier supprimera tous les éléments d'interaction comme les sondages associés." msgstr "La modification de votre fichier supprimera tous les éléments d'interaction comme les sondages associés."
#: lib/claper_web/live/event_live/manage.html.heex:584 #: lib/claper_web/live/event_live/manage.html.heex:708
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages from attendees will appear here." msgid "Messages from attendees will appear here."
msgstr "Les messages des participants apparaîtront ici." msgstr "Les messages des participants apparaîtront ici."
#: lib/claper_web/live/event_live/manage.html.heex:770 #: lib/claper_web/live/event_live/manage.html.heex:894
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "On screen settings" msgid "On screen settings"
msgstr "Paramètres écran" msgstr "Paramètres écran"
@@ -485,19 +489,20 @@ msgstr "Démarrer"
msgid "Press <strong>F</strong> in the presentation window to enable fullscreen" msgid "Press <strong>F</strong> in the presentation window to enable fullscreen"
msgstr "Appuyez sur <strong>F</strong> dans la fenêtre de présentation pour activer le plein écran" msgstr "Appuyez sur <strong>F</strong> dans la fenêtre de présentation pour activer le plein écran"
#: lib/claper_web/live/event_live/show.html.heex:298 #: lib/claper_web/live/event_live/show.html.heex:316
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ask, comment..." msgid "Ask, comment..."
msgstr "Questionnez, commentez..." msgstr "Questionnez, commentez..."
#: lib/claper_web/live/event_live/manage.html.heex:556 #: lib/claper_web/live/event_live/manage.html.heex:680
#: lib/claper_web/live/stat_live/index.html.heex:71 #: lib/claper_web/live/stat_live/index.html.heex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages" msgid "Messages"
msgstr "Messages" msgstr "Messages"
#: lib/claper_web/live/event_live/manage.html.heex:416 #: lib/claper_web/live/event_live/manage.html.heex:468
#: lib/claper_web/live/event_live/manage.html.heex:492 #: lib/claper_web/live/event_live/manage.html.heex:544
#: lib/claper_web/live/event_live/manage.html.heex:614
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set active" msgid "Set active"
msgstr "Activer" msgstr "Activer"
@@ -533,26 +538,26 @@ msgstr "Si vous rencontrez des difficultés avec le bouton ci-dessus, copiez et
msgid "You can change your email by visiting the URL below" msgid "You can change your email by visiting the URL below"
msgstr "Vous pouvez modifier votre email en visitant l'URL ci-dessous" msgstr "Vous pouvez modifier votre email en visitant l'URL ci-dessous"
#: lib/claper_web/live/event_live/manage.html.heex:525 #: lib/claper_web/live/event_live/manage.html.heex:649
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Add interaction" msgid "Add interaction"
msgstr "Ajouter une interaction" msgstr "Ajouter une interaction"
#: lib/claper_web/live/event_live/manage.html.heex:607 #: lib/claper_web/live/event_live/manage.html.heex:731
#: lib/claper_web/live/event_live/manage.html.heex:622 #: lib/claper_web/live/event_live/manage.html.heex:746
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?" msgid "Blocking this user will delete all his messages and he will not be able to join again, confirm ?"
msgstr "Bloquer cet utilisateur supprimera tous ses messages et il ne pourra pas rejoindre à nouveau, confirmer ?" 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:50
#: lib/claper_web/live/event_live/show.ex:197 #: lib/claper_web/live/event_live/show.ex:198
#: lib/claper_web/live/event_live/show.ex:212 #: lib/claper_web/live/event_live/show.ex:213
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You have been banned from this event" msgid "You have been banned from this event"
msgstr "Vous avez été banni de cet événement" msgstr "Vous avez été banni de cet événement"
#: lib/claper_web/live/event_live/manage.html.heex:601 #: lib/claper_web/live/event_live/manage.html.heex:725
#: lib/claper_web/live/event_live/manage.html.heex:616 #: lib/claper_web/live/event_live/manage.html.heex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ban" msgid "Ban"
msgstr "Bannir" msgstr "Bannir"
@@ -648,7 +653,7 @@ msgstr "Événement"
msgid "Interactions history" msgid "Interactions history"
msgstr "Historique des interactions" msgstr "Historique des interactions"
#: lib/claper_web/live/stat_live/index.html.heex:260 #: lib/claper_web/live/stat_live/index.html.heex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No messages has been sent" msgid "No messages has been sent"
msgstr "Aucun message n'a été envoyé" msgstr "Aucun message n'a été envoyé"
@@ -709,7 +714,7 @@ msgstr "Connexion"
msgid "Connect to your account" msgid "Connect to your account"
msgstr "Connectez-vous à votre compte" msgstr "Connectez-vous à votre compte"
#: lib/claper_web/live/event_live/show.html.heex:423 #: lib/claper_web/live/event_live/show.html.heex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Or use the code:" msgid "Or use the code:"
msgstr "Ou utilisez le code:" msgstr "Ou utilisez le code:"
@@ -781,34 +786,34 @@ msgstr "Ajoutez un formulaire pour recueillir les données de votre public."
msgid "Current form" msgid "Current form"
msgstr "Sondage actuel" msgstr "Sondage actuel"
#: lib/claper_web/live/event_live/manage.html.heex:277 #: lib/claper_web/live/event_live/manage.html.heex:308
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit form" msgid "Edit form"
msgstr "Modifier" msgstr "Modifier"
#: lib/claper_web/live/event_live/manage.html.heex:211 #: lib/claper_web/live/event_live/manage.html.heex:211
#: lib/claper_web/live/event_live/manage.html.heex:471 #: lib/claper_web/live/event_live/manage.html.heex:523
#: lib/claper_web/live/stat_live/index.html.heex:215 #: lib/claper_web/live/stat_live/index.html.heex:215
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form" msgid "Form"
msgstr "Formulaire" msgstr "Formulaire"
#: lib/claper_web/live/event_live/manage.html.heex:559 #: lib/claper_web/live/event_live/manage.html.heex:683
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions" msgid "Form submissions"
msgstr "Soumissions de formulaire" msgstr "Soumissions de formulaire"
#: lib/claper_web/live/event_live/manage.html.heex:711 #: lib/claper_web/live/event_live/manage.html.heex:835
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Form submissions from attendees will appear here." msgid "Form submissions from attendees will appear here."
msgstr "Les formulaires soumis par les participants apparaîtront ici." msgstr "Les formulaires soumis par les participants apparaîtront ici."
#: lib/claper_web/live/event_live/manage.ex:456 #: lib/claper_web/live/event_live/manage.ex:528
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: lib/claper_web/live/event_live/manage.html.heex:276 #: lib/claper_web/live/event_live/manage.html.heex:307
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New form" msgid "New form"
msgstr "Nouveau formulaire" msgstr "Nouveau formulaire"
@@ -833,7 +838,7 @@ msgstr "Soumettre"
msgid "Text" msgid "Text"
msgstr "Texte" msgstr "Texte"
#: lib/claper_web/live/event_live/manage.html.heex:736 #: lib/claper_web/live/event_live/manage.html.heex:860
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This cannot be undone, confirm ?" msgid "This cannot be undone, confirm ?"
msgstr "Cela ne peut pas être annulé, confirmez-vous ?" msgstr "Cela ne peut pas être annulé, confirmez-vous ?"
@@ -873,22 +878,22 @@ msgstr "Sélectionner une ou plusieurs options"
msgid "Multiple answers" msgid "Multiple answers"
msgstr "Réponses multiples" msgstr "Réponses multiples"
#: lib/claper_web/live/event_live/manage.html.heex:244 #: lib/claper_web/live/event_live/manage.html.heex:275
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Import all interactions from another presentation" msgid "Import all interactions from another presentation"
msgstr "Importer toutes les interactions d'une autre présentation" msgstr "Importer toutes les interactions d'une autre présentation"
#: lib/claper_web/live/event_live/manage.ex:183 #: lib/claper_web/live/event_live/manage.ex:202
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions import failed" msgid "Interactions import failed"
msgstr "Échec de l'importation d'interactions" msgstr "Échec de l'importation d'interactions"
#: lib/claper_web/live/event_live/manage.ex:176 #: lib/claper_web/live/event_live/manage.ex:195
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Interactions imported successfully" msgid "Interactions imported successfully"
msgstr "Interactions importées avec succès" msgstr "Interactions importées avec succès"
#: lib/claper_web/live/event_live/manage.html.heex:295 #: lib/claper_web/live/event_live/manage.html.heex:347
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select presentation" msgid "Select presentation"
msgstr "Sélectionnez la présentation" msgstr "Sélectionnez la présentation"
@@ -898,55 +903,55 @@ msgstr "Sélectionnez la présentation"
msgid "PDF, PPT, PPTX up to %{size} MB" msgid "PDF, PPT, PPTX up to %{size} MB"
msgstr "PDF, PPT, PPTX jusqu'à %{size} MB" msgstr "PDF, PPT, PPTX jusqu'à %{size} MB"
#: lib/claper_web/live/event_live/manage.html.heex:796 #: lib/claper_web/live/event_live/manage.html.heex:920
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Attendees settings" msgid "Attendees settings"
msgstr "Paramètres participants" msgstr "Paramètres participants"
#: lib/claper_web/live/event_live/manage.html.heex:800 #: lib/claper_web/live/event_live/manage.html.heex:924
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable messages" msgid "Enable messages"
msgstr "Activer messages" msgstr "Activer messages"
#: lib/claper_web/live/event_live/manage.html.heex:777 #: lib/claper_web/live/event_live/manage.html.heex:901
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show instructions" msgid "Show instructions"
msgstr "Afficher instructions" msgstr "Afficher instructions"
#: lib/claper_web/live/event_live/manage.html.heex:782 #: lib/claper_web/live/event_live/manage.html.heex:906
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show messages" msgid "Show messages"
msgstr "Afficher messages" msgstr "Afficher messages"
#: lib/claper_web/live/event_live/manage.html.heex:791 #: lib/claper_web/live/event_live/manage.html.heex:915
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show poll results" msgid "Show poll results"
msgstr "Afficher résultats sondage" msgstr "Afficher résultats sondage"
#: lib/claper_web/live/event_live/show.html.heex:318 #: lib/claper_web/live/event_live/show.html.heex:336
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Messages deactivated" msgid "Messages deactivated"
msgstr "Messages désactivés" msgstr "Messages désactivés"
#: lib/claper_web/live/event_live/show.html.heex:161 #: lib/claper_web/live/event_live/show.html.heex:179
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#: lib/claper_web/live/event_live/show.html.heex:282 #: lib/claper_web/live/event_live/show.html.heex:300
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Anonymous" msgid "Anonymous"
msgstr "Anonyme" msgstr "Anonyme"
#: lib/claper_web/live/event_live/show.html.heex:208 #: lib/claper_web/live/event_live/show.html.heex:226
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: lib/claper_web/live/event_live/manage.html.heex:808 #: lib/claper_web/live/event_live/manage.html.heex:932
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Enable anonymous messages" msgid "Enable anonymous messages"
msgstr "Activer messages anonymes" msgstr "Activer messages anonymes"
#: lib/claper_web/live/event_live/show.html.heex:189 #: lib/claper_web/live/event_live/show.html.heex:207
#: lib/claper_web/live/event_live/show.html.heex:234 #: lib/claper_web/live/event_live/show.html.heex:252
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enter your name" msgid "Enter your name"
msgstr "Entrer votre nom" msgstr "Entrer votre nom"
@@ -956,12 +961,12 @@ msgstr "Entrer votre nom"
msgid "Or go to %{url} and use the code:" msgid "Or go to %{url} and use the code:"
msgstr "Ou allez sur %{url} et utilisez le code:" msgstr "Ou allez sur %{url} et utilisez le code:"
#: lib/claper_web/live/event_live/show.html.heex:202 #: lib/claper_web/live/event_live/show.html.heex:220
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Use your name" msgid "Use your name"
msgstr "Utiliser votre nom" msgstr "Utiliser votre nom"
#: lib/claper_web/live/event_live/show.html.heex:182 #: lib/claper_web/live/event_live/show.html.heex:200
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "disabled" msgid "disabled"
msgstr "désactivé" msgstr "désactivé"
@@ -971,6 +976,57 @@ msgstr "désactivé"
msgid "Account creation is disabled" msgid "Account creation is disabled"
msgstr "La création de compte est désactivée" msgstr "La création de compte est désactivée"
#: lib/claper_web/live/event_live/manage.html.heex:244
#, elixir-autogen, elixir-format
msgid "Add a Youtube video or any web content."
msgstr "Ajoutez une vidéo Youtube ou tout autre contenu web."
#: lib/claper_web/live/embed_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "Content of your embed"
msgstr "Contenu de votre intégration"
#: lib/claper_web/live/event_live/embed_component.ex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Current embed"
msgstr "Intégration actuelle"
#: lib/claper_web/live/event_live/manage.html.heex:329
#, elixir-autogen, elixir-format
msgid "Edit Embed"
msgstr "Modifier Intégrer"
#: lib/claper_web/live/event_live/manage.html.heex:593
#: lib/claper_web/live/stat_live/index.html.heex:257
#, elixir-autogen, elixir-format
msgid "Embed"
msgstr "Intégrer"
#: lib/claper_web/live/event_live/manage.html.heex:242
#, elixir-autogen, elixir-format
msgid "Embeded"
msgstr "Intégré"
#: lib/claper_web/live/event_live/manage.html.heex:328
#, elixir-autogen, elixir-format
msgid "New Embed"
msgstr "Nouvelle intégration"
#: lib/claper_web/live/event_live/embed_component.ex:36
#, elixir-autogen, elixir-format, fuzzy
msgid "See current embed"
msgstr "Voir l'intégration actuelle"
#: lib/claper_web/live/embed_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "This will delete the embed, are you sure?"
msgstr "Cela supprimera l'intégration, êtes-vous sûr?"
#: lib/claper_web/live/embed_live/form_component.html.heex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Title of your embed"
msgstr "Titre de votre intégration"
#: lib/claper_web/templates/user_reset_password/edit.html.heex:51 #: lib/claper_web/templates/user_reset_password/edit.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm new password" msgid "Confirm new password"

View File

@@ -0,0 +1,16 @@
defmodule Claper.Repo.Migrations.CreateEmbeds do
use Ecto.Migration
def change do
create table(:embeds) do
add :title, :string, null: false
add :content, :text, null: false
add :position, :integer, default: 0
add :enabled, :boolean, default: true
add :attendee_visibility, :boolean, default: false
add :presentation_file_id, references(:presentation_files, on_delete: :nilify_all)
timestamps()
end
end
end

View File

@@ -0,0 +1,99 @@
defmodule Claper.EmbedsTest do
use Claper.DataCase
alias Claper.Embeds
describe "embeds" do
alias Claper.Embeds.Embed
import Claper.{EmbedsFixtures, PresentationsFixtures}
@invalid_attrs %{title: nil, content: nil}
test "list_embeds/1 returns all embeds from a presentation" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
assert Embeds.list_embeds(presentation_file.id) == [embed]
end
test "list_embeds_at_position/2 returns all embeds from a presentation at a given position" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id, position: 5})
assert Embeds.list_embeds_at_position(presentation_file.id, 5) == [embed]
end
test "get_embed!/1 returns the embed with given id" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
assert Embeds.get_embed!(embed.id) == embed
end
test "create_embed/1 with valid data creates a embed" do
presentation_file = presentation_file_fixture()
valid_attrs = %{
title: "some title",
content:
"<iframe src=\"https://www.youtube.com/embed/9bZkp7q19f0\" frameborder=\"0\" allowfullscreen></iframe>",
presentation_file_id: presentation_file.id,
position: 0
}
assert {:ok, %Embed{} = embed} = Embeds.create_embed(valid_attrs)
assert embed.title == "some title"
assert embed.content ==
"<iframe src=\"https://www.youtube.com/embed/9bZkp7q19f0\" frameborder=\"0\" allowfullscreen></iframe>"
end
test "create_embed/1 with invalid data returns error changeset" do
assert {:error, %Ecto.Changeset{}} = Embeds.create_embed(@invalid_attrs)
end
test "update_embed/3 with valid data updates the embed" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
update_attrs = %{
title: "some updated title",
content:
"<iframe src=\"https://www.youtube.com/embed/9bZkp7q19f0\" frameborder=\"0\"></iframe>"
}
assert {:ok, %Embed{} = embed} =
Embeds.update_embed(presentation_file.event_id, embed, update_attrs)
assert embed.title == "some updated title"
assert embed.content ==
"<iframe src=\"https://www.youtube.com/embed/9bZkp7q19f0\" frameborder=\"0\"></iframe>"
end
test "update_embed/3 with invalid data returns error changeset" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
assert {:error, %Ecto.Changeset{}} =
Embeds.update_embed(presentation_file.event_id, embed, @invalid_attrs)
assert embed == Embeds.get_embed!(embed.id)
end
test "delete_embed/2 deletes the embed" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
assert {:ok, %Embed{}} = Embeds.delete_embed(presentation_file.event_id, embed)
assert_raise Ecto.NoResultsError, fn -> Embeds.get_embed!(embed.id) end
end
test "change_embed/1 returns a embed changeset" do
presentation_file = presentation_file_fixture()
embed = embed_fixture(%{presentation_file_id: presentation_file.id})
assert %Ecto.Changeset{} = Embeds.change_embed(embed)
end
end
end

View File

@@ -0,0 +1,27 @@
defmodule Claper.EmbedsFixtures do
@moduledoc """
This module defines test helpers for creating
entities via the `Claper.Embeds` context.
"""
require Claper.UtilFixture
@doc """
Generate a embed.
"""
def embed_fixture(attrs \\ %{}, preload \\ []) do
{:ok, embed} =
attrs
|> Enum.into(%{
title: "some title",
content:
"<iframe src=\"https://www.youtube.com/embed/9bZkp7q19f0\" frameborder=\"0\" allowfullscreen></iframe>",
position: 0,
enabled: true,
attendee_visibility: true
})
|> Claper.Embeds.create_embed()
Claper.UtilFixture.merge_preload(embed, preload, %{})
end
end