Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/live_admin/components.ex
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ defmodule LiveAdmin.Components do
<h2 class="embed-section-title">{@field |> humanize() |> trans()}</h2>
</div>
<%= if @value do %>
<.inputs_for :let={embed_form} field={@form[@field]} skip_hidden={true}>
<.inputs_for :let={embed_form} field={@form[@field]}>
<%= if sortable?(@value) do %>
<div class="drop-zone" data-idx={embed_form.index}>{trans("Move here")}</div>
<% end %>
Expand Down
22 changes: 22 additions & 0 deletions test/live_admin/components/container_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,28 @@ defmodule LiveAdmin.Components.ContainerTest do
end
end

describe "edit resource after adding singular embed with only array fields" do
setup %{conn: conn} do
user = Repo.insert!(%User{})

{:ok, view, _} = live(conn, "/user/edit/#{user.id}")

view
|> element("form")
|> render_change(%{"params" => %{"private_data_sort" => "0"}})

view
|> element("form")
|> render_change(%{"params" => %{"name" => "test"}})

%{view: view}
end

test "keeps embed form field", %{view: view} do
assert has_element?(view, "#params_private_data_0_aliases_array_input")
end
end

describe "edit resource with plural embed with multiple entries" do
setup %{conn: conn} do
post = Repo.insert!(%Post{title: "test", previous_versions: [%Version{}, %Version{}]})
Expand Down
10 changes: 10 additions & 0 deletions test/support/resources.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ defmodule LiveAdminTest.User do
field(:encrypted_password, :string)

embeds_one(:settings, LiveAdminTest.Settings)
embeds_one(:private_data, LiveAdminTest.PrivateData)
end

def user_task(_, _), do: {:ok, "worked"}
Expand Down Expand Up @@ -96,6 +97,15 @@ defmodule LiveAdminTest.Settings do
end
end

defmodule LiveAdminTest.PrivateData do
use Ecto.Schema

@primary_key false
embedded_schema do
field(:aliases, {:array, :string})
end
end

defmodule LiveAdminTest.Post.Version do
use Ecto.Schema

Expand Down
Loading