From b89e634dd467212fbece0fdad736c8a6adf5e8b3 Mon Sep 17 00:00:00 2001 From: Martin Brennan Date: Mon, 25 Nov 2019 13:54:55 +1000 Subject: [PATCH] FIX: Replace %20 with space in markdown file name for uploads (#8405) Meta: https://meta.discourse.org/t/image-name-has-20-in-file-name/134136 We were ending up with [file%20name](url) in the markdown preview, which looked weird and affected the alt text. this is because we were calling encodeURIComponent, which has been left in place because this is a valid thing to do for some cases. (e.g. f674b9e) --- app/assets/javascripts/discourse/lib/uploads.js.es6 | 2 +- test/javascripts/lib/uploads-test.js.es6 | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/lib/uploads.js.es6 b/app/assets/javascripts/discourse/lib/uploads.js.es6 index 3a31d423c90..fbd75fa3647 100644 --- a/app/assets/javascripts/discourse/lib/uploads.js.es6 +++ b/app/assets/javascripts/discourse/lib/uploads.js.es6 @@ -14,7 +14,7 @@ function imageNameFromFileName(fileName) { name = I18n.t("upload_selector.default_image_alt_text"); } - return encodeURIComponent(name); + return encodeURIComponent(name).replace(/%20/g, " "); } export function validateUploadedFiles(files, opts) { diff --git a/test/javascripts/lib/uploads-test.js.es6 b/test/javascripts/lib/uploads-test.js.es6 index 76a074aa6dd..858dcb3a622 100644 --- a/test/javascripts/lib/uploads-test.js.es6 +++ b/test/javascripts/lib/uploads-test.js.es6 @@ -200,6 +200,10 @@ QUnit.test("getUploadMarkdown", assert => { testUploadMarkdown("[foo|bar].png"), "![%5Bfoo%7Cbar%5D|100x200](/uploads/123/abcdef.ext)" ); + assert.equal( + testUploadMarkdown("file name with space.png"), + "![file name with space|100x200](/uploads/123/abcdef.ext)" + ); const short_url = "uploads://asdaasd.ext";