From 4e6439763544f7b96009dd1411035343fb561d2a Mon Sep 17 00:00:00 2001 From: Mar0xy Date: Fri, 6 Oct 2023 02:32:09 +0200 Subject: add: profile backgrounds --- packages/frontend/src/components/MkDrive.file.vue | 4 +++ packages/frontend/src/pages/settings/profile.vue | 32 +++++++++++++++++++++++ packages/frontend/src/pages/user/home.vue | 27 ++++++++++++++++++- 3 files changed, 62 insertions(+), 1 deletion(-) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/components/MkDrive.file.vue b/packages/frontend/src/components/MkDrive.file.vue index 530859bc00..0b6bde2c3b 100644 --- a/packages/frontend/src/components/MkDrive.file.vue +++ b/packages/frontend/src/components/MkDrive.file.vue @@ -22,6 +22,10 @@ SPDX-License-Identifier: AGPL-3.0-only

{{ i18n.ts.banner }}

+
+ +

Background

+

{{ i18n.ts.sensitive }}

diff --git a/packages/frontend/src/pages/settings/profile.vue b/packages/frontend/src/pages/settings/profile.vue index 904ed03ee2..9533707784 100644 --- a/packages/frontend/src/pages/settings/profile.vue +++ b/packages/frontend/src/pages/settings/profile.vue @@ -10,9 +10,11 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts._profile.changeAvatar }}
+ Change Background {{ i18n.ts._profile.changeBanner }} + @@ -254,6 +256,31 @@ function changeBanner(ev) { }); } +function changeBackground(ev) { + selectFile(ev.currentTarget ?? ev.target, i18n.ts.banner).then(async (file) => { + let originalOrCropped = file; + + const { canceled } = await os.confirm({ + type: 'question', + text: i18n.t('cropImageAsk'), + okText: i18n.ts.cropYes, + cancelText: i18n.ts.cropNo, + }); + + if (!canceled) { + originalOrCropped = await os.cropImage(file, { + aspectRatio: 1, + }); + } + + const i = await os.apiWithDialog('i/update', { + backgroundId: originalOrCropped.id, + }); + $i.backgroundId = i.backgroundId; + $i.backgroundUrl = i.backgroundUrl; + }); +} + const headerActions = $computed(() => []); const headerTabs = $computed(() => []); @@ -292,6 +319,11 @@ definePageMetadata({ top: 16px; right: 16px; } +.backgroundEdit { + position: absolute; + top: 103px; + right: 16px; +} .metadataRoot { container-type: inline-size; diff --git a/packages/frontend/src/pages/user/home.vue b/packages/frontend/src/pages/user/home.vue index a4a4ac2fbf..2c81026de4 100644 --- a/packages/frontend/src/pages/user/home.vue +++ b/packages/frontend/src/pages/user/home.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only -->