From 3147f1eec3aee3b7844a3ac88cd58fafe53207b3 Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 13:43:53 -0600 Subject: Increased correlation table vertical height to 100vh --- wqflask/wqflask/templates/correlation_page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html index 6419b185..0e623cbb 100644 --- a/wqflask/wqflask/templates/correlation_page.html +++ b/wqflask/wqflask/templates/correlation_page.html @@ -557,7 +557,7 @@ "sDom": "itir", "autoWidth": true, "bSortClasses": false, - "scrollY": "50vh", + "scrollY": "100vh", "scroller": true, "scrollCollapse": true } -- cgit v1.2.3 From 5506ac96077db794c945cc1325300dead8073eea Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 13:45:21 -0600 Subject: Convert trait/dataset names to strings, since phenotype names were being treated as integers --- wqflask/wqflask/correlation/show_corr_results.py | 1 + wqflask/wqflask/export_traits.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/wqflask/wqflask/correlation/show_corr_results.py b/wqflask/wqflask/correlation/show_corr_results.py index 1b801b1d..51aa1622 100644 --- a/wqflask/wqflask/correlation/show_corr_results.py +++ b/wqflask/wqflask/correlation/show_corr_results.py @@ -487,6 +487,7 @@ def generate_corr_json(corr_results, this_trait, dataset, target_dataset, for_ap results_dict['index'] = i + 1 results_dict['trait_id'] = trait.name results_dict['dataset'] = trait.dataset.name + results_dict['hmac'] = hmac.data_hmac('{}:{}'.format(trait.name, trait.dataset.name)) if target_dataset.type == "ProbeSet": results_dict['symbol'] = trait.symbol results_dict['description'] = "N/A" diff --git a/wqflask/wqflask/export_traits.py b/wqflask/wqflask/export_traits.py index b14c55db..6fb760e0 100644 --- a/wqflask/wqflask/export_traits.py +++ b/wqflask/wqflask/export_traits.py @@ -86,7 +86,7 @@ def export_search_results_csv(targs): trait_symbol = "N/A" row_contents = [ i + 1, - "https://genenetwork.org/show_trait?trait_id=" + trait.name + "&dataset=" + trait.dataset.name, + "https://genenetwork.org/show_trait?trait_id=" + str(trait.name) + "&dataset=" + str(trait.dataset.name), trait.dataset.group.species, trait.dataset.group.name, trait.dataset.name, -- cgit v1.2.3 From fabb29b6f47c11d3a1eeeb4cb94c8362e282dca3 Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 13:46:18 -0600 Subject: Converted the submit_traits_to_export_or_bnw function to using DataTables API, since the JQuery it was previously using didn't work with Scroller --- .../static/new/javascript/search_results.js | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/wqflask/wqflask/static/new/javascript/search_results.js b/wqflask/wqflask/static/new/javascript/search_results.js index 86660126..27d89867 100644 --- a/wqflask/wqflask/static/new/javascript/search_results.js +++ b/wqflask/wqflask/static/new/javascript/search_results.js @@ -157,18 +157,23 @@ $(function() { }); table_dict['headers'] = headers; - rows = []; - trait_table.find('tbody tr').each(function (i, tr) { - if (trait_table.find('input[name="searchResult"]:checked').length > 0) { - if ($(this).find('input[name="searchResult"]').is(':checked')){ - rows.push($(this).find('input[name="searchResult"]:checked').val()) - } - } - else { - rows.push($(this).find('input[name="searchResult"]').val()) + selected_rows = []; + all_rows = []; //ZS: If no rows are checked, export all + table_api = $('#' + table_name).DataTable(); + check_cells = table_api.column(0).nodes().to$(); + for (let i = 0; i < check_cells.length; i++) { + this_node = check_cells[i].childNodes[0]; + all_rows.push(this_node.value) + if (this_node.checked){ + selected_rows.push(this_node.value) } - }); - table_dict['rows'] = rows; + } + + if (selected_rows.length > 0){ + table_dict['rows'] = selected_rows; + } else { + table_dict['rows'] = all_rows; + } json_table_dict = JSON.stringify(table_dict); $('input[name=export_data]').val(json_table_dict); -- cgit v1.2.3 From f90ae0eb938b48a6467223d44816d9b6522280cf Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 14:08:36 -0600 Subject: Fixed select_all and deselect_all to use DataTables API so they work with any tables that use Scroller --- .../static/new/javascript/search_results.js | 35 ++++++++++++++-------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/wqflask/wqflask/static/new/javascript/search_results.js b/wqflask/wqflask/static/new/javascript/search_results.js index 27d89867..3319d2cb 100644 --- a/wqflask/wqflask/static/new/javascript/search_results.js +++ b/wqflask/wqflask/static/new/javascript/search_results.js @@ -3,22 +3,31 @@ $(function() { checked_traits = null; select_all = function() { - console.log("selected_all"); - $(".trait_checkbox").each(function() { - $(this).prop('checked', true); - if (!$(this).closest('tr').hasClass('selected')) { - $(this).closest('tr').addClass('selected') - } - }); + table_api = $('#trait_table').DataTable(); + + check_cells = table_api.column(0).nodes().to$(); + for (let i = 0; i < check_cells.length; i++) { + check_cells[i].childNodes[0].checked = true; + } + + check_rows = table_api.rows().nodes(); + for (let i =0; i < check_rows.length; i++) { + check_rows[i].classList.add("selected") + } }; deselect_all = function() { - $(".trait_checkbox").each(function() { - $(this).prop('checked', false); - if ($(this).closest('tr').hasClass('selected')) { - $(this).closest('tr').removeClass('selected') - } - }); + table_api = $('#trait_table').DataTable(); + + check_cells = table_api.column(0).nodes().to$(); + for (let i = 0; i < check_cells.length; i++) { + check_cells[i].childNodes[0].checked = false; + } + + check_rows = table_api.rows().nodes(); + for (let i =0; i < check_rows.length; i++) { + check_rows[i].classList.remove("selected") + } }; invert = function() { -- cgit v1.2.3 From e087a5ed176d3e935ca15c7d066b026dec653a6f Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 14:13:55 -0600 Subject: Changed invert function to use DataTables API so it can also work with Scroller --- .../static/new/javascript/search_results.js | 34 ++++++++++++---------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/wqflask/wqflask/static/new/javascript/search_results.js b/wqflask/wqflask/static/new/javascript/search_results.js index 3319d2cb..5e8277b3 100644 --- a/wqflask/wqflask/static/new/javascript/search_results.js +++ b/wqflask/wqflask/static/new/javascript/search_results.js @@ -31,21 +31,25 @@ $(function() { }; invert = function() { - $(".trait_checkbox").each(function() { - if ($(this).prop('checked') == true) { - $(this).prop('checked', false) - } - else { - $(this).prop('checked', true) - } - - if ($(this).closest('tr').hasClass('selected')) { - $(this).closest('tr').removeClass('selected') - } - else { - $(this).closest('tr').addClass('selected') - } - }); + table_api = $('#trait_table').DataTable(); + + check_cells = table_api.column(0).nodes().to$(); + for (let i = 0; i < check_cells.length; i++) { + if (check_cells[i].childNodes[0].checked){ + check_cells[i].childNodes[0].checked = false; + } else { + check_cells[i].childNodes[0].checked = true; + } + } + + check_rows = table_api.rows().nodes(); + for (let i =0; i < check_rows.length; i++) { + if (check_rows[i].classList.contains("selected")){ + check_rows[i].classList.remove("selected") + } else { + check_rows[i].classList.add("selected") + } + } }; $('#searchbox').keyup(function(){ -- cgit v1.2.3 From 244317daae8fb9a242b7d62c2e8f6e3a40c4ba44 Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 14:14:09 -0600 Subject: Added Invert button to search result page --- wqflask/wqflask/templates/search_result_page.html | 1 + 1 file changed, 1 insertion(+) diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html index 2a8d6931..8a467bfb 100644 --- a/wqflask/wqflask/templates/search_result_page.html +++ b/wqflask/wqflask/templates/search_result_page.html @@ -129,6 +129,7 @@ {% endif %} + -- cgit v1.2.3 From 812e9e84ca98c13ba3e378b169dce235feef5c15 Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 3 Dec 2020 17:09:05 -0600 Subject: Fixed View Collection table drawCallback to correctly deal with check boxes and the Copy/Delete buttons and fixed an issue where extra white-space on either side of the checkboxes was causing some JS to not work correctly --- wqflask/wqflask/templates/collections/view.html | 33 ++++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/wqflask/wqflask/templates/collections/view.html b/wqflask/wqflask/templates/collections/view.html index e37f8104..ccec495b 100644 --- a/wqflask/wqflask/templates/collections/view.html +++ b/wqflask/wqflask/templates/collections/view.html @@ -73,7 +73,7 @@
- + @@ -81,7 +81,7 @@ - +
@@ -109,10 +109,7 @@ {% for this_trait in trait_obs %} - - - + {{ loop.index }} {{ this_trait.dataset.fullname }} @@ -178,15 +175,21 @@