From c13304b7e0e9a9497cd77b3ede2591a16c7cf713 Mon Sep 17 00:00:00 2001 From: T Floyd Wright Date: Sat, 2 Nov 2024 13:22:38 -0800 Subject: [PATCH] Fix task when run on non list pages --- dist/css/app.css | 34 +++++++++++++++++++++ lib/live_admin/components/container.ex | 34 +++++++++++++++++++-- lib/live_admin/components/resource/index.ex | 26 ---------------- 3 files changed, 65 insertions(+), 29 deletions(-) diff --git a/dist/css/app.css b/dist/css/app.css index 27adcdb..6642aeb 100644 --- a/dist/css/app.css +++ b/dist/css/app.css @@ -671,6 +671,40 @@ select { --tw-backdrop-sepia: ; } +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + .view__container { overflow-y: auto; } diff --git a/lib/live_admin/components/container.ex b/lib/live_admin/components/container.ex index 755b1df..7b5af4c 100644 --- a/lib/live_admin/components/container.ex +++ b/lib/live_admin/components/container.ex @@ -7,7 +7,8 @@ defmodule LiveAdmin.Components.Container do resource_title: 2, route_with_params: 1, route_with_params: 2, - trans: 1 + trans: 1, + trans: 2 ] import LiveAdmin.Components @@ -89,6 +90,33 @@ defmodule LiveAdmin.Components.Container do def handle_params(_, _, socket), do: {:noreply, socket} + @impl true + def handle_event( + "task", + params = %{"name" => task}, + socket = %{ + assigns: %{session: session, resource: resource, config: config} + } + ) do + {_, m, f, _, _} = + LiveAdmin.fetch_function(resource, session, :tasks, String.to_existing_atom(task)) + + args = [session | Map.get(params, "args", [])] + + search = Map.get(socket.assigns, :search) + + Task.Supervisor.async_nolink(LiveAdmin.Task.Supervisor, m, f, [ + Resource.query(resource, search, config) | args + ]) + + socket = + socket + |> put_flash(:info, trans("%{task} started", inter: [task: task])) + |> push_navigate(to: route_with_params(socket.assigns)) + + {:noreply, socket} + end + @impl true def handle_event("set_locale", %{"locale" => locale}, socket) do new_session = Map.put(socket.assigns.session, :locale, locale) @@ -385,7 +413,7 @@ defmodule LiveAdmin.Components.Container do to: "##{@task}-task-modal", transition: {"ease-in duration-300", "opacity-0", "opacity-100"} ), - else: JS.push("task", value: %{"name" => @task}, page_loading: true, target: "#list") + else: JS.push("task", value: %{"name" => @task}, page_loading: true) } , data-confirm={if @modalize, do: nil, else: "Are you sure?"} @@ -398,7 +426,7 @@ defmodule LiveAdmin.Components.Container do <%= for {_lang, doc} <- @function_docs do %> <%= doc %> <% end %> - <.form for={Phoenix.Component.to_form(%{})} phx-submit="task" phx-target="#list"> + <.form for={Phoenix.Component.to_form(%{})} phx-submit="task"> <%= if @extra_arg_count > 0 do %> Arguments diff --git a/lib/live_admin/components/resource/index.ex b/lib/live_admin/components/resource/index.ex index 9ae9a7e..74d6cd8 100644 --- a/lib/live_admin/components/resource/index.ex +++ b/lib/live_admin/components/resource/index.ex @@ -4,7 +4,6 @@ defmodule LiveAdmin.Components.Container.Index do import LiveAdmin, only: [ - route_with_params: 1, route_with_params: 2, trans: 1, trans: 2 @@ -341,31 +340,6 @@ defmodule LiveAdmin.Components.Container.Index do """ end - @impl true - def handle_event( - "task", - params = %{"name" => task}, - socket = %{ - assigns: %{search: search, session: session, resource: resource, config: config} - } - ) do - {_, m, f, _, _} = - LiveAdmin.fetch_function(resource, session, :tasks, String.to_existing_atom(task)) - - args = [session | Map.get(params, "args", [])] - - Task.Supervisor.async_nolink(LiveAdmin.Task.Supervisor, m, f, [ - Resource.query(resource, search, config) | args - ]) - - socket = - socket - |> put_flash(:info, trans("%{task} started", inter: [task: task])) - |> push_navigate(to: route_with_params(socket.assigns)) - - {:noreply, socket} - end - @impl true def handle_event("search", %{"query" => query}, socket = %{assigns: assigns}) do {:noreply,