diff --git a/lib/atomic/uploaders/banner.ex b/lib/atomic/uploaders/banner.ex index adf97787..507b5d3e 100644 --- a/lib/atomic/uploaders/banner.ex +++ b/lib/atomic/uploaders/banner.ex @@ -1,9 +1,10 @@ defmodule Atomic.Uploaders.Banner do @moduledoc """ - Uploader for user banners. + Uploader for user and department banners. """ use Atomic.Uploader, extensions: ~w(.jpg .jpeg .png .gif) alias Atomic.Accounts.User + alias Atomic.Organizations.Department @versions [:original] @@ -11,6 +12,10 @@ defmodule Atomic.Uploaders.Banner do "uploads/atomic/users/#{user.id}/banner" end + def storage_dir(_version, {_file, %Department{} = department}) do + "uploads/atomic/departments/#{department.id}/banner" + end + def filename(version, _) do version end diff --git a/lib/atomic_web/components/image_uploader.ex b/lib/atomic_web/components/image_uploader.ex index 602c89bf..8fd5a770 100644 --- a/lib/atomic_web/components/image_uploader.ex +++ b/lib/atomic_web/components/image_uploader.ex @@ -73,13 +73,13 @@ defmodule AtomicWeb.Components.ImageUploader do <% end %> <%= for err <- upload_errors(@upload, entry) do %> -

{Phoenix.Naming.humanize(err)}

+

{Phoenix.Naming.humanize(err)}

<% end %> <% end %> <% end %> <%= for err <- upload_errors(@upload) do %> -

{Phoenix.Naming.humanize(err)}

+

{Phoenix.Naming.humanize(err)}

<% end %> diff --git a/lib/atomic_web/live/activity_live/form_component.ex b/lib/atomic_web/live/activity_live/form_component.ex index ec6eb317..3671eb95 100644 --- a/lib/atomic_web/live/activity_live/form_component.ex +++ b/lib/atomic_web/live/activity_live/form_component.ex @@ -2,9 +2,8 @@ defmodule AtomicWeb.ActivityLive.FormComponent do use AtomicWeb, :live_component alias Atomic.Activities - alias AtomicWeb.Components.ImageUploader - import AtomicWeb.Components.Forms + import AtomicWeb.Components.{Forms, ImageUploader} @impl true def update(%{activity: activity} = assigns, socket) do diff --git a/lib/atomic_web/live/activity_live/form_component.html.heex b/lib/atomic_web/live/activity_live/form_component.html.heex index a763cadb..850272c6 100644 --- a/lib/atomic_web/live/activity_live/form_component.html.heex +++ b/lib/atomic_web/live/activity_live/form_component.html.heex @@ -10,7 +10,7 @@
- <.live_component module={ImageUploader} id="uploader" uploads={@uploads} target={@myself} /> + <.image_uploader id="uploader" upload={@uploads} class="h-32 w-full border border-zinc-300 shadow-sm xl:h-64" image_class="h-32 w-full object-cover xl:h-64" />
diff --git a/lib/atomic_web/live/announcement_live/form_component.ex b/lib/atomic_web/live/announcement_live/form_component.ex index feb604a8..39058867 100644 --- a/lib/atomic_web/live/announcement_live/form_component.ex +++ b/lib/atomic_web/live/announcement_live/form_component.ex @@ -2,9 +2,8 @@ defmodule AtomicWeb.AnnouncementLive.FormComponent do use AtomicWeb, :live_component alias Atomic.Organizations - alias AtomicWeb.Components.ImageUploader - import AtomicWeb.Components.Forms + import AtomicWeb.Components.{Forms, ImageUploader} @impl true def mount(socket) do diff --git a/lib/atomic_web/live/announcement_live/form_component.html.heex b/lib/atomic_web/live/announcement_live/form_component.html.heex index 466be60a..5e2e5f11 100644 --- a/lib/atomic_web/live/announcement_live/form_component.html.heex +++ b/lib/atomic_web/live/announcement_live/form_component.html.heex @@ -8,7 +8,7 @@ <.field field={f[:description]} type="textarea" placeholder="Description" required class="h-44 w-full resize-none overflow-auto xl:h-64" />
- <.live_component module={ImageUploader} id="uploader" uploads={@uploads} target={@myself} class="object-cover" /> + <.image_uploader id="uploader" upload={@uploads.image} class="aspect-square w-full border border-zinc-300 shadow-sm" />
<.button size={:md} color={:white} icon="hero-cube" type="submit">{gettext("Save Changes")} diff --git a/lib/atomic_web/live/department_live/form_component.ex b/lib/atomic_web/live/department_live/form_component.ex index a18c0aeb..587a55fa 100644 --- a/lib/atomic_web/live/department_live/form_component.ex +++ b/lib/atomic_web/live/department_live/form_component.ex @@ -2,9 +2,8 @@ defmodule AtomicWeb.DepartmentLive.FormComponent do use AtomicWeb, :live_component alias Atomic.Departments - alias AtomicWeb.Components.ImageUploader - import AtomicWeb.Components.Forms + import AtomicWeb.Components.{Forms, ImageUploader} @impl true def render(assigns) do @@ -24,7 +23,7 @@ defmodule AtomicWeb.DepartmentLive.FormComponent do

{gettext("The banner of the department (2055×256px for best display)")}

- <.live_component module={ImageUploader} id="uploader" uploads={@uploads} target={@myself} /> + <.image_uploader id="uploader" upload={@uploads.image} class="h-32 w-full border border-zinc-300 shadow-sm xl:h-64" image_class="h-32 w-full object-cover xl:h-64" />
diff --git a/lib/atomic_web/live/partner_live/form_component.ex b/lib/atomic_web/live/partner_live/form_component.ex index b2384695..c4f0200a 100644 --- a/lib/atomic_web/live/partner_live/form_component.ex +++ b/lib/atomic_web/live/partner_live/form_component.ex @@ -2,8 +2,7 @@ defmodule AtomicWeb.PartnerLive.FormComponent do use AtomicWeb, :live_component alias Atomic.Partners - alias AtomicWeb.Components.ImageUploader - import AtomicWeb.Components.Forms + import AtomicWeb.Components.{Forms, ImageUploader} @impl true def render(assigns) do @@ -38,7 +37,7 @@ defmodule AtomicWeb.PartnerLive.FormComponent do

{gettext("The image of the partner (960x960px for best display)")}

- <.live_component module={ImageUploader} id="uploader" uploads={@uploads} target={@myself} /> + <.image_uploader id="uploader" upload={@uploads.image} class="h-32 w-full border border-zinc-300 shadow-sm xl:h-64" image_class="h-32 object-cover xl:h-64" />

{gettext("Internal")}