Skip to content
Snippets Groups Projects
Commit 95605c32 authored by Shpuld Shpuldson's avatar Shpuld Shpuldson
Browse files

Automatic square cropping for avatar upload, preview of the new avatar.

parent 3785a863
No related branches found
No related tags found
No related merge requests found
......@@ -8,10 +8,9 @@ const settings = {
hideAttachmentsInConvLocal: this.$store.state.config.hideAttachmentsInConv,
hideNsfwLocal: this.$store.state.config.hideNsfw,
muteWordsString: this.$store.state.config.muteWords.join('\n'),
previewfile: null,
autoLoadLocal: this.$store.state.config.autoLoad,
hoverPreviewLocal: this.$store.state.config.hoverPreview,
muteWordsString: this.$store.state.config.muteWords.join('\n')
previewfile: null
}
},
components: {
......@@ -30,20 +29,29 @@ const settings = {
reader.onload = ({target}) => {
const img = target.result
this.previewfile = img
/*this.$store.state.api.backendInteractor.updateAvatar({params: {img}}).then((user) => {
if (!user.error) {
this.$store.commit('addNewUsers', [user])
this.$store.commit('setCurrentUser', user)
}
})*/
}
reader.readAsDataURL(file)
},
submitAvatar () {
if (!this.previewfile)
return
if (!this.previewfile) { return }
const img = this.previewfile
this.$store.state.api.backendInteractor.updateAvatar({params: {img}}).then((user) => {
// 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)
......
......@@ -13,7 +13,7 @@
<p>Your current avatar:</p>
<img :src="user.profile_image_url_original" class="old-avatar"></img>
<p>Set new avatar:</p>
<img class="new-avatar" v-bind:src="previewfile">
<img class="new-avatar" v-bind:src="previewfile" v-if="previewfile">
</img>
<div>
<input name="avatar-upload" id="avatar-upload" type="file" @change="uploadAvatar" ></input>
......@@ -71,7 +71,9 @@
}
.new-avatar {
max-width: 100%;
object-fit: cover;
width: 128px;
height: 128px;
border-radius: 5px;
}
......@@ -80,21 +82,6 @@
min-height: 28px;
width: 10em;
}
.cropper {
//position: absolute;
cursor: move;
width: 128px;
height: 128px;
border:1px solid #fff;
background-color: #000000;
.sub {
width: 100%;
height: 100%;
margin: -1px -1px -1px -1px ;
border:1px dashed #000;
}
}
}
.setting-list {
list-style-type: none;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment