From f5da11b99b679354935d5bde3445afe251ad51f1 Mon Sep 17 00:00:00 2001 From: Melvin Snijders <25155102+MelvinSnijders@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:20:22 +0100 Subject: [PATCH] feat: add email logo customization (#1150) --- .../internal/bootstrap/router_bootstrap.go | 1 + .../controller/app_images_controller.go | 45 ++++++++++++ backend/internal/service/email_service.go | 2 +- backend/resources/images/logoEmail.png | Bin 0 -> 566 bytes frontend/messages/en.json | 1 + .../src/lib/services/app-config-service.ts | 9 +++ frontend/src/lib/utils/cached-image-util.ts | 5 ++ .../application-configuration/+page.svelte | 6 ++ .../update-application-images.svelte | 17 ++++- tests/assets/cloud-logo.png | Bin 0 -> 29471 bytes tests/assets/cloud-logo.svg | 3 + tests/assets/nextcloud-logo.png | Bin 90103 -> 0 bytes tests/specs/application-configuration.spec.ts | 67 +++++++++++------- tests/specs/oidc-client-settings.spec.ts | 4 +- 14 files changed, 131 insertions(+), 29 deletions(-) create mode 100644 backend/resources/images/logoEmail.png create mode 100644 tests/assets/cloud-logo.png create mode 100644 tests/assets/cloud-logo.svg delete mode 100644 tests/assets/nextcloud-logo.png diff --git a/backend/internal/bootstrap/router_bootstrap.go b/backend/internal/bootstrap/router_bootstrap.go index 30ac1b94..9153bae9 100644 --- a/backend/internal/bootstrap/router_bootstrap.go +++ b/backend/internal/bootstrap/router_bootstrap.go @@ -198,6 +198,7 @@ func initLogger(r *gin.Engine) { "GET /api/application-images/logo", "GET /api/application-images/background", "GET /api/application-images/favicon", + "GET /api/application-images/email", "GET /_app", "GET /fonts", "GET /healthz", diff --git a/backend/internal/controller/app_images_controller.go b/backend/internal/controller/app_images_controller.go index c4568377..ec3215aa 100644 --- a/backend/internal/controller/app_images_controller.go +++ b/backend/internal/controller/app_images_controller.go @@ -23,11 +23,13 @@ func NewAppImagesController( } group.GET("/application-images/logo", controller.getLogoHandler) + group.GET("/application-images/email", controller.getEmailLogoHandler) group.GET("/application-images/background", controller.getBackgroundImageHandler) group.GET("/application-images/favicon", controller.getFaviconHandler) group.GET("/application-images/default-profile-picture", authMiddleware.Add(), controller.getDefaultProfilePicture) group.PUT("/application-images/logo", authMiddleware.Add(), controller.updateLogoHandler) + group.PUT("/application-images/email", authMiddleware.Add(), controller.updateEmailLogoHandler) group.PUT("/application-images/background", authMiddleware.Add(), controller.updateBackgroundImageHandler) group.PUT("/application-images/favicon", authMiddleware.Add(), controller.updateFaviconHandler) group.PUT("/application-images/default-profile-picture", authMiddleware.Add(), controller.updateDefaultProfilePicture) @@ -59,6 +61,18 @@ func (c *AppImagesController) getLogoHandler(ctx *gin.Context) { c.getImage(ctx, imageName) } +// getEmailLogoHandler godoc +// @Summary Get email logo image +// @Description Get the email logo image for use in emails +// @Tags Application Images +// @Produce image/png +// @Produce image/jpeg +// @Success 200 {file} binary "Email logo image" +// @Router /api/application-images/email [get] +func (c *AppImagesController) getEmailLogoHandler(ctx *gin.Context) { + c.getImage(ctx, "logoEmail") +} + // getBackgroundImageHandler godoc // @Summary Get background image // @Description Get the background image for the application @@ -124,6 +138,37 @@ func (c *AppImagesController) updateLogoHandler(ctx *gin.Context) { ctx.Status(http.StatusNoContent) } +// updateEmailLogoHandler godoc +// @Summary Update email logo +// @Description Update the email logo for use in emails +// @Tags Application Images +// @Accept multipart/form-data +// @Param file formData file true "Email logo image file" +// @Success 204 "No Content" +// @Router /api/application-images/email [put] +func (c *AppImagesController) updateEmailLogoHandler(ctx *gin.Context) { + file, err := ctx.FormFile("file") + if err != nil { + _ = ctx.Error(err) + return + } + + fileType := utils.GetFileExtension(file.Filename) + mimeType := utils.GetImageMimeType(fileType) + + if mimeType != "image/png" && mimeType != "image/jpeg" { + _ = ctx.Error(&common.WrongFileTypeError{ExpectedFileType: ".png or .jpg/jpeg"}) + return + } + + if err := c.appImagesService.UpdateImage(ctx.Request.Context(), file, "logoEmail"); err != nil { + _ = ctx.Error(err) + return + } + + ctx.Status(http.StatusNoContent) +} + // updateBackgroundImageHandler godoc // @Summary Update background image // @Description Update the application background image diff --git a/backend/internal/service/email_service.go b/backend/internal/service/email_service.go index 3f0a7e30..05affa5b 100644 --- a/backend/internal/service/email_service.go +++ b/backend/internal/service/email_service.go @@ -78,7 +78,7 @@ func SendEmail[V any](ctx context.Context, srv *EmailService, toEmail email.Addr data := &email.TemplateData[V]{ AppName: dbConfig.AppName.Value, - LogoURL: common.EnvConfig.AppURL + "/api/application-images/logo", + LogoURL: common.EnvConfig.AppURL + "/api/application-images/email", Data: tData, } diff --git a/backend/resources/images/logoEmail.png b/backend/resources/images/logoEmail.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7bff23051fe49674e7dab59724f430f8ee0845 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeE3?v1%WpM*3=>VS)S0IfGObL9X0F>h>3GxeO zP;f}7pTGZpoREqp0|VnBPZ!6Kid$Q++j<{y5MX;?YioZ>)MeeCM=jdT`yJM->yc?n zl~R0KtFY|M_jBjPRA!vr_v~4mK`@`qNxt32vuEgC6FPGJ__vciF6;(&(^UkvhcX^pX^phG3b;x`+sD#%YN6)!Z6MJ^Xq%PO?%Gkv50pm zyxJU|&Uiar-zGruK(g84xy~1UybMv`Um(Z$HuAw<_CD6PmaemX7(ZkMcJcK;UCNZO zC`S7?!{qX{Z%p=Be|2CykS`iD@yX)_|298P+Phr-NWaH?DI<<EPTO5~6Q*{dWI3rLEbx`FG?@DYf7_ z_Jl=CPVuw*O!3`bCptqf%zH7j%^$0bh=9!tk{k~<)f5T%^C^klIN7M^Xl%J6B4E>k r1jlntEv$yzi!u*9zMUWOdHqM;t;gN^_D_`T2gSaptDnm{r-UW|1isz| literal 0 HcmV?d00001 diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 9ec15916..12f285e6 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -311,6 +311,7 @@ "favicon": "Favicon", "light_mode_logo": "Light Mode Logo", "dark_mode_logo": "Dark Mode Logo", + "email_logo": "Email Logo", "background_image": "Background Image", "language": "Language", "reset_profile_picture_question": "Reset profile picture?", diff --git a/frontend/src/lib/services/app-config-service.ts b/frontend/src/lib/services/app-config-service.ts index 1e8e7f64..88386bf6 100644 --- a/frontend/src/lib/services/app-config-service.ts +++ b/frontend/src/lib/services/app-config-service.ts @@ -4,6 +4,7 @@ import { cachedApplicationLogo, cachedBackgroundImage, cachedDefaultProfilePicture, + cachedEmailLogo, cachedProfilePicture } from '$lib/utils/cached-image-util'; import { get } from 'svelte/store'; @@ -46,6 +47,14 @@ export default class AppConfigService extends APIService { cachedApplicationLogo.bustCache(light); }; + updateEmailLogo = async (emailLogo: File) => { + const formData = new FormData(); + formData.append('file', emailLogo); + + await this.api.put(`/application-images/email`, formData); + cachedEmailLogo.bustCache(); + }; + updateDefaultProfilePicture = async (defaultProfilePicture: File) => { const formData = new FormData(); formData.append('file', defaultProfilePicture); diff --git a/frontend/src/lib/utils/cached-image-util.ts b/frontend/src/lib/utils/cached-image-util.ts index bb732bd1..4f883867 100644 --- a/frontend/src/lib/utils/cached-image-util.ts +++ b/frontend/src/lib/utils/cached-image-util.ts @@ -20,6 +20,11 @@ export const cachedApplicationLogo: CachableImage = { } }; +export const cachedEmailLogo: CachableImage = { + getUrl: () => getCachedImageUrl(new URL('/api/application-images/email', window.location.origin)), + bustCache: () => bustImageCache(new URL('/api/application-images/email', window.location.origin)) +}; + export const cachedDefaultProfilePicture: CachableImage = { getUrl: () => getCachedImageUrl( diff --git a/frontend/src/routes/settings/admin/application-configuration/+page.svelte b/frontend/src/routes/settings/admin/application-configuration/+page.svelte index 05566b01..fdecb945 100644 --- a/frontend/src/routes/settings/admin/application-configuration/+page.svelte +++ b/frontend/src/routes/settings/admin/application-configuration/+page.svelte @@ -42,6 +42,7 @@ async function updateImages( logoLight: File | undefined, logoDark: File | undefined, + logoEmail: File | undefined, defaultProfilePicture: File | null | undefined, backgroundImage: File | undefined, favicon: File | undefined @@ -56,6 +57,10 @@ ? appConfigService.updateLogo(logoDark, false) : Promise.resolve(); + const emailLogoPromise = logoEmail + ? appConfigService.updateEmailLogo(logoEmail) + : Promise.resolve(); + const defaultProfilePicturePromise = defaultProfilePicture === null ? appConfigService.deleteDefaultProfilePicture() @@ -70,6 +75,7 @@ await Promise.all([ lightLogoPromise, darkLogoPromise, + emailLogoPromise, defaultProfilePicturePromise, backgroundImagePromise, faviconPromise diff --git a/frontend/src/routes/settings/admin/application-configuration/update-application-images.svelte b/frontend/src/routes/settings/admin/application-configuration/update-application-images.svelte index 8fced2f7..e59795ee 100644 --- a/frontend/src/routes/settings/admin/application-configuration/update-application-images.svelte +++ b/frontend/src/routes/settings/admin/application-configuration/update-application-images.svelte @@ -4,7 +4,8 @@ import { cachedApplicationLogo, cachedBackgroundImage, - cachedDefaultProfilePicture + cachedDefaultProfilePicture, + cachedEmailLogo } from '$lib/utils/cached-image-util'; import ApplicationImage from './application-image.svelte'; @@ -14,6 +15,7 @@ callback: ( logoLight: File | undefined, logoDark: File | undefined, + logoEmail: File | undefined, defaultProfilePicture: File | null | undefined, backgroundImage: File | undefined, favicon: File | undefined @@ -22,6 +24,7 @@ let logoLight = $state(); let logoDark = $state(); + let logoEmail = $state(); let defaultProfilePicture = $state(); let backgroundImage = $state(); let favicon = $state(); @@ -54,6 +57,15 @@ imageURL={cachedApplicationLogo.getUrl(false)} forceColorScheme="dark" /> + callback(logoLight, logoDark, defaultProfilePicture, backgroundImage, favicon)} + onclick={() => + callback(logoLight, logoDark, logoEmail, defaultProfilePicture, backgroundImage, favicon)} >{m.save()} diff --git a/tests/assets/cloud-logo.png b/tests/assets/cloud-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1a8e0fbd359a6faa340ace8f847ecc0ef7341d GIT binary patch literal 29471 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 literal 0 HcmV?d00001 diff --git a/tests/assets/cloud-logo.svg b/tests/assets/cloud-logo.svg new file mode 100644 index 00000000..1b6ea276 --- /dev/null +++ b/tests/assets/cloud-logo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/tests/assets/nextcloud-logo.png b/tests/assets/nextcloud-logo.png deleted file mode 100644 index 5d4e8e06b046cc2ea31c8fc17b06c29157d83fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90103 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 G`~Lz*ZMz@< diff --git a/tests/specs/application-configuration.spec.ts b/tests/specs/application-configuration.spec.ts index a675a60b..816e3f0a 100644 --- a/tests/specs/application-configuration.spec.ts +++ b/tests/specs/application-configuration.spec.ts @@ -116,30 +116,49 @@ test('Update email configuration', async ({ page }) => { await expect(page.getByLabel('API Key Expiration')).toBeChecked(); }); -test('Update application images', async ({ page }) => { - await page.getByRole('button', { name: 'Expand card' }).nth(4).click(); +test.describe('Update application images', () => { + test.beforeEach(async ({ page }) => { + await page.getByRole('button', { name: 'Expand card' }).nth(4).click(); + }); - await page.getByLabel('Favicon').setInputFiles('assets/w3-schools-favicon.ico'); - await page.getByLabel('Light Mode Logo').setInputFiles('assets/pingvin-share-logo.png'); - await page.getByLabel('Dark Mode Logo').setInputFiles('assets/nextcloud-logo.png'); - await page.getByLabel('Default Profile Picture').setInputFiles('assets/pingvin-share-logo.png'); - await page.getByLabel('Background Image').setInputFiles('assets/clouds.jpg'); - await page.getByRole('button', { name: 'Save' }).last().click(); + test('should upload images', async ({ page }) => { + await page.getByLabel('Favicon').setInputFiles('assets/w3-schools-favicon.ico'); + await page.getByLabel('Light Mode Logo').setInputFiles('assets/pingvin-share-logo.png'); + await page.getByLabel('Dark Mode Logo').setInputFiles('assets/cloud-logo.png'); + await page.getByLabel('Email Logo').setInputFiles('assets/pingvin-share-logo.png'); + await page.getByLabel('Default Profile Picture').setInputFiles('assets/pingvin-share-logo.png'); + await page.getByLabel('Background Image').setInputFiles('assets/clouds.jpg'); + await page.getByRole('button', { name: 'Save' }).last().click(); - await expect(page.locator('[data-type="success"]')).toHaveText( - 'Images updated successfully. It may take a few minutes to update.' - ); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Images updated successfully. It may take a few minutes to update.' + ); - await page.request - .get('/api/application-images/favicon') - .then((res) => expect.soft(res.status()).toBe(200)); - await page.request - .get('/api/application-images/logo?light=true') - .then((res) => expect.soft(res.status()).toBe(200)); - await page.request - .get('/api/application-images/logo?light=false') - .then((res) => expect.soft(res.status()).toBe(200)); - await page.request - .get('/api/application-images/background') - .then((res) => expect.soft(res.status()).toBe(200)); -}); + await page.request + .get('/api/application-images/favicon') + .then((res) => expect.soft(res.status()).toBe(200)); + await page.request + .get('/api/application-images/logo?light=true') + .then((res) => expect.soft(res.status()).toBe(200)); + await page.request + .get('/api/application-images/logo?light=false') + .then((res) => expect.soft(res.status()).toBe(200)); + await page.request + .get('/api/application-images/email') + .then((res) => expect.soft(res.status()).toBe(200)); + await page.request + .get('/api/application-images/background') + .then((res) => expect.soft(res.status()).toBe(200)); + }); + + test('should only allow png/jpeg for email logo', async ({ page }) => { + const emailLogoInput = page.getByLabel('Email Logo'); + + await emailLogoInput.setInputFiles('assets/cloud-logo.svg'); + await page.getByRole('button', { name: 'Save' }).last().click(); + + await expect(page.locator('[data-type="error"]')).toHaveText( + 'File must be of type .png or .jpg/jpeg' + ); + }); +}); \ No newline at end of file diff --git a/tests/specs/oidc-client-settings.spec.ts b/tests/specs/oidc-client-settings.spec.ts index ed2756c3..5bcd31a2 100644 --- a/tests/specs/oidc-client-settings.spec.ts +++ b/tests/specs/oidc-client-settings.spec.ts @@ -71,9 +71,9 @@ test('Edit OIDC client', async ({ page }) => { await page.getByLabel('Name').fill('Nextcloud updated'); await page.getByTestId('callback-url-1').first().fill('http://nextcloud-updated/auth/callback'); await page.locator('[role="tab"][data-value="light-logo"]').first().click(); - await page.setInputFiles('#oidc-client-logo-light', 'assets/nextcloud-logo.png'); + await page.setInputFiles('#oidc-client-logo-light', 'assets/cloud-logo.png'); await page.locator('[role="tab"][data-value="dark-logo"]').first().click(); - await page.setInputFiles('#oidc-client-logo-dark', 'assets/nextcloud-logo.png'); + await page.setInputFiles('#oidc-client-logo-dark', 'assets/cloud-logo.png'); await page.getByLabel('Client Launch URL').fill(oidcClient.launchURL); await page.getByRole('button', { name: 'Save' }).click();