diff options
author | zsloan | 2019-10-25 13:20:32 -0500 |
---|---|---|
committer | zsloan | 2019-10-25 13:20:32 -0500 |
commit | 557428ce5c4df45f1f5b731df93e173770feb86c (patch) | |
tree | 6f268848d440a8ac8413ebbc87da7dceee702894 | |
parent | 94e59617084fc6d632d6f78ddf7045609eb1ba8b (diff) | |
download | genenetwork2-557428ce5c4df45f1f5b731df93e173770feb86c.tar.gz |
Added sub-categories to drop-down menu for Group option
-rw-r--r-- | wqflask/wqflask/api/gen_menu.py | 9 | ||||
-rw-r--r-- | wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js | 46 |
2 files changed, 45 insertions, 10 deletions
diff --git a/wqflask/wqflask/api/gen_menu.py b/wqflask/wqflask/api/gen_menu.py index 078e3782..1b2818ca 100644 --- a/wqflask/wqflask/api/gen_menu.py +++ b/wqflask/wqflask/api/gen_menu.py @@ -71,15 +71,16 @@ def get_groups(species): # GROUP by InbredSet.Name # ORDER BY InbredSet.FullName""".format(species_name)).fetchall() - results = g.db.execute("""SELECT InbredSet.Name, InbredSet.FullName + results = g.db.execute("""SELECT InbredSet.Name, InbredSet.FullName, IFNULL(InbredSet.Family, 'None') FROM InbredSet, Species WHERE Species.Name = '{}' AND InbredSet.SpeciesId = Species.Id GROUP by InbredSet.Name - ORDER BY InbredSet.FullName""".format(species_name)).fetchall() + ORDER BY IFNULL(InbredSet.Family, InbredSet.FullName) ASC, InbredSet.FullName ASC""".format(species_name)).fetchall() for result in results: - groups[species_name].append([str(result[0]), str(result[1])]) + family_name = "Family:" + str(result[2]) + groups[species_name].append([str(result[0]), str(result[1]), family_name]) return groups @@ -89,7 +90,7 @@ def get_types(groups): for species, group_dict in groups.iteritems(): types[species] = {} - for group_name, _group_full_name in group_dict: + for group_name, _group_full_name, _family_name in group_dict: if phenotypes_exist(group_name): types[species][group_name] = [("Phenotypes", "Phenotypes")] if genotypes_exist(group_name): diff --git a/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js b/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js index b80539bd..93964916 100644 --- a/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js +++ b/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js @@ -61,12 +61,45 @@ redo_dropdown = function(dropdown, items) { console.log("in redo:", dropdown, items); dropdown.empty(); _results = []; - for (_i = 0, _len = items.length; _i < _len; _i++) { - item = items[_i]; - if (item.length > 2){ - _results.push(dropdown.append($("<option data-id=\""+item[0]+"\" />").val(item[1]).text(item[2]))); - } else { - _results.push(dropdown.append($("<option />").val(item[0]).text(item[1]))); + + if (dropdown.attr('id') == "group"){ + group_family_list = []; + for (_i = 0, _len = items.length; _i < _len; _i++) { + item = items[_i]; + group_family = item[2].split(":")[1] + if (group_family != "None"){ + group_family_list.push([item[0], item[1], group_family, group_family]) + } else { + group_family_list.push([item[0], item[1], group_family, item[1]]) + } + } + + group_family_list.sort(function(a, b){return a[3] > b[3]}) + current_family = "" + this_opt_group = null + for (_i = 0, _len = group_family_list.length; _i < _len; _i++) { + item = group_family_list[_i]; + if (item[2] != "None" && current_family == ""){ + current_family = item[2] + this_opt_group = $("<optgroup label=\"" + item[2] + "\">") + } else if (current_family != "" && item[2] == current_family){ + this_opt_group.append($("<option />").val(item[0]).text(item[1])); + } else if (current_family != "" && item[2] != "None"){ + current_family = item[2] + _results.push(dropdown.append(this_opt_group)) + this_opt_group = $("<optgroup label=\"" + item[2] + "\">") + } else { + _results.push(dropdown.append($("<option />").val(item[0]).text(item[1]))); + } + } + } else { + for (_i = 0, _len = items.length; _i < _len; _i++) { + item = items[_i]; + if (item.length > 2){ + _results.push(dropdown.append($("<option data-id=\""+item[0]+"\" />").val(item[1]).text(item[2]))); + } else { + _results.push(dropdown.append($("<option />").val(item[0]).text(item[1]))); + } } } return _results; @@ -143,6 +176,7 @@ apply_default = function() { dataset: "HC_M2_0606_P" }; } + _ref = [['species', 'group'], ['group', 'type'], ['type', 'dataset'], ['dataset', null]]; _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { |