7 <& /util/import_javascript.mas, classes => [ 'jquery', 'jquery.dataTables' ] &>
9 <div class="container-fluid">
11 <& /page/page_title.mas, title=>'Search Genes and Loci' &>
15 use CXGN::Page::FormattingHelpers qw / html_optional_show info_table_html conditional_like_input_html simple_selectbox_html/;
18 my $any_name_select = conditional_like_input_html("any_name","contains", "", '30');
21 my $organism = simple_selectbox_html(
22 choices => $organism_ref ,
27 my $linkage_group_select = simple_selectbox_html(
28 choices => $lg_names_ref,
29 id => "locus_linkage_group",
33 no warnings 'uninitialized';
35 my $advanced_search= info_table_html(
36 'Organism' => $organism,
37 'Chromosome / Linkage Group' => $linkage_group_select,
38 'Locus editor' =>qq|<input class="form-control" type="text" id="locus_editor" size="20"/>|,
39 'Show only genes with' => qq | <input type="checkbox" id="has_sequence" />sequence <br />
40 <input type="checkbox" id="has_marker" />markers<br />
41 <input type="checkbox" id="has_annotation" />GO/PO annotation<br /> |,
43 'Phenotype' => qq|<input class="form-control" type="text" id="phenotype" size="30" /><a href="/search/phenotypes"> [Advanced SGN phenotype search]</a>|,
44 'Ontology term' => qq|<input class="form-control" type="text" id="ontology_term" placeholder="Term name or ID: e.g. 'carotenoid' or 'PO:0007010'"/>
45 <!--<br /><span class="ghosted">(Term name or ID: e.g. 'carotenoid' or 'PO:0007010')</span>-->|,
46 'Genbank ID' =>qq|<input class="form-control" type="text" id="genbank_accession" placeholder="Accession or GI: e.g. 'EF091820' or '118185006'"/>
47 <!--<br /><span class="ghosted">(Accession or GI: e.g. 'EF091820' or '118185006')</span>-->|,
50 __tableattrs => 'width="100%"',
56 <&| /page/info_section.mas, title => 'Search', collapsible=>1, collapsed=>0, subtitle=>'[<a href="../help/gene_search_help.pl">Gene Search Help</a>]' &>
58 <div class="well" id="locus_search_form">
60 <div class="form-horizontal" >
61 <div class="form-group">
62 <label class="col-sm-3 control-label">Search for any gene, locus, or allele:</label>
63 <div class="col-sm-9" >
64 <% $any_name_select %>
67 <div class="container-fluid" align="center">
69 <ul class="list-inline" >
70 <li style="padding-bottom:5px"><button class="btn btn-primary" id="submit_locus_search" />Search</button></li>
71 <li style="padding-bottom:5px"><a class="btn btn-info" href="/locus/0/new/" style="color:#fff" >Submit New Locus</a></li>
72 <li style="padding-bottom:5px"><input class="btn btn-default" type="button" value="Advanced Search Options" id="show_advanced_search" /></li>
80 <td colspan="2"><b>Search for any gene, locus, or allele</b> (<a href="../help/gene_search_help.pl">gene search help page</a>)</td></tr>
81 <tr><td><% $any_name_select %></td>
82 <td><div align="center"><button id="submit_locus_search" />Search</button></div></td>
83 <tr><td><a href="/locus/0/new/">[Submit new locus]</a></td></tr>
88 <div id="advanced_search_div" style="display:none;">
89 <&| /page/info_section.mas, title => 'Advanced Options' &>
90 <% $advanced_search %>
101 <&| /page/info_section.mas, title => 'Search Results', collapsible=>1, collapsed=>0 &>
105 <table id="locus_search_results" class="display">
110 <th>Locus Symbol</th>
120 <& /util/import_css.mas, paths => ['/documents/inc/datatables/jquery.dataTables.css'] &>
126 jQuery(document).ready(function () {
128 var table = jQuery('#locus_search_results').DataTable( {
134 'ajax': { 'url': '/ajax/search/loci',
135 'data': function(d) {
136 d.any_name = jQuery('#any_name').val();
137 d.any_name_matchtype = jQuery('#any_name_matchtype').val();
138 d.common_name = jQuery('#common_name').val();
139 d.phenotype = jQuery('#phenotype').val();
140 d.linkage_group = jQuery('#locus_linkage_group').val();
141 d.ontology_term = jQuery('#ontology_term').val();
142 d.locus_editor = jQuery('#locus_editor').val();
143 d.genbank_accession = jQuery('#genbank_accession').val();
144 d.has_sequence = jQuery('#has_sequence').is(':checked');
145 d.has_marker = jQuery('#has_marker').is(':checked');
146 d.has_annotation = jQuery('#has_annotation').is(':checked');
152 jQuery('#submit_locus_search').click( function() {
153 var common_name = jQuery('#common_name').val();
154 var phenotype = jQuery('#phenotype').val();
155 var linkage = jQuery('#locus_linkage_group').val();
156 var ontology = jQuery('#ontology_term').val();
157 var editor = jQuery('#locus_editor').val();
158 var genbank = jQuery('#genbank_accession').val();
159 var has_sequence = jQuery('#has_sequence').is(':checked');
160 var has_marker = jQuery('#has_marker').is(':checked');
161 var has_annotation = jQuery('#has_annotation').is(':checked');
163 if ( phenotype.trim().length || common_name.length || ontology.trim().length || editor.trim().length || genbank.trim().length || has_sequence || has_marker || has_annotation ) {
164 jQuery('#advanced_search_div').show();
166 jQuery('#advanced_search_div').hide()
168 table.search("locus_search_results").draw();
171 jQuery('#locus_search_form').keypress( function( e ) {
172 var code = e.keyCode || e.which;
174 jQuery('#submit_locus_search').click();
179 jQuery('#show_advanced_search').click( function() {
180 if (false == jQuery('#advanced_search_div').is(':visible')) {
181 jQuery('#advanced_search_div').show();
184 jQuery('#advanced_search_div').hide();