about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_select_menu_edit_trait.js253
-rw-r--r--wqflask/wqflask/templates/edit_trait.html4
2 files changed, 255 insertions, 2 deletions
diff --git a/wqflask/wqflask/static/new/javascript/dataset_select_menu_edit_trait.js b/wqflask/wqflask/static/new/javascript/dataset_select_menu_edit_trait.js
new file mode 100644
index 00000000..1d4a94d9
--- /dev/null
+++ b/wqflask/wqflask/static/new/javascript/dataset_select_menu_edit_trait.js
@@ -0,0 +1,253 @@
+var apply_default, check_search_term, dataset_info, group_info, make_default, open_window, populate_dataset, populate_group, populate_species, populate_type, process_json, redo_dropdown;
+process_json = function(data) {
+  window.jdata = data;
+  populate_species();
+  if ($('#type').length > 0) { //This is to determine if it's the index page or the submit_trait page (which only has species and group selection and no make default option)
+    return apply_default();
+  }
+};
+
+$.ajax('/api/v_pre1/gen_dropdown', {
+  dataType: 'json',
+  success: process_json
+});
+
+populate_species = function() {
+  var species_list;
+  species_list = this.jdata.species;
+  redo_dropdown($('#species'), species_list);
+  return populate_group();
+};
+window.populate_species = populate_species;
+populate_group = function() {
+  var group_list, species;
+  console.log("in populate group");
+  species = $('#species').val();
+  group_list = this.jdata.groups[species];
+  for (_i = 0, _len = group_list.length; _i < (_len - 1); _i++) {
+     if (group_list[_i][0] == "BXD300"){
+         group_list.splice(_i, 1)
+     }
+  }
+  redo_dropdown($('#group'), group_list);
+  if ($('#type').length > 0) { //This is to determine if it's the index page or the submit_trait page (which only has species and group selection and no make default option)
+    return populate_type();
+  }
+};
+window.populate_group = populate_group;
+populate_type = function() {
+  var group, species, type_list;
+  console.log("in populate type");
+  species = $('#species').val();
+  group = $('#group').val();
+  type_list = this.jdata.types[species][group];
+  redo_dropdown($('#type'), type_list);
+  return populate_dataset();
+};
+window.populate_type = populate_type;
+populate_dataset = function() {
+  var dataset_list, group, species, type;
+  console.log("in populate dataset");
+  species = $('#species').val();
+  group = $('#group').val();
+  type = $('#type').val();
+  console.log("sgt:", species, group, type);
+  dataset_list = this.jdata.datasets[species][group][type];
+  console.log("pop_dataset:", dataset_list);
+  return redo_dropdown($('#dataset'), dataset_list);
+};
+window.populate_dataset = populate_dataset;
+redo_dropdown = function(dropdown, items) {
+  var item, _i, _len, _results;
+  console.log("in redo:", dropdown, items);
+  dropdown.empty();
+  _results = [];
+
+  if (dropdown.attr('id') == "group"){
+    group_family_list = [];
+    for (_i = 0, _len = items.length; _i < _len; _i++) {
+      item = items[_i];
+      group_family = item[2].toString().split(":")[1]
+      group_family_list.push([item[0], item[1], group_family])
+    }
+
+    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] + "\">")
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+      } else if (current_family != "" && item[2] == current_family){
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+        if (_i == group_family_list.length - 1){
+          _results.push(dropdown.append(this_opt_group))
+        }
+      } else if (current_family != "" && item[2] != current_family && item[2] != "None"){
+        current_family = item[2]
+        _results.push(dropdown.append(this_opt_group))
+        this_opt_group = $("<optgroup label=\"" + current_family + "\">")
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+        if (_i == group_family_list.length - 1){
+          _results.push(dropdown.append(this_opt_group))
+        }
+      } else if (current_family != "" && this_opt_group != null && item[2] == "None"){
+        _results.push(dropdown.append(this_opt_group))
+        current_family = ""
+        _results.push(dropdown.append($("<option />").val(item[0]).text(item[1])));
+      } else {
+        _results.push(dropdown.append($("<option />").val(item[0]).text(item[1])));
+      }
+    }
+  } else if (dropdown.attr('id') == "type"){
+    type_family_list = [];
+    for (_i = 0, _len = items.length; _i < _len; _i++) {
+      item = items[_i];
+      type_family_list.push([item[0], item[1], item[2]])
+    }
+
+    current_family = ""
+    this_opt_group = null
+    for (_i = 0, _len = type_family_list.length; _i < _len; _i++) {
+      item = type_family_list[_i];
+      if (item[2] != "None" && current_family == ""){
+        current_family = item[2]
+        this_opt_group = $("<optgroup label=\"" + item[2] + "\">")
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+        if (_i == type_family_list.length - 1){
+          _results.push(dropdown.append(this_opt_group))
+        }
+      } else if (current_family != "" && item[2] == current_family){
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+        if (_i == type_family_list.length - 1){
+          _results.push(dropdown.append(this_opt_group))
+        }
+      } else if (current_family != "" && item[2] != current_family && item[2] != "None"){
+        current_family = item[2]
+        _results.push(dropdown.append(this_opt_group))
+        this_opt_group = $("<optgroup label=\"" + current_family + "\">")
+        this_opt_group.append($("<option />").val(item[0]).text(item[1]));
+        if (_i == type_family_list.length - 1){
+          _results.push(dropdown.append(this_opt_group))
+        }
+      } else {
+        _results.push(dropdown.append(this_opt_group))
+        current_family = ""
+        _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;
+};
+$('#species').change((function(_this) {
+  return function() {
+    return populate_group();
+  };
+})(this));
+$('#group').change((function(_this) {
+  return function() {
+    if ($('#type').length > 0) { //This is to determine if it's the index page or the submit_trait page (which only has species and group selection and no make default option)
+      return populate_type();
+    }
+    else {
+      return false
+    }
+  };
+})(this));
+$('#type').change((function(_this) {
+  return function() {
+    return populate_dataset();
+  };
+})(this));
+open_window = function(url, name) {
+  var options;
+  options = "menubar=yes,toolbar=yes,titlebar=yes,location=yes,resizable=yes,status=yes,scrollbars=yes,directories=yes,width=900";
+  return open(url, name, options).focus();
+};
+group_info = function() {
+  var group, species, url;
+  species = $('#species').val();
+  group = $('#group').val();
+  url = "http://gn1.genenetwork.org/" + species + "Cross.html#" + group;
+  return open_window(url, "Group Info");
+};
+$('#group_info').click(group_info);
+dataset_info = function() {
+  var dataset, url;
+  accession_id = $('#dataset option:selected').data("id");
+  name = $('#dataset option:selected').val();
+  if (accession_id != "None") {
+    url = "http://genenetwork.org/webqtl/main.py?FormID=sharinginfo&GN_AccessionId=" + accession_id + "&InfoPageName=" + name;
+  } else {
+    url = "http://genenetwork.org/webqtl/main.py?FormID=sharinginfo&InfoPageName=" + name;
+  }
+  return open_window(url, "Dataset Info");
+};
+$('#dataset_info').click(dataset_info);
+make_default = function() {
+  var holder, item, jholder, _i, _len, _ref;
+  alert("The current settings are now your default.")
+  holder = {};
+  _ref = ['species', 'group', 'type', 'dataset'];
+  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+    item = _ref[_i];
+    holder[item] = $("#" + item).val();
+  }
+  jholder = JSON.stringify(holder);
+  return $.cookie('search_defaults', jholder, {
+    expires: 365
+  });
+};
+apply_default = function() {
+  var defaults, item, populate_function, _i, _len, _ref, _results;
+  defaults = $.cookie('search_defaults');
+  if (defaults) {
+    defaults = $.parseJSON(defaults);
+  } else {
+    defaults = {
+      species: "mouse",
+      group: "BXD",
+      type: "Hippocampus mRNA",
+      dataset: "HC_M2_0606_P"
+    };
+  }
+
+  _ref = [['species', 'group'], ['group', 'type'], ['type', 'dataset'], ['dataset', null]];
+  _results = [];
+  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+    item = _ref[_i];
+    $("#" + item[0]).val(defaults[item[0]]);
+    if (item[1]) {
+      populate_function = "populate_" + item[1];
+      console.log("Calling:", populate_function);
+      _results.push(window[populate_function]());
+    } else {
+      _results.push(void 0);
+    }
+  }
+  return _results;
+};
+check_search_term = function() {
+  var or_search_term, and_search_term;
+  or_search_term = $('#or_search').val();
+  and_search_term = $('#and_search').val();
+  console.log("or_search_term:", or_search_term);
+  console.log("and_search_term:", and_search_term);
+  if (or_search_term === "" && and_search_term === "") {
+    alert("Please enter one or more search terms or search equations.");
+    return false;
+  }
+};
+$("#make_default").click(make_default);
+$("#btsearch").click(check_search_term);
diff --git a/wqflask/wqflask/templates/edit_trait.html b/wqflask/wqflask/templates/edit_trait.html
index 14f44698..b9a31fc6 100644
--- a/wqflask/wqflask/templates/edit_trait.html
+++ b/wqflask/wqflask/templates/edit_trait.html
@@ -78,8 +78,8 @@
 
 {%endblock%}
 
-{% block js %}
-    <script src="/static/new/javascript/dataset_select_menu_orig.js"></script>
+  {% block js %}
+  <script src="/static/new/javascript/dataset_select_menu_edit_trait.js"></script>
     <script>
       gn_server_url = "{{ gn_server_url }}";
     </script>