Update README.md
[sgn.git] / mason / ontology / browser.mas
blob1390204b05c050324f2741e88f282b4b94ee29c3
1 <%doc>
3 =head1 NAME
5 /ontology/browser.mas - a mason component that displays an ontology browser
7 =head1 DESCRITPION
9 The ontology browser is relying on JavaScript and uses AJAX requests to pull in the data. The AJAX requests are handled by a Catalyst controller SGN::Controller::AJAX::Onto. The JavaScript code is in js/CXGN/Tools/Onto.js.
11 To configure which ontologies should be displayed, insert a line of the following format into the catalysts local conf file (sgn_local.conf on SGN):
13 C<onto_root_namespaces  GO (Gene Ontology), PO (Plant Ontology), SO (Sequence Ontology), PATO (Phenotype and Trait Ontology), SP (Solanaceae Ontology)>
15 where onto_root_namespaces is the conf key, "GO" the two letter code of the ontology (as it appears in the db database table), and in parenthesis is the human readable name of the ontology.
17 =head1 AUTHOR
19 Lukas Mueller <lam87@cornell.edu>
21 =cut
23 </%doc>
25 <%args>
26     # comma separated list of root nodes (optional)
27     $root_nodes => undef
28     $db_name => undef
29     $expand => undef
30 </%args>
31 <& /util/import_javascript.mas,
32     classes => [
33         'MochiKit.DOM',
34         'MochiKit.Visual',
35         'MochiKit.Async',
36         'Prototype',
37         'MochiKit.Logging',
38         'CXGN.Onto.Browser',
39         'CXGN.Page.FormattingHelpers',
40         'jquery',
41      ]
44 % #$root_nodes = 'GO PO SP'; #for testing
46 <table title="ontology browser input form" cellpadding="0" summary="" border="0"><tr><td><div id="ontology_browser_input" >&nbsp;&nbsp;&nbsp;</div></td></tr>
47 <tr><td><div id="ontology_term_input" >loading...</div></td></tr></table>
48 <input id="hide_link" type="button" value="show results" display="none" onClick="MochiKit.Visual.toggle('search_results', 'blind'); o.toggleSearchResultsVisible(); o.setSearchButtonText();  "><br />
50 <div id="search_results" ></div>
51 <div id="ontology_browser" style="font-size:12px; line-height:10px; font-face:arial,helvetica" >&nbsp;</div>
54 <script language="javascript" type="text/javascript" defer="defer" >
56 var o;
58 jQuery(document).ready( function() { 
59   o = new CXGN.Onto.Browser('<% $root_nodes %>');
60 //  o.setUpBrowser();
61   o.initializeBrowser('<% $root_nodes %>');
62   o.renderSearchById();
63   o.renderSearchByName('<% $db_name %>');
64   var rn = o.rootnode.getChildren();   
65   var expand = "<% $expand %>";
66   if (expand == 1) {
67     for (var i=0; i<rn.length; i++) {
68       rn[i].openNode(1);
69     }
70   }
71   o.render();
72 });
75 </script>