From 9bffb453218182c6dc00ffc624c958193eb0f798 Mon Sep 17 00:00:00 2001 From: Isaak Date: Wed, 3 May 2023 18:05:21 +0200 Subject: [PATCH 01/61] refactor pca pops select menu --- js/source/legacy/solGS/pca.js | 60 ++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/js/source/legacy/solGS/pca.js b/js/source/legacy/solGS/pca.js index 8dfa773ac2..a06d2b3b94 100644 --- a/js/source/legacy/solGS/pca.js +++ b/js/source/legacy/solGS/pca.js @@ -8,6 +8,12 @@ var solGS = solGS || function solGS() {}; solGS.pca = { + canvas: "#pca_canvas", + pcaPlotDivPrefix: "#pca_plot", + pcaMsgDiv: "#pca_message", + pcaPopsDiv: "#pca_pops_list", + pcaPopsSelectMenuId: "#pca_pops_list_select", + getPcaArgs: function () { var page = location.pathname; var protocolId = solGS.genotypingProtocol.getGenotypingProtocolId("pca_div"); @@ -134,7 +140,7 @@ solGS.pca = { } }, - loadPcaPops: function (selectId, selectName, dataStr) { + displayPcaPop: function (selectId, selectName, dataStr) { if (selectId.length === 0) { alert("The list is empty. Please select a list with content."); } else { @@ -157,6 +163,32 @@ solGS.pca = { } }, + populatePcaPopsMenu: function () { + var list = new CXGN.List(); + var lists = list.getLists(["accessions", "plots", "trials"]); + var pcaPrivatePops = list.convertArrayToJson(lists.private_lists); + + var menuId = this.pcaPopsSelectMenuId; + var menu = new OptionsMenu(menuId); + pcaPrivatePops = pcaPrivatePops.flat(); + var menuElem = menu.addOptions(pcaPrivatePops); + + if (lists.public_lists[0]) { + var pcaPublicLists = list.convertArrayToJson(lists.public_lists); + menu.addOptionsSeparator("public lists"); + menuElem = menu.addOptions(pcaPublicLists); + } + + var datasetPops = solGS.dataset.getDatasetPops(["accessions", "trials"]); + if (datasetPops) { + menu.addOptionsSeparator("datasets"); + menuElem = menu.addOptions(datasetPops); + } + + var pcaPopsDiv = this.pcaPopsDiv; + jQuery(pcaPopsDiv).append(menuElem).show(); + }, + selectRow: function (selectId, selectName, dataStr) { var pcaPopId = `${dataStr}_${selectId}`; var listId; @@ -933,11 +965,8 @@ jQuery(document).ready(function () { var url = location.pathname; if (url.match(/pca\/analysis/)) { - solGS.selectMenu.populateMenu( - "pca_pops", - ["accessions", "plots", "trials"], - ["accessions", "trials"] - ); + solGS.pca.populatePcaPopsMenu(); + var pcaArgs = solGS.pca.getPcaArgsFromUrl(); var pcaPopId = pcaArgs.pca_pop_id; if (pcaPopId) { @@ -976,21 +1005,22 @@ jQuery(document).ready(function () { jQuery("#pca_data_type_select").html(''); } + var pcaPopsDiv = solGS.pca.pcaPopsSelectMenuId; + if (url.match(/pca\/analysis/)) { jQuery("