diff --git a/lib/components_elixir/inventory.ex b/lib/components_elixir/inventory.ex index fd69bb9..795cc45 100644 --- a/lib/components_elixir/inventory.ex +++ b/lib/components_elixir/inventory.ex @@ -284,8 +284,8 @@ defmodule ComponentsElixir.Inventory do where(query, [c], ilike(c.name, ^search_pattern) or ilike(c.description, ^search_pattern) or - ilike(c.manufacturer, ^search_pattern) or - ilike(c.part_number, ^search_pattern) + ilike(c.keywords, ^search_pattern) or + ilike(c.position, ^search_pattern) ) _, query -> query diff --git a/lib/components_elixir_web/live/components_live.ex b/lib/components_elixir_web/live/components_live.ex index e00f75e..d5d4022 100644 --- a/lib/components_elixir_web/live/components_live.ex +++ b/lib/components_elixir_web/live/components_live.ex @@ -59,21 +59,27 @@ defmodule ComponentsElixirWeb.ComponentsLive do @impl true def handle_event("search", %{"search" => search}, socket) do + query_string = build_query_params(socket, %{search: search}) + path = if query_string == "", do: "/", else: "/?" <> query_string + {:noreply, socket |> assign(:search, search) |> assign(:offset, 0) |> load_components() - |> push_patch(to: ~p"/?#{build_query_params(socket, %{search: search})}")} + |> push_patch(to: path)} end def handle_event("sort_change", %{"sort_criteria" => criteria}, socket) do + query_string = build_query_params(socket, %{criteria: criteria}) + path = if query_string == "", do: "/", else: "/?" <> query_string + {:noreply, socket |> assign(:sort_criteria, criteria) |> assign(:offset, 0) |> load_components() - |> push_patch(to: ~p"/?#{build_query_params(socket, %{criteria: criteria})}")} + |> push_patch(to: path)} end def handle_event("category_filter", %{"category_id" => ""}, socket) do @@ -260,7 +266,11 @@ defmodule ComponentsElixirWeb.ComponentsLive do limit: @items_per_page, offset: socket.assigns.offset ] - |> Enum.reject(fn {_k, v} -> is_nil(v) end) + |> Enum.reject(fn + {_, v} when is_nil(v) -> true + {:search, v} when v == "" -> true + {_, _} -> false + end) %{components: new_components, has_more: has_more} = Inventory.paginate_components(filters)