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();