From 1653ddaaca352e655772a011e7a81effcdc3ae93 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 17 Oct 2019 11:08:41 +0200 Subject: [PATCH] filename cases are preserved in uploaded zip files --- CHANGELOG | 1 + .../src/main/js/gui/admin/AddProjectDialog.js | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 398baaaade..2421a8dfba 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 69f0daf74d..4112ea9592 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); -- GitLab