From acf3fd5d91b41cfed08d70c63eab7feb79769a10 Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson Date: Wed, 2 Aug 2017 22:09:40 +0300 Subject: [PATCH 1/4] Add new user-settings component/route, add options to change name, bio, avatar, banner and bg. Add those options to api service and backend interactor service. --- src/App.scss | 5 + .../user_card_content/user_card_content.vue | 8 + src/components/user_panel/user_panel.vue | 1 + src/components/user_settings/user_settings.js | 145 ++++++++++++++++++ .../user_settings/user_settings.vue | 90 +++++++++++ src/main.js | 4 +- src/services/api/api.service.js | 68 ++++++++ .../backend_interactor_service.js | 7 + 8 files changed, 327 insertions(+), 1 deletion(-) create mode 100644 src/components/user_settings/user_settings.js create mode 100644 src/components/user_settings/user_settings.vue diff --git a/src/App.scss b/src/App.scss index 15c908d9..23f7304f 100644 --- a/src/App.scss +++ b/src/App.scss @@ -42,6 +42,11 @@ button{ &:hover { box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3); } + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + } } .container { diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue index ff1b108c..1c044f9a 100644 --- a/src/components/user_card_content/user_card_content.vue +++ b/src/components/user_card_content/user_card_content.vue @@ -2,6 +2,9 @@

Profile Banner

Your current profile banner:

Set new profile banner:

- +
- +
- - + +

Profile Background

Set new profile background:

- +
- +
- - + +
From 9503b8fa41b9f6e3c500af411b29ee1c27844253 Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson Date: Fri, 18 Aug 2017 12:00:59 +0300 Subject: [PATCH 4/4] Remove the profile pic change from the old settings menu since it's in the new profile edit menu. --- src/components/settings/settings.js | 41 +--------------------------- src/components/settings/settings.vue | 12 -------- 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index 8d6a6713..b3bb8290 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -9,8 +9,7 @@ const settings = { hideNsfwLocal: this.$store.state.config.hideNsfw, muteWordsString: this.$store.state.config.muteWords.join('\n'), autoLoadLocal: this.$store.state.config.autoLoad, - hoverPreviewLocal: this.$store.state.config.hoverPreview, - previewfile: null + hoverPreviewLocal: this.$store.state.config.hoverPreview } }, components: { @@ -21,44 +20,6 @@ const settings = { return this.$store.state.users.currentUser } }, - methods: { - uploadAvatar ({target}) { - const file = target.files[0] - // eslint-disable-next-line no-undef - const reader = new FileReader() - reader.onload = ({target}) => { - const img = target.result - this.previewfile = img - } - reader.readAsDataURL(file) - }, - submitAvatar () { - if (!this.previewfile) { return } - - const img = this.previewfile - // eslint-disable-next-line no-undef - let imginfo = new Image() - let cropX, cropY, cropW, cropH - imginfo.src = this.previewfile - if (imginfo.height > imginfo.width) { - cropX = 0 - cropW = imginfo.width - cropY = Math.floor((imginfo.height - imginfo.width) / 2) - cropH = imginfo.width - } else { - cropY = 0 - cropH = imginfo.height - cropX = Math.floor((imginfo.width - imginfo.height) / 2) - cropW = imginfo.height - } - this.$store.state.api.backendInteractor.updateAvatar({params: {img, cropX, cropY, cropW, cropH}}).then((user) => { - if (!user.error) { - this.$store.commit('addNewUsers', [user]) - this.$store.commit('setCurrentUser', user) - } - }) - } - }, watch: { hideAttachmentsLocal (value) { this.$store.dispatch('setOption', { name: 'hideAttachments', value }) diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 1abb1789..6ff96fec 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -8,18 +8,6 @@

Theme

-
-

Avatar

-

Your current avatar:

- -

Set new avatar:

- - -
- -
- -

Filtering

All notices containing these words will be muted, one per line