diff --git a/core/frameworks/pixel/components/switch.ex b/core/frameworks/pixel/components/switch.ex
new file mode 100644
index 000000000..f1483d7a1
--- /dev/null
+++ b/core/frameworks/pixel/components/switch.ex
@@ -0,0 +1,81 @@
+defmodule Frameworks.Pixel.Switch do
+ use CoreWeb, :live_component_fabric
+ use Fabric.LiveComponent
+
+ alias Frameworks.Pixel
+
+ # Handle Selector Update
+ @impl true
+ def update(%{active_item_id: status, selector_id: :selector}, socket) do
+ {:ok, socket |> update_status(status)}
+ end
+
+ @impl true
+ def update(
+ %{id: id, on_text: on_text, off_text: off_text, opt_in?: opt_in?, status: status},
+ socket
+ ) do
+ {
+ :ok,
+ socket
+ |> assign(
+ id: id,
+ on_text: on_text,
+ off_text: off_text,
+ opt_in?: opt_in?,
+ status: status
+ )
+ |> compose_child(:selector)
+ }
+ end
+
+ defp update_status(%{assigns: %{status: status}} = socket, new_status)
+ when status != new_status do
+ socket
+ |> assign(status: new_status)
+ |> send_event(:parent, "switch", %{status: new_status})
+ end
+
+ defp update_status(socket, _status) do
+ socket
+ end
+
+ @impl true
+ def compose(:selector, %{
+ id: id,
+ on_text: on_text,
+ off_text: off_text,
+ opt_in?: opt_in?,
+ status: status
+ }) do
+ off = %{id: :off, value: off_text, active: status == :off}
+ on = %{id: :on, value: on_text, active: status == :on}
+
+ items =
+ if opt_in? do
+ [off, on]
+ else
+ [on, off]
+ end
+
+ %{
+ module: Pixel.Selector,
+ params: %{
+ grid_options: "flex flex-row gap-8",
+ items: items,
+ type: :radio,
+ optional?: false,
+ parent: %{id: id, type: __MODULE__}
+ }
+ }
+ end
+
+ @impl true
+ def render(assigns) do
+ ~H"""
+
Copy the url below and hand it over to your contact person at I&O R
#, elixir-autogen, elixir-format, fuzzy
msgid "panel.liss.connection.annotation"
msgstr "
Copy the url below and hand it over to your contact person at LISS. They use this url to send participants to this assignment.
"
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.off.label"
+msgstr "Skip consent"
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.on.label"
+msgstr "Show consent"
+
+#, elixir-autogen, elixir-format, fuzzy
+msgid "settings.consent.body"
+msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
+
+#, elixir-autogen, elixir-format, fuzzy
+msgid "settings.consent.title"
+msgstr "Consent"
diff --git a/core/priv/gettext/en/LC_MESSAGES/eyra-project.po b/core/priv/gettext/en/LC_MESSAGES/eyra-project.po
index 0c3c48d88..ec4288cab 100644
--- a/core/priv/gettext/en/LC_MESSAGES/eyra-project.po
+++ b/core/priv/gettext/en/LC_MESSAGES/eyra-project.po
@@ -23,14 +23,6 @@ msgstr "Settings"
msgid "tabbar.item.config.forward"
msgstr "Go to Settings"
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel"
-msgstr "Panel"
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel.forward"
-msgstr "Go to Panel"
-
#, elixir-autogen, elixir-format
msgid "tabbar.item.monitor"
msgstr "Monitor"
@@ -159,14 +151,6 @@ msgstr "Support"
msgid "tabbar.item.support.forward"
msgstr "Go to Support"
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.gdpr"
-msgstr "Consent"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.gdpr.forward"
-msgstr "Go to Consent"
-
#, elixir-autogen, elixir-format, fuzzy
msgid "tabbar.item.settings"
msgstr "Settings"
@@ -174,11 +158,3 @@ msgstr "Settings"
#, elixir-autogen, elixir-format, fuzzy
msgid "tabbar.item.settings.forward"
msgstr "Go to Settings"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.invite"
-msgstr "Panel"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.invite.forward"
-msgstr "Go to Settings"
diff --git a/core/priv/gettext/eyra-assignment.pot b/core/priv/gettext/eyra-assignment.pot
index ca27d3fca..66a4d7e74 100644
--- a/core/priv/gettext/eyra-assignment.pot
+++ b/core/priv/gettext/eyra-assignment.pot
@@ -94,14 +94,6 @@ msgstr ""
msgid "settings.data_storage.title"
msgstr ""
-#, elixir-autogen, elixir-format
-msgid "panel.title"
-msgstr ""
-
-#, elixir-autogen, elixir-format
-msgid "panel.label"
-msgstr ""
-
#, elixir-autogen, elixir-format
msgid "connect.button"
msgstr ""
@@ -173,3 +165,19 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "panel.liss.connection.annotation"
msgstr ""
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.off.label"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.on.label"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+msgid "settings.consent.body"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+msgid "settings.consent.title"
+msgstr ""
diff --git a/core/priv/gettext/eyra-project.pot b/core/priv/gettext/eyra-project.pot
index 94192cb46..7fc0f4c9c 100644
--- a/core/priv/gettext/eyra-project.pot
+++ b/core/priv/gettext/eyra-project.pot
@@ -23,14 +23,6 @@ msgstr ""
msgid "tabbar.item.config.forward"
msgstr ""
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel"
-msgstr ""
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel.forward"
-msgstr ""
-
#, elixir-autogen, elixir-format
msgid "tabbar.item.monitor"
msgstr ""
@@ -159,14 +151,6 @@ msgstr ""
msgid "tabbar.item.support.forward"
msgstr ""
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.gdpr"
-msgstr ""
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.gdpr.forward"
-msgstr ""
-
#, elixir-autogen, elixir-format
msgid "tabbar.item.settings"
msgstr ""
@@ -174,11 +158,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "tabbar.item.settings.forward"
msgstr ""
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.invite"
-msgstr ""
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.invite.forward"
-msgstr ""
diff --git a/core/priv/gettext/nl/LC_MESSAGES/eyra-assignment.po b/core/priv/gettext/nl/LC_MESSAGES/eyra-assignment.po
index ef16a9c7a..2cf3cb428 100644
--- a/core/priv/gettext/nl/LC_MESSAGES/eyra-assignment.po
+++ b/core/priv/gettext/nl/LC_MESSAGES/eyra-assignment.po
@@ -94,14 +94,6 @@ msgstr "Instellingen"
msgid "settings.data_storage.title"
msgstr "Opslag van deelnemers data"
-#, elixir-autogen, elixir-format
-msgid "panel.title"
-msgstr "Panel"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "panel.label"
-msgstr "Selecteer jou panel"
-
#, elixir-autogen, elixir-format, fuzzy
msgid "connect.button"
msgstr "Koppeling maken"
@@ -173,3 +165,19 @@ msgstr "
I&O Research
Lorem ipsum dolor sit amet, consectetur adipis
#, elixir-autogen, elixir-format, fuzzy
msgid "panel.liss.connection.annotation"
msgstr "
LISS
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
"
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.off.label"
+msgstr "Consent overslaan"
+
+#, elixir-autogen, elixir-format
+msgid "gdpr_form.on.label"
+msgstr "Consent tonen"
+
+#, elixir-autogen, elixir-format, fuzzy
+msgid "settings.consent.body"
+msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
+
+#, elixir-autogen, elixir-format, fuzzy
+msgid "settings.consent.title"
+msgstr "Toestemming"
diff --git a/core/priv/gettext/nl/LC_MESSAGES/eyra-project.po b/core/priv/gettext/nl/LC_MESSAGES/eyra-project.po
index 8cf2a8835..983cfc72a 100644
--- a/core/priv/gettext/nl/LC_MESSAGES/eyra-project.po
+++ b/core/priv/gettext/nl/LC_MESSAGES/eyra-project.po
@@ -23,14 +23,6 @@ msgstr "Instellingen"
msgid "tabbar.item.config.forward"
msgstr "Ga naar Instellingen"
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel"
-msgstr "Uitnodigen"
-
-#, elixir-autogen, elixir-format
-msgid "tabbar.item.panel.forward"
-msgstr "Ga naar Uitnodigen"
-
#, elixir-autogen, elixir-format
msgid "tabbar.item.monitor"
msgstr "Monitor"
@@ -159,14 +151,6 @@ msgstr "Support"
msgid "tabbar.item.support.forward"
msgstr "Ga naar Support"
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.gdpr"
-msgstr "Consent"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.gdpr.forward"
-msgstr "Ga naar Consent"
-
#, elixir-autogen, elixir-format, fuzzy
msgid "tabbar.item.settings"
msgstr "Instellingen"
@@ -174,11 +158,3 @@ msgstr "Instellingen"
#, elixir-autogen, elixir-format, fuzzy
msgid "tabbar.item.settings.forward"
msgstr "Ga naar Instellingen"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.invite"
-msgstr "Uitnodigen"
-
-#, elixir-autogen, elixir-format, fuzzy
-msgid "tabbar.item.invite.forward"
-msgstr "Ga naar Instellingen"
diff --git a/core/systems/assignment/_public.ex b/core/systems/assignment/_public.ex
index 5287fa452..67fc12cf4 100644
--- a/core/systems/assignment/_public.ex
+++ b/core/systems/assignment/_public.ex
@@ -232,6 +232,14 @@ defmodule Systems.Assignment.Public do
Core.Persister.save(assignment, changeset)
end
+ def update_consent_agreement(assignment, consent_agreement) do
+ changeset =
+ Assignment.Model.changeset(assignment, %{})
+ |> Ecto.Changeset.put_assoc(:consent_agreement, consent_agreement)
+
+ Core.Persister.save(assignment, changeset)
+ end
+
def is_owner?(assignment, user) do
Core.Authorization.user_has_role?(user, assignment, :owner)
end
diff --git a/core/systems/assignment/content_page_builder.ex b/core/systems/assignment/content_page_builder.ex
index a3a607f86..36df51be8 100644
--- a/core/systems/assignment/content_page_builder.ex
+++ b/core/systems/assignment/content_page_builder.ex
@@ -154,7 +154,7 @@ defmodule Systems.Assignment.ContentPageBuilder do
end
defp get_tab_keys() do
- [:config, :gdpr, :items, :invite]
+ [:config, :items]
end
defp create_tab(
@@ -246,28 +246,6 @@ defmodule Systems.Assignment.ContentPageBuilder do
}
end
- defp create_tab(
- :gdpr,
- %{consent_agreement: consent_agreement},
- show_errors,
- _assigns
- ) do
- ready? = false
-
- %{
- id: :gdpr_form,
- ready: ready?,
- show_errors: show_errors,
- title: dgettext("eyra-project", "tabbar.item.gdpr"),
- forward_title: dgettext("eyra-project", "tabbar.item.gdpr.forward"),
- type: :fullpage,
- live_component: Assignment.GdprForm,
- props: %{
- entity: consent_agreement
- }
- }
- end
-
defp create_tab(
:support,
assignment,
@@ -286,29 +264,6 @@ defmodule Systems.Assignment.ContentPageBuilder do
}
end
- defp create_tab(
- :invite,
- assignment,
- show_errors,
- %{uri_origin: uri_origin}
- ) do
- ready? = false
-
- %{
- id: :panel_form,
- ready: ready?,
- show_errors: show_errors,
- title: dgettext("eyra-project", "tabbar.item.panel"),
- forward_title: dgettext("eyra-project", "tabbar.item.panel.forward"),
- type: :fullpage,
- live_component: Assignment.PanelForm,
- props: %{
- uri_origin: uri_origin,
- entity: assignment
- }
- }
- end
-
defp create_tab(
:monitor,
assignment,
diff --git a/core/systems/assignment/crew_page_builder.ex b/core/systems/assignment/crew_page_builder.ex
index 1fe0e65ed..88a0e87b4 100644
--- a/core/systems/assignment/crew_page_builder.ex
+++ b/core/systems/assignment/crew_page_builder.ex
@@ -34,10 +34,13 @@ defmodule Systems.Assignment.CrewPageBuilder do
consent_view(assignment, assigns),
work_view(assignment, assigns)
]
+ |> Enum.filter(&(&1 != nil))
end
defp current_flow(%{fabric: %{children: children}}), do: children
+ defp consent_view(%{consent_agreement: nil}, _), do: nil
+
defp consent_view(%{consent_agreement: consent_agreement}, %{current_user: user, fabric: fabric}) do
revision = Consent.Public.latest_revision(consent_agreement)
diff --git a/core/systems/assignment/gdpr_form.ex b/core/systems/assignment/gdpr_form.ex
index 890a4f40f..856fb6784 100644
--- a/core/systems/assignment/gdpr_form.ex
+++ b/core/systems/assignment/gdpr_form.ex
@@ -1,9 +1,10 @@
defmodule Systems.Assignment.GdprForm do
- use CoreWeb, :live_component
+ use CoreWeb, :live_component_fabric
+ use Fabric.LiveComponent
- alias Systems.{
- Consent
- }
+ alias Frameworks.Pixel
+ alias Systems.Assignment
+ alias Systems.Consent
@impl true
def update(%{id: id, entity: entity}, socket) do
@@ -14,31 +15,78 @@ defmodule Systems.Assignment.GdprForm do
id: id,
entity: entity
)
- |> update_consent_agreement()
+ |> compose_child(:switch)
+ |> compose_child(:consent_revision_form)
}
end
- defp update_consent_agreement(%{assigns: %{entity: entity}} = socket) do
- revision = Consent.Public.latest_unlocked_revision_safe(entity)
+ @impl true
+ def compose(:switch, %{entity: %{consent_agreement: consent_agreement}}) do
+ %{
+ module: Pixel.Switch,
+ params: %{
+ opt_in?: false,
+ on_text: dgettext("eyra-assignment", "gdpr_form.on.label"),
+ off_text: dgettext("eyra-assignment", "gdpr_form.off.label"),
+ status:
+ if consent_agreement do
+ :on
+ else
+ :off
+ end
+ }
+ }
+ end
+
+ @impl true
+ def compose(:consent_revision_form, %{entity: %{consent_agreement: nil}}) do
+ nil
+ end
- consent_revision_form = %{
- id: :consent_revision,
+ @impl true
+ def compose(:consent_revision_form, %{entity: %{consent_agreement: consent_agreement}}) do
+ %{
module: Consent.RevisionForm,
- entity: revision
+ params: %{
+ entity: Consent.Public.latest_unlocked_revision_safe(consent_agreement)
+ }
+ }
+ end
+
+ @impl true
+ def handle_event(
+ "switch",
+ %{status: :on},
+ %{assigns: %{entity: %{auth_node: auth_node} = assignment}} = socket
+ ) do
+ consent_agreement = %Consent.AgreementModel{auth_node: auth_node}
+ Assignment.Public.update_consent_agreement(assignment, consent_agreement)
+
+ {
+ :noreply,
+ socket
+ |> compose_child(:consent_revision_form)
}
+ end
- assign(socket, consent_revision_form: consent_revision_form)
+ @impl true
+ def handle_event("switch", %{status: :off}, %{assigns: %{entity: assignment}} = socket) do
+ Assignment.Public.update_consent_agreement(assignment, nil)
+
+ {
+ :noreply,
+ socket
+ |> hide_child(:consent_revision_form)
+ }
end
@impl true
def render(assigns) do
~H"""
-
-
- Consent
- <.live_component {@consent_revision_form} />
-
+ <.child id={:switch} fabric={@fabric} />
+ <.spacing value="S" />
+ <.child id={:consent_revision_form} fabric={@fabric} />
"""
end
diff --git a/core/systems/assignment/model.ex b/core/systems/assignment/model.ex
index dd60e27bf..d709a8039 100644
--- a/core/systems/assignment/model.ex
+++ b/core/systems/assignment/model.ex
@@ -20,7 +20,7 @@ defmodule Systems.Assignment.Model do
field(:status, Ecto.Enum, values: Assignment.Status.values(), default: :concept)
field(:external_panel, Ecto.Enum, values: Assignment.ExternalPanelIds.values())
- belongs_to(:consent_agreement, Consent.AgreementModel)
+ belongs_to(:consent_agreement, Consent.AgreementModel, on_replace: :update)
belongs_to(:info, Assignment.InfoModel)
belongs_to(:storage_endpoint, Storage.EndpointModel, on_replace: :delete)
belongs_to(:workflow, Workflow.Model)
diff --git a/core/systems/assignment/panel_form.ex b/core/systems/assignment/panel_form.ex
deleted file mode 100644
index 876288db5..000000000
--- a/core/systems/assignment/panel_form.ex
+++ /dev/null
@@ -1,104 +0,0 @@
-defmodule Systems.Assignment.PanelForm do
- use CoreWeb.LiveForm
-
- alias Frameworks.Pixel.Selector
-
- alias Systems.{
- Assignment
- }
-
- # Handle Selector Update
- @impl true
- def update(
- %{active_item_id: panel_id, selector_id: :panel_selector},
- %{assigns: %{entity: assignment}} = socket
- ) do
- changeset = Assignment.Model.changeset(assignment, %{external_panel: panel_id})
-
- {
- :ok,
- socket
- |> save(changeset)
- |> update_panel_selector()
- |> update_panel_view()
- }
- end
-
- @impl true
- def update(%{id: id, uri_origin: uri_origin, entity: entity}, socket) do
- {
- :ok,
- socket
- |> assign(
- id: id,
- uri_origin: uri_origin,
- entity: entity
- )
- |> update_panel_selector()
- |> update_panel_view()
- }
- end
-
- defp update_panel_selector(
- %{assigns: %{id: id, entity: %{external_panel: external_panel}}} = socket
- ) do
- items =
- Assignment.ExternalPanelIds.labels(
- external_panel,
- Assignment.Private.allowed_external_panel_ids()
- )
-
- panel_selector = %{
- module: Selector,
- id: :panel_selector,
- grid_options: "flex flex-col gap-3",
- items: items,
- type: :radio,
- parent: %{type: __MODULE__, id: id}
- }
-
- assign(socket, panel_selector: panel_selector)
- end
-
- defp update_panel_view(%{assigns: %{entity: %{external_panel: nil}}} = socket) do
- assign(socket, panel_view: nil)
- end
-
- defp update_panel_view(%{assigns: %{entity: assignment, uri_origin: uri_origin}} = socket) do
- panel_view =
- if function = Assignment.Private.panel_function_component(assignment) do
- %{
- function: function,
- props: %{
- assignment: assignment,
- uri_origin: uri_origin
- }
- }
- else
- nil
- end
-
- assign(socket, panel_view: panel_view)
- end
-
- @impl true
- def render(assigns) do
- ~H"""
-
-
-
- <%= dgettext("eyra-assignment", "panel.title") %>
- <%= dgettext("eyra-assignment", "panel.label") %>
- <.spacing value="XS" />
-
- <.live_component {@panel_selector} />
-
- <%= if @panel_view do %>
- <.spacing value="XS" />
- <.function_component {@panel_view} />
- <% end %>
-
-
- """
- end
-end
diff --git a/core/systems/assignment/settings_view.ex b/core/systems/assignment/settings_view.ex
index 0f9db4009..9a6cf0b78 100644
--- a/core/systems/assignment/settings_view.ex
+++ b/core/systems/assignment/settings_view.ex
@@ -16,35 +16,46 @@ defmodule Systems.Assignment.SettingsView do
entity: assignment,
uri_origin: uri_origin
)
- |> update_storage_connector()
- |> update_panel_connector()
+ |> compose_child(:consent)
+ |> compose_child(:panel_connector)
+ |> compose_child(:storage_connector)
}
end
- defp update_storage_connector(
- %{assigns: %{entity: assignment, uri_origin: uri_origin}} = socket
- ) do
- child =
- prepare_child(socket, :storage_connector, Assignment.ConnectorView, %{
- assignment: assignment,
- connection: assignment.storage_endpoint,
- type: :storage,
- uri_origin: uri_origin
- })
-
- show_child(socket, child)
+ @impl true
+ def compose(:consent, %{entity: assignment}) do
+ %{
+ module: Assignment.GdprForm,
+ params: %{
+ entity: assignment
+ }
+ }
end
- defp update_panel_connector(%{assigns: %{entity: assignment, uri_origin: uri_origin}} = socket) do
- child =
- prepare_child(socket, :panel_connector, Assignment.ConnectorView, %{
+ @impl true
+ def compose(:panel_connector, %{entity: assignment, uri_origin: uri_origin}) do
+ %{
+ module: Assignment.ConnectorView,
+ params: %{
assignment: assignment,
connection: assignment.external_panel,
type: :panel,
uri_origin: uri_origin
- })
+ }
+ }
+ end
- show_child(socket, child)
+ @impl true
+ def compose(:storage_connector, %{entity: assignment, uri_origin: uri_origin}) do
+ %{
+ module: Assignment.ConnectorView,
+ params: %{
+ assignment: assignment,
+ connection: assignment.storage_endpoint,
+ type: :storage,
+ uri_origin: uri_origin
+ }
+ }
end
@impl true
@@ -59,17 +70,40 @@ defmodule Systems.Assignment.SettingsView do
<%= dgettext("eyra-assignment", "settings.title") %>
-
- <%= dgettext("eyra-assignment", "settings.panel.title") %>
- <%= dgettext("eyra-assignment", "settings.panel.body") %>
- <.spacing value="M" />
- <.child id={:panel_connector} fabric={@fabric}/>
<.spacing value="L" />
- <%= dgettext("eyra-assignment", "settings.data_storage.title") %>
- <%= dgettext("eyra-assignment", "settings.data_storage.body") %>
- <.spacing value="M" />
- <.child id={:storage_connector} fabric={@fabric}/>
+ <.child id={:consent} fabric={@fabric} >
+ <:header>
+ <%= dgettext("eyra-assignment", "settings.consent.title") %>
+ <%= dgettext("eyra-assignment", "settings.consent.body") %>
+ <.spacing value="M" />
+
+ <:footer>
+ <.spacing value="L" />
+
+
+
+ <.child id={:panel_connector} fabric={@fabric}>
+ <:header>
+ <%= dgettext("eyra-assignment", "settings.panel.title") %>
+ <%= dgettext("eyra-assignment", "settings.panel.body") %>
+ <.spacing value="M" />
+
+ <:footer>
+ <.spacing value="L" />
+
+
+
+ <.child id={:storage_connector} fabric={@fabric}>
+ <:header>
+ <%= dgettext("eyra-assignment", "settings.data_storage.title") %>
+ <%= dgettext("eyra-assignment", "settings.data_storage.body") %>
+ <.spacing value="M" />
+
+ <:footer>
+ <.spacing value="L" />
+
+
diff --git a/core/systems/benchmark/content_page_builder.ex b/core/systems/benchmark/content_page_builder.ex
index de3747bc8..aa6427b73 100644
--- a/core/systems/benchmark/content_page_builder.ex
+++ b/core/systems/benchmark/content_page_builder.ex
@@ -215,27 +215,4 @@ defmodule Systems.Benchmark.ContentPageBuilder do
}
}
end
-
- defp create_tab(
- :invite,
- assignment,
- show_errors,
- %{uri_origin: uri_origin}
- ) do
- ready? = false
-
- %{
- id: :invite_form,
- ready: ready?,
- show_errors: show_errors,
- title: dgettext("eyra-project", "tabbar.item.invite"),
- forward_title: dgettext("eyra-project", "tabbar.item.invite.forward"),
- type: :fullpage,
- live_component: Assignment.PanelForm,
- props: %{
- uri_origin: uri_origin,
- entity: assignment
- }
- }
- end
end
diff --git a/core/systems/consent/revision_form.ex b/core/systems/consent/revision_form.ex
index 35b28f3c4..419359bb3 100644
--- a/core/systems/consent/revision_form.ex
+++ b/core/systems/consent/revision_form.ex
@@ -1,5 +1,6 @@
defmodule Systems.Consent.RevisionForm do
- use CoreWeb.LiveForm
+ use CoreWeb.LiveForm, :fabric
+ use Fabric.LiveComponent
alias Systems.{
Consent