From 68cf0750ee29d91abf8fe8d0a81426e324b41b12 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 13 Jul 2022 02:37:52 +0300 Subject: Implement dataset selection - Implement UI enabling selection from existing datasets - Start implementation of UI that enables creation of new dataset --- qc_app/static/js/dbinsert.js | 156 ------------------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 qc_app/static/js/dbinsert.js (limited to 'qc_app/static') diff --git a/qc_app/static/js/dbinsert.js b/qc_app/static/js/dbinsert.js deleted file mode 100644 index 63d2c86..0000000 --- a/qc_app/static/js/dbinsert.js +++ /dev/null @@ -1,156 +0,0 @@ -function remove_children(element) { - Array.from(element.children).forEach(child => { - element.removeChild(child); - }); -} - -function trigger_change_event(element) { - evt = new Event("change"); - element.dispatchEvent(evt); -} - -function setup_groups(group_data) { - elt = document.getElementById("group"); - remove_children(elt); - the_groups = group_data.reduce( - function(acc, row) { - grouping = row[2].slice(7).trim(); - if(acc[grouping] === undefined) { - acc[grouping] = []; - } - acc[grouping].push([row[0], row[1]]); - return acc; - }, - {}); - for(grouping in the_groups) { - optgrp = document.createElement("optgroup"); - optgrp.setAttribute("label", grouping); - the_groups[grouping].forEach(group => { - opt = document.createElement("option"); - opt.setAttribute("value", group[0]); - opt.appendChild(document.createTextNode(group[1])); - optgrp.appendChild(opt); - }); - elt.appendChild(optgrp); - } - trigger_change_event(elt); -} - -function setup_types(type_data) { - elt = document.getElementById("type"); - remove_children(elt); - the_types = type_data.reduce(function(acc, row) { - grp = row[2]; - if(acc[grp] === undefined) { - acc[grp] = []; - } - acc[grp].push([row[0], row[1]]); - return acc; - }, {}); - for(type_group in the_types) { - optgrp = document.createElement("optgroup"); - optgrp.setAttribute("label", type_group); - the_types[type_group].forEach(type => { - opt = document.createElement("option"); - opt.setAttribute("value", type[0]); - opt.appendChild(document.createTextNode(type[1])); - optgrp.appendChild(opt); - }); - elt.appendChild(optgrp); - } - trigger_change_event(elt); -} - -function setup_datasets(dataset_data) { - elt = document.getElementById("dataset"); - remove_children(elt); - dataset_data.forEach(dataset => { - opt = document.createElement("option"); - opt.setAttribute("value", dataset[0]); - opt.appendChild(document.createTextNode( - "[" + dataset[1] + "] " + dataset[2])); - elt.appendChild(opt); - }); - trigger_change_event(elt); -} - -function radio_column(chip) { - col = document.createElement("td"); - radio = document.createElement("input"); - radio.setAttribute("type", "radio"); - radio.setAttribute("name", "genechipid"); - radio.setAttribute("value", chip["GeneChipId"]); - radio.setAttribute("required", "required"); - col.appendChild(radio); - return col; -} - -function setup_genechips(genechip_data) { - columns = ["GeneChipName", "Name", "GeoPlatform", "GO_tree_value"] - submit_button = document.querySelector( - "#select-dataset-form input[type='submit']"); - elt = document.getElementById( - "genechips-table").getElementsByTagName("tbody")[0]; - remove_children(elt); - if((genechip_data === undefined) || genechip_data.length === 0) { - row = document.createElement("tr"); - col = document.createElement("td"); - col.setAttribute("colspan", "5"); - text = document.createTextNode("No chips found for selected species"); - col.appendChild(text); - row.appendChild(col); - elt.appendChild(row); - submit_button.setAttribute("disabled", true); - return false; - } - - submit_button.removeAttribute("disabled") - genechip_data.forEach(chip => { - row = document.createElement("tr"); - row.appendChild(radio_column(chip)); - columns.forEach(column => { - col = document.createElement("td"); - content = document.createTextNode(chip[column]); - col.appendChild(content); - row.appendChild(col); - }); - elt.appendChild(row); - }); -} - -function menu_contents() { - return JSON.parse( - document.getElementById("select-dataset-form").getAttribute( - "data-menu-content")); -} - -function genechips() { - return JSON.parse( - document.getElementById("select-dataset-form").getAttribute( - "data-genechips")); -} - -function update_menu(event) { - menu = menu_contents(); - genec = genechips(); - - species_elt = document.getElementById("species"); - group_elt = document.getElementById("group"); - type_elt = document.getElementById("type"); - dataset_elt = document.getElementById("dataset"); - - if(event.target == species_elt) { - setup_groups(menu["groups"][species_elt.value]); - setup_genechips(genec[species_elt.value.toLowerCase()]); - } - - if(event.target == group_elt) { - setup_types(menu["types"][species_elt.value][group_elt.value]); - } - - if(event.target == type_elt) { - setup_datasets( - menu["datasets"][species_elt.value][group_elt.value][type_elt.value] - ); - } -} -- cgit v1.2.3