diff --git a/web-client-classic/public/js/upload.js b/web-client-classic/public/js/upload.js index 5dcb4e5e..4ac3b70e 100644 --- a/web-client-classic/public/js/upload.js +++ b/web-client-classic/public/js/upload.js @@ -137,6 +137,48 @@ export const upload = function () { return result; }; + var filenameWithExtension = function (mode, genes, edges, type, extension) { + var filename = $("#fileName").text(); + var source = null; + var currentExtension = filename.match(/\.[^\.]+$/); + if (currentExtension && currentExtension.length) { + filename = filename.substr(0, filename.length - currentExtension[0].length); + } + if (mode === NETWORK_GRN_MODE && extension === "xlsx") { + const anyExpressionChecked = $("input[name=workbookSheets]:checked") + .toArray() + .some( + el => + el.value && (el.value.includes("expression") || el.value.includes("sigma")) + ); + + if (anyExpressionChecked) { + source = $("input[name=expressionSource]:checked")[0].value; + if (source === "none") { + source = null; + } else if (source === "userInput") { + // only demos will have an expression source + source = grnState.workbook.expression.source + ? grnState.workbook.expression.source + : "user-data"; + } + } else { + source = null; + } + } + + if (mode !== NETWORK_GRN_MODE) { + mode = "PPI"; + } + if (mode !== null && genes !== null && edges !== null && type !== null) { + filename = `${mode.toUpperCase()}_${genes}-genes_${edges}-edges_${type}`; + } + if (source) { + filename = `${filename}_${source}`; + } + return `${filename}.${extension}`; + }; + const download = (workbook, route, extension, sheetType) => { const workbookToExport = flattenWorkbook(workbook, sheetType); var workbookFilename = filenameWithExtension( @@ -526,7 +568,10 @@ export const upload = function () { `; - if (Object.keys(grnState.workbook.expression).length > 0) { + if ( + Object.keys(grnState.workbook.expression).length > 0 && + grnState.workbook.expression.hasOwnProperty("source") + ) { const isChecked = grnState.nodeColoring.nodeColoringEnabled ? `checked="true"` : ""; result += `