From 7b83c8c46977942acb271e7f1cf187d00bc7ff5a Mon Sep 17 00:00:00 2001 From: zsloan Date: Fri, 11 Nov 2016 16:13:24 +0000 Subject: Fixed problem that caused checkboxes to not work with Scroller search results pages Improved the way the table width is set for search results page --- wqflask/base/trait.py | 14 +++-- wqflask/wqflask/templates/search_result_page.html | 67 ++++++++++++++++++++--- 2 files changed, 67 insertions(+), 14 deletions(-) (limited to 'wqflask') diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py index 11a91d1d..c8c503e2 100644 --- a/wqflask/base/trait.py +++ b/wqflask/base/trait.py @@ -23,6 +23,8 @@ from flask import Flask, g, request from utility.logger import getLogger logger = getLogger(__name__ ) +from wqflask import user_manager + def print_mem(stage=""): mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss print("{}: {}".format(stage, mem/1024)) @@ -134,7 +136,7 @@ class GeneralTrait(object): additive = "N/A" else: additive = "%.3f" % round(float(self.additive), 2) - return ['', + return ['', index, ''+str(self.name)+'', self.symbol, @@ -150,7 +152,7 @@ class GeneralTrait(object): else: additive = "%.2f" % round(float(self.additive), 2) if self.pubmed_id: - return ['', + return ['', index, ''+str(self.name)+'', self.description_display, @@ -160,7 +162,7 @@ class GeneralTrait(object): self.LRS_location_repr, additive] else: - return ['', + return ['', index, ''+str(self.name)+'', self.description_display, @@ -170,7 +172,7 @@ class GeneralTrait(object): self.LRS_location_repr, additive] elif self.dataset.type == "Geno": - return ['', + return ['', index, ''+str(self.name)+'', self.location_repr] @@ -486,7 +488,7 @@ class GeneralTrait(object): #XZ: trait_location_value is used for sorting self.location_repr = 'N/A' - trait_location_value = 1000000 + self.location_value = 1000000 if self.chr and self.mb: #Checks if the chromosome number can be cast to an int (i.e. isn't "X" or "Y") @@ -507,7 +509,7 @@ class GeneralTrait(object): elif self.dataset.type == "Geno": self.location_repr = 'N/A' - trait_location_value = 1000000 + self.location_value = 1000000 if self.chr and self.mb: #Checks if the chromosome number can be cast to an int (i.e. isn't "X" or "Y") diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html index f522564d..f8565042 100644 --- a/wqflask/wqflask/templates/search_result_page.html +++ b/wqflask/wqflask/templates/search_result_page.html @@ -2,7 +2,7 @@ {% block title %}Search Results{% endblock %} {% block css %} - + {% endblock %} @@ -11,7 +11,7 @@ {{ header("Search Results", 'GeneNetwork found {}.'.format(numify(results|count, "record", "records"))) }} -
+
@@ -78,8 +78,8 @@ {% endif %} --> -
- +
+
@@ -122,7 +122,7 @@ {% endblock %} {% block js %} - + @@ -144,10 +144,45 @@ } }); + function change_buttons() { + buttons = ["#add", "#remove"]; + num_checked = $('.trait_checkbox:checked').length; + if (num_checked === 0) { + for (_i = 0, _len = buttons.length; _i < _len; _i++) { + button = buttons[_i]; + $(button).prop("disabled", true); + } + } else { + for (_j = 0, _len2 = buttons.length; _j < _len2; _j++) { + button = buttons[_j]; + $(button).prop("disabled", false); + } + } + //}); + if ($(this).is(":checked")) { + if (!$(this).closest('tr').hasClass('selected')) { + $(this).closest('tr').addClass('selected') + } + } + else { + if ($(this).closest('tr').hasClass('selected')) { + $(this).closest('tr').removeClass('selected') + } + } + } + console.time("Creating table"); {% if dataset.type == 'ProbeSet' %} //ZS: Need to make sort by symbol, also need to make sure blank symbol fields at the bottom and symbols starting with numbers below letters $('#trait_table').DataTable( { + "drawCallback": function( settings ) { + $('#trait_table tr').click(function(event) { + if (event.target.type !== 'checkbox') { + $(':checkbox', this).trigger('click'); + } + }); + $('.trait_checkbox:checkbox').on("change", change_buttons); + }, "createdRow": function ( row, data, index ) { $('td', row).eq(1).attr('align', 'right'); $('td', row).eq(1).attr('data-export', index+1); @@ -187,7 +222,7 @@ "iDisplayLength": -1, "deferRender": true, "bSortClasses": false, - "scrollY": "700px", + "scrollY": true, "scrollCollapse": false, "scroller": true, "paging": false @@ -195,6 +230,14 @@ {% elif dataset.type == 'Publish' %} $('#trait_table').DataTable( { + "drawCallback": function( settings ) { + $('#trait_table tr').click(function(event) { + if (event.target.type !== 'checkbox') { + $(':checkbox', this).trigger('click'); + } + }); + $('.trait_checkbox:checkbox').on("change", change_buttons); + }, "createdRow": function ( row, data, index ) { $('td', row).eq(1).attr('align', 'right'); $('td', row).eq(1).attr('data-export', index+1); @@ -234,13 +277,21 @@ "autoWidth": false, "deferRender": true, "bSortClasses": false, - "scrollY": "700px", + "scrollY": true, "scrollCollapse": true, "scroller": true, "paging": false } ); {% elif dataset.type == 'Geno' %} $('#trait_table').DataTable( { + "drawCallback": function( settings ) { + $('#trait_table tr').click(function(event) { + if (event.target.type !== 'checkbox') { + $(':checkbox', this).trigger('click'); + } + }); + $('.trait_checkbox:checkbox').on("change", change_buttons); + }, "createdRow": function ( row, data, index ) { $('td', row).eq(1).attr('align', 'right'); $('td', row).eq(1).attr('data-export', index+1); @@ -260,7 +311,7 @@ "autoWidth": false, "deferRender": true, "bSortClasses": false, - "scrollY": "700px", + "scrollY": true, "scrollCollapse": true, "scroller": true, "paging": false -- cgit v1.2.3