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")}