diff --git a/CHANGELOG b/CHANGELOG index 398baaaade10e28019b113d5d7a4a0b11a5ea1d9..2421a8dfbad8726da368b8ed30c8b8dc081127d6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -20,6 +20,7 @@ minerva (14.0.3) stable; urgency=medium (below 14.0.0) didn't produce valid SBML (#970) * Bug fix: fields in add project window are reinitialized after each open (#963) + * Bug fix: filename case in uploaded zip files is preserved (#964) -- Piotr Gawron <piotr.gawron@uni.lu> Wed, 16 Oct 2019 9:00:00 +0200 diff --git a/frontend-js/src/main/js/gui/admin/AddProjectDialog.js b/frontend-js/src/main/js/gui/admin/AddProjectDialog.js index 69f0daf74d0c0725ac8c0b2abadab556d88e0f38..4112ea9592fa676550d0258f11739b3f588e5171 100644 --- a/frontend-js/src/main/js/gui/admin/AddProjectDialog.js +++ b/frontend-js/src/main/js/gui/admin/AddProjectDialog.js @@ -1429,22 +1429,23 @@ AddProjectDialog.prototype.createZipEntry = function (jsZipEntry, zipObject) { if (jsZipEntry.dir) { return null; } - var filename = jsZipEntry.name.toLowerCase(); + var filename = jsZipEntry.name; + var lowercaseFilename = jsZipEntry.name.toLowerCase(); var type; var data = {}; var processingPromise = Promise.resolve(); - if (this.isIgnoredZipEntry(filename)) { + if (this.isIgnoredZipEntry(lowercaseFilename)) { type = undefined; - } else if (filename.indexOf("submaps") === 0) { + } else if (lowercaseFilename.indexOf("submaps") === 0) { type = "MAP"; - if (filename.endsWith("mapping.xml")) { + if (lowercaseFilename.endsWith("mapping.xml")) { data.mapping = true; } - } else if (filename.indexOf("images") === 0) { + } else if (lowercaseFilename.indexOf("images") === 0) { type = "IMAGE"; - } else if (filename.indexOf("glyphs") === 0) { + } else if (lowercaseFilename.indexOf("glyphs") === 0) { type = "GLYPH"; - } else if (filename.indexOf("layouts") === 0 || filename.indexOf("overlays") === 0) { + } else if (lowercaseFilename.indexOf("layouts") === 0 || lowercaseFilename.indexOf("overlays") === 0) { type = "OVERLAY"; processingPromise = zipObject.file(jsZipEntry.name).async("string").then(function (content) { var overlayParser = new OverlayParser(); @@ -1460,7 +1461,7 @@ AddProjectDialog.prototype.createZipEntry = function (jsZipEntry, zipObject) { data.description = ""; } }); - } else if (filename.indexOf("\\") === -1 && filename.indexOf("/") === -1) { + } else if (lowercaseFilename.indexOf("\\") === -1 && lowercaseFilename.indexOf("/") === -1) { type = "MAP"; data.root = true; } else { @@ -1472,7 +1473,7 @@ AddProjectDialog.prototype.createZipEntry = function (jsZipEntry, zipObject) { "'>manual</a> for information about allowed zip file content"); } if (type === "MAP") { - var name = jsZipEntry.name.toLowerCase(); + var name = filename; processingPromise = zipObject.file(jsZipEntry.name).async("string").then(function (content) { self.setFileParserForFilename(name, content);