about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2022-07-08 20:33:26 +0000
committerzsloan2022-07-08 20:36:01 +0000
commit105db86b4d1f738b23aa6164302e71d93fe61aa7 (patch)
tree893851582a2b93c4dbaef415814d690dda59dc05
parent28ca511f846eb08ed5a7a86ba36d3282df9bdd24 (diff)
downloadgenenetwork2-105db86b4d1f738b23aa6164302e71d93fe61aa7.tar.gz
Add JS for exporting case attributes (sample metadata)
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js27
1 files changed, 24 insertions, 3 deletions
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 6b81b47e..687cf85d 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -1113,7 +1113,7 @@ switch_qnorm_data = function() {
 };
 $('#qnorm').click(switch_qnorm_data);
 
-get_sample_table_data = function(table_name) {
+get_sample_table_data = function(table_name, attributes_as_list) {
   var samples;
   samples = [];
 
@@ -1123,20 +1123,29 @@ get_sample_table_data = function(table_name) {
   if ($('#' + table_name).length){
     table_api = $('#' + table_name).DataTable();
     sample_vals = [];
+    attr_col = 4
 
     name_nodes = table_api.column(2).nodes().to$();
     val_nodes = table_api.column(3).nodes().to$();
     if (js_data.se_exists){
       var_nodes = table_api.column(5).nodes().to$();
+      attr_col = 6
       if (js_data.has_num_cases) {
         n_nodes = table_api.column(6).nodes().to$();
+        attr_col = 7
       }
     } else {
       if (js_data.has_num_cases){
         n_nodes = table_api.column(4).nodes().to$();
+        attr_col = 5
       }
     }
 
+    attribute_nodes = []
+    for (_i = 0; _i < attributes_as_list.length; _i++){
+      attribute_nodes.push(table_api.column(attr_col + _i).nodes().to$())
+    }
+
     for (_j = 0; _j < val_nodes.length; _j++){
       sample_val = val_nodes[_j].childNodes[0].value
       sample_name = $.trim(name_nodes[_j].childNodes[0].textContent)
@@ -1164,12 +1173,18 @@ get_sample_table_data = function(table_name) {
             sample_n = null;
           }
         }
+
         row_dict = {
           name: sample_name,
           value: sample_val,
           se: sample_var,
           num_cases: sample_n
         }
+
+        for (_k = 0; _k < attribute_nodes.length; _k++){
+          row_dict[attributes_as_list[_k]] = attribute_nodes[_k][_j].textContent;
+        }
+
         samples.push(row_dict)
       }
     }
@@ -1179,9 +1194,15 @@ get_sample_table_data = function(table_name) {
 };
 export_sample_table_data = function() {
   var format, json_sample_data, sample_data;
+
+  var attributes_as_list = Object.keys(js_data.attributes).map(function(key) {
+    return js_data.attributes[key].name;
+  });
+
   sample_data = {};
-  sample_data.primary_samples = get_sample_table_data('samples_primary');
-  sample_data.other_samples = get_sample_table_data('samples_other');
+  sample_data.primary_samples = get_sample_table_data('samples_primary', attributes_as_list);
+  sample_data.other_samples = get_sample_table_data('samples_other', attributes_as_list);
+  sample_data.attributes = attributes_as_list;
   json_sample_data = JSON.stringify(sample_data);
   $('input[name=export_data]').val(json_sample_data);
   format = $('input[name=export_format]').val();