|
|
@ -6,7 +6,7 @@ defmodule FuckGabWeb.DirectoryLive do |
|
|
|
alias FuckGab.Instance |
|
|
|
|
|
|
|
def mount(_session, _, socket) do |
|
|
|
assigns = get_search_and_assign_page("", 5, 1) |
|
|
|
assigns = get_search_and_assign_page("", 5, [], 1) |
|
|
|
|
|
|
|
socket = |
|
|
|
socket |
|
|
@ -17,18 +17,33 @@ defmodule FuckGabWeb.DirectoryLive do |
|
|
|
{:ok, socket} |
|
|
|
end |
|
|
|
|
|
|
|
def handle_event("search", %{"search" => search, "per_page" => per_page} = _value, socket) do |
|
|
|
assigns = get_search_and_assign_page(search, per_page, 1) |
|
|
|
def handle_event( |
|
|
|
"search", |
|
|
|
%{"search" => search, "per_page" => per_page, "software" => software} = _value, |
|
|
|
socket |
|
|
|
) do |
|
|
|
assigns = get_search_and_assign_page(search, per_page, software, 1) |
|
|
|
{:noreply, assign(socket, assigns)} |
|
|
|
end |
|
|
|
|
|
|
|
def handle_event( |
|
|
|
"search", |
|
|
|
%{"search" => search, "per_page" => per_page} = _value, |
|
|
|
socket |
|
|
|
) do |
|
|
|
assigns = get_search_and_assign_page(search, per_page, [], 1) |
|
|
|
{:noreply, assign(socket, assigns)} |
|
|
|
end |
|
|
|
|
|
|
|
def handle_event("search", %{"search" => search} = _value, socket) do |
|
|
|
assigns = get_search_and_assign_page(search, socket.assigns.per_page, 1) |
|
|
|
assigns = |
|
|
|
get_search_and_assign_page(search, socket.assigns.per_page, socket.assigns.software, 1) |
|
|
|
|
|
|
|
{:noreply, assign(socket, assigns)} |
|
|
|
end |
|
|
|
|
|
|
|
def handle_event("search", _, socket) do |
|
|
|
assigns = get_search_and_assign_page("", socket.assigns.per_page, 1) |
|
|
|
assigns = get_search_and_assign_page("", socket.assigns.per_page, socket.assigns.software, 1) |
|
|
|
{:noreply, assign(socket, assigns)} |
|
|
|
end |
|
|
|
|
|
|
@ -37,6 +52,7 @@ defmodule FuckGabWeb.DirectoryLive do |
|
|
|
get_search_and_assign_page( |
|
|
|
socket.assigns.search, |
|
|
|
socket.assigns.per_page, |
|
|
|
socket.assigns.software, |
|
|
|
socket.assigns.page_number - 1 |
|
|
|
) |
|
|
|
|
|
|
@ -48,6 +64,7 @@ defmodule FuckGabWeb.DirectoryLive do |
|
|
|
get_search_and_assign_page( |
|
|
|
socket.assigns.search, |
|
|
|
socket.assigns.per_page, |
|
|
|
socket.assigns.software, |
|
|
|
socket.assigns.page_number + 1 |
|
|
|
) |
|
|
|
|
|
|
@ -58,16 +75,17 @@ defmodule FuckGabWeb.DirectoryLive do |
|
|
|
{:noreply, update(socket, :show_advanced, &(!&1))} |
|
|
|
end |
|
|
|
|
|
|
|
defp get_search_and_assign_page(search, per_page, page_number) do |
|
|
|
defp get_search_and_assign_page(search, per_page, software, page_number) do |
|
|
|
%{ |
|
|
|
entries: entries, |
|
|
|
page_number: page_number, |
|
|
|
total_pages: total_pages |
|
|
|
} = Instance.filter(search, per_page, page_number) |
|
|
|
} = Instance.filter(search, per_page, software, page_number) |
|
|
|
|
|
|
|
[ |
|
|
|
instances: entries, |
|
|
|
per_page: per_page, |
|
|
|
software: software, |
|
|
|
page_number: page_number, |
|
|
|
search: search, |
|
|
|
total_pages: total_pages |
|
|
|