|
|
@ -13,6 +13,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
|
|
|
|
attr :resource_new_url, :string, required: true
|
|
|
|
attr :resource_new_url, :string, required: true
|
|
|
|
attr :search_placeholder, :string, default: "Search by name"
|
|
|
|
attr :search_placeholder, :string, default: "Search by name"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
attr :moderator_role, :atom, default: :moderator
|
|
|
|
|
|
|
|
|
|
|
|
def search_resources(assigns) do
|
|
|
|
def search_resources(assigns) do
|
|
|
|
~H"""
|
|
|
|
~H"""
|
|
|
|
<div class="relative bg-white shadow-md dark:bg-gray-800 sm:rounded-lg">
|
|
|
|
<div class="relative bg-white shadow-md dark:bg-gray-800 sm:rounded-lg">
|
|
|
@ -31,7 +33,7 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
|
|
|
|
</form>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="flex flex-col items-stretch justify-end flex-shrink-0 w-full space-y-2 md:w-auto md:flex-row md:space-y-0 md:items-center md:space-x-3">
|
|
|
|
<div class="flex flex-col items-stretch justify-end flex-shrink-0 w-full space-y-2 md:w-auto md:flex-row md:space-y-0 md:items-center md:space-x-3">
|
|
|
|
<%= if @current_user != nil and Role.can_moderate?(@current_user.role) do %>
|
|
|
|
<%= if can_add?(@current_user, @moderator_role) do %>
|
|
|
|
<.link patch={@resource_new_url}>
|
|
|
|
<.link patch={@resource_new_url}>
|
|
|
|
<button type="button" class="flex items-center justify-center px-4 py-2 text-sm font-medium text-black dark:text-white rounded-lg bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-600 dark:hover:bg-primary-700 focus:outline-none dark:focus:ring-primary-800">
|
|
|
|
<button type="button" class="flex items-center justify-center px-4 py-2 text-sm font-medium text-black dark:text-white rounded-lg bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-600 dark:hover:bg-primary-700 focus:outline-none dark:focus:ring-primary-800">
|
|
|
|
<svg class="h-3.5 w-3.5 mr-2" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
|
|
<svg class="h-3.5 w-3.5 mr-2" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
|
@ -59,4 +61,12 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp can_add?(current_user, role) do
|
|
|
|
|
|
|
|
case role do
|
|
|
|
|
|
|
|
:admin -> current_user != nil and Role.can_moderate?(current_user.role)
|
|
|
|
|
|
|
|
:moderator -> current_user != nil and Role.can_moderate?(current_user.role)
|
|
|
|
|
|
|
|
_ -> false
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|