aboutsummaryrefslogtreecommitdiff
path: root/src/components/image_cropper
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/image_cropper')
-rw-r--r--src/components/image_cropper/image_cropper.js26
-rw-r--r--src/components/image_cropper/image_cropper.vue7
2 files changed, 28 insertions, 5 deletions
diff --git a/src/components/image_cropper/image_cropper.js b/src/components/image_cropper/image_cropper.js
index 990c0370..5ba8f04e 100644
--- a/src/components/image_cropper/image_cropper.js
+++ b/src/components/image_cropper/image_cropper.js
@@ -31,6 +31,9 @@ const ImageCropper = {
saveButtonLabel: {
type: String
},
+ saveWithoutCroppingButtonlabel: {
+ type: String
+ },
cancelButtonLabel: {
type: String
}
@@ -48,6 +51,9 @@ const ImageCropper = {
saveText () {
return this.saveButtonLabel || this.$t('image_cropper.save')
},
+ saveWithoutCroppingText () {
+ return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')
+ },
cancelText () {
return this.cancelButtonLabel || this.$t('image_cropper.cancel')
},
@@ -67,7 +73,19 @@ const ImageCropper = {
submit () {
this.submitting = true
this.avatarUploadError = null
- this.submitHandler(this.cropper, this.filename)
+ this.submitHandler(this.cropper, this.file)
+ .then(() => this.destroy())
+ .catch((err) => {
+ this.submitError = err
+ })
+ .finally(() => {
+ this.submitting = false
+ })
+ },
+ submitWithoutCropping () {
+ this.submitting = true
+ this.avatarUploadError = null
+ this.submitHandler(false, this.dataUrl)
.then(() => this.destroy())
.catch((err) => {
this.submitError = err
@@ -88,14 +106,14 @@ const ImageCropper = {
readFile () {
const fileInput = this.$refs.input
if (fileInput.files != null && fileInput.files[0] != null) {
+ this.file = fileInput.files[0]
let reader = new window.FileReader()
reader.onload = (e) => {
this.dataUrl = e.target.result
this.$emit('open')
}
- reader.readAsDataURL(fileInput.files[0])
- this.filename = fileInput.files[0].name || 'unknown'
- this.$emit('changed', fileInput.files[0], reader)
+ reader.readAsDataURL(this.file)
+ this.$emit('changed', this.file, reader)
}
},
clearError () {
diff --git a/src/components/image_cropper/image_cropper.vue b/src/components/image_cropper/image_cropper.vue
index 24a6f3bd..129e6f46 100644
--- a/src/components/image_cropper/image_cropper.vue
+++ b/src/components/image_cropper/image_cropper.vue
@@ -7,6 +7,7 @@
<div class="image-cropper-buttons-wrapper">
<button class="btn" type="button" :disabled="submitting" @click="submit" v-text="saveText"></button>
<button class="btn" type="button" :disabled="submitting" @click="destroy" v-text="cancelText"></button>
+ <button class="btn" type="button" :disabled="submitting" @click="submitWithoutCropping" v-text="saveWithoutCroppingText"></button>
<i class="icon-spin4 animate-spin" v-if="submitting"></i>
</div>
<div class="alert error" v-if="submitError">
@@ -36,7 +37,11 @@
}
&-buttons-wrapper {
- margin-top: 15px;
+ margin-top: 10px;
+
+ button {
+ margin-top: 5px;
+ }
}
}
</style>