diff --git a/src/components/PhotoCropper.vue b/src/components/PhotoCropper.vue index f5d4e80..5ee135e 100644 --- a/src/components/PhotoCropper.vue +++ b/src/components/PhotoCropper.vue @@ -10,17 +10,23 @@ ref="cropper" /> - +

Preview

- +
+ +
- lock aspect ratio to flip chart size? +

Options

+ + rotate by {{ rotate_angle }}° + + lock aspect ratio to flip chart size + free transform handles
@@ -45,7 +51,9 @@ export default { return { preview_data_url: null, lock_aspect_ratio: true, - bbox: [] + free_transform: false, + bbox: [], + rotate_angle: 0, } }, computed: { @@ -83,21 +91,52 @@ export default { this.preview_data_url = canvas.toDataURL() this.bbox = this.coordinates_to_bbox(coordinates) }, + update_rotate() { + this.$refs.cropper.appliedImageTransforms= { + rotate: this.rotate_angle, + flip: { + horizontal: false, + vertical: false, + }, + } + }, getResult() { - return JSON.parse(JSON.stringify(this.bbox)) + return { + bbox: JSON.parse(JSON.stringify(this.bbox)), + rotate: -this.rotate_angle + } } } } \ No newline at end of file diff --git a/src/components/PhotoSelectModal.vue b/src/components/PhotoSelectModal.vue index 4f7b022..a9ed27b 100644 --- a/src/components/PhotoSelectModal.vue +++ b/src/components/PhotoSelectModal.vue @@ -31,7 +31,7 @@ @@ -248,11 +248,14 @@ export default { } }, changeCrop() { - let bbox = this.$refs.cropper.getResult() + let results = this.$refs.cropper.getResult() + let bbox = results.bbox + let rotate = results.rotate if (bbox && this.current_photo) { this.$store.dispatch('updatePhoto', { id: this.current_photo, - bbox_coords: bbox + bbox_coords: bbox, + rotate: rotate }).then(()=>{ setTimeout(()=>{ this.$store.dispatch('cropPhoto', {