From fb7a5492dd10a414ec157f99c8f8d1dc0a829678 Mon Sep 17 00:00:00 2001 From: FilipeR13 Date: Wed, 30 Apr 2025 23:49:25 +0100 Subject: [PATCH 1/3] fix: imports and usage of image_uploader --- lib/atomic_web/components/image_uploader.ex | 4 ++-- lib/atomic_web/live/activity_live/form_component.ex | 3 +-- lib/atomic_web/live/activity_live/form_component.html.heex | 2 +- lib/atomic_web/live/announcement_live/form_component.ex | 3 +-- .../live/announcement_live/form_component.html.heex | 4 ++-- lib/atomic_web/live/department_live/form_component.ex | 5 ++--- lib/atomic_web/live/partner_live/form_component.ex | 5 ++--- 7 files changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/atomic_web/components/image_uploader.ex b/lib/atomic_web/components/image_uploader.ex index 602c89bfd..8fd5a7705 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 ec6eb3176..3671eb95d 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 a763cadb2..0f63b37f5 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="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 w-full object-cover" />
diff --git a/lib/atomic_web/live/announcement_live/form_component.ex b/lib/atomic_web/live/announcement_live/form_component.ex index feb604a82..39058867e 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 466be60a2..12f2b5a0b 100644 --- a/lib/atomic_web/live/announcement_live/form_component.html.heex +++ b/lib/atomic_web/live/announcement_live/form_component.html.heex @@ -8,8 +8,8 @@ <.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="border shadow-sm border-zinc-300 w-full aspect-square"/> +
<.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 a18c0aebb..69b0b8a15 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="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 w-full object-cover"/>
diff --git a/lib/atomic_web/live/partner_live/form_component.ex b/lib/atomic_web/live/partner_live/form_component.ex index b2384695b..0008d7257 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="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 object-cover"/>

{gettext("Internal")}

From d4eeb7bf7985b1948eb406097200d3c402fb2c58 Mon Sep 17 00:00:00 2001 From: FilipeR13 Date: Wed, 30 Apr 2025 23:53:36 +0100 Subject: [PATCH 2/3] style: formatter --- lib/atomic_web/live/activity_live/form_component.html.heex | 2 +- .../live/announcement_live/form_component.html.heex | 4 ++-- lib/atomic_web/live/department_live/form_component.ex | 2 +- lib/atomic_web/live/partner_live/form_component.ex | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) 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 0f63b37f5..850272c6c 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 @@
- <.image_uploader id="uploader" upload={@uploads} class="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 w-full object-cover" /> + <.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.html.heex b/lib/atomic_web/live/announcement_live/form_component.html.heex index 12f2b5a0b..5e2e5f112 100644 --- a/lib/atomic_web/live/announcement_live/form_component.html.heex +++ b/lib/atomic_web/live/announcement_live/form_component.html.heex @@ -8,8 +8,8 @@ <.field field={f[:description]} type="textarea" placeholder="Description" required class="h-44 w-full resize-none overflow-auto xl:h-64" />
- <.image_uploader id="uploader" upload={@uploads.image} class="border shadow-sm border-zinc-300 w-full aspect-square"/> - + <.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 69b0b8a15..587a55fa9 100644 --- a/lib/atomic_web/live/department_live/form_component.ex +++ b/lib/atomic_web/live/department_live/form_component.ex @@ -23,7 +23,7 @@ defmodule AtomicWeb.DepartmentLive.FormComponent do

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

- <.image_uploader id="uploader" upload={@uploads.image} class="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 w-full object-cover"/> + <.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 0008d7257..c4f0200a6 100644 --- a/lib/atomic_web/live/partner_live/form_component.ex +++ b/lib/atomic_web/live/partner_live/form_component.ex @@ -37,7 +37,7 @@ defmodule AtomicWeb.PartnerLive.FormComponent do

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

- <.image_uploader id="uploader" upload={@uploads.image} class="border shadow-sm border-zinc-300 w-full h-32 xl:h-64" image_class="h-32 xl:h-64 object-cover"/> + <.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")}

From 9d2601dcce04a913c437f88797bcbb902d20b631 Mon Sep 17 00:00:00 2001 From: FilipeR13 Date: Fri, 2 May 2025 15:55:02 +0100 Subject: [PATCH 3/3] fix: banner upload for departments --- lib/atomic/uploaders/banner.ex | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/atomic/uploaders/banner.ex b/lib/atomic/uploaders/banner.ex index adf977875..507b5d3ee 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