From c89b083f17c42fb1699c9e8eb9070c079d64e5ae Mon Sep 17 00:00:00 2001 From: Tamil Vendhan Kanagarasu Date: Wed, 12 Jun 2019 16:00:19 +0530 Subject: [PATCH] Added option to create image URL from the upload response --- spec/images.spec.js | 20 ++++++++++++++++++++ src/js/images.js | 14 +++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/spec/images.spec.js b/spec/images.spec.js index 1d1364da7..451a0fd71 100644 --- a/spec/images.spec.js +++ b/spec/images.spec.js @@ -59,6 +59,26 @@ describe('Images addon', function () { expect(this.$el.find('.medium-insert-images img').attr('src')).toEqual('test.jpg'); }); + it('replaces preview by uploaded image, with user built url', function () { + var stubbedImage = jasmine.createSpy('image'); + spyOn(this.addon, 'getDOMImage').and.returnValue(stubbedImage); + spyOn(this.addon.options, 'returnURLFromUploadResult').and.callFake(function (result) { + return result.success[0].id; + }); + this.$el.prepend('
'); + + this.addon.uploadDone(null, { + context: this.$el.find('figure'), + result: { + success: [ + { id: 'test-image-url.jpg' } + ] + } + }); + stubbedImage.onload(); + expect(this.$el.find('.medium-insert-images img').attr('src')).toEqual('test-image-url.jpg'); + }); + it('uploads without preview when it is set like this in options', function (done) { var $p = this.$el.find('p'); diff --git a/src/js/images.js b/src/js/images.js index 4de62ebc3..d3e70fb64 100644 --- a/src/js/images.js +++ b/src/js/images.js @@ -72,6 +72,9 @@ messages: { acceptFileTypesError: 'This file is not in a supported format: ', maxFileSizeError: 'This file is too big: ' + }, + returnURLFromUploadResult: function (result) { + return result.files[0].url; } // uploadError: function($el, data) {} // uploadCompleted: function ($el, data) {} @@ -361,7 +364,16 @@ */ Images.prototype.uploadDone = function (e, data) { - $.proxy(this, 'showImage', data.result.files[0].url, data)(); + + var url = ''; + + if (typeof this.options.returnURLFromUploadResult === 'function') { + url = this.options.returnURLFromUploadResult(data.result); + } else { + url = defaults.returnURLFromUploadResult(data.result); + } + + $.proxy(this, 'showImage', url, data)(); this.core.clean(); this.sorting();