1 | $(function(){
|
---|
2 |
|
---|
3 | scrolldiv();
|
---|
4 |
|
---|
5 | loadStartClass();
|
---|
6 |
|
---|
7 |
|
---|
8 | $('#searchstart').keypress(function(e) {
|
---|
9 | if ( e.which == 13 ) {
|
---|
10 | return false;
|
---|
11 | }
|
---|
12 | });
|
---|
13 | $('#searchstart').keyup(function(e) {
|
---|
14 | search();
|
---|
15 | });
|
---|
16 | $('#searchend').keypress(function(e) {
|
---|
17 | if ( e.which == 13 ) {
|
---|
18 | return false;
|
---|
19 | }
|
---|
20 | });
|
---|
21 | $('#searchend').keyup(function(e) {
|
---|
22 | search();
|
---|
23 | });
|
---|
24 | });
|
---|
25 |
|
---|
26 | function scrolldiv(){
|
---|
27 | if(($('div.startclass').height() + $('#searchstart').height()) > $('div.left').height()){
|
---|
28 | $('div.left').css('overflow-y', 'scroll');
|
---|
29 | }else{
|
---|
30 | $('div.left').css('overflow-y', 'hidden');
|
---|
31 | }
|
---|
32 | if(($('div.endclass').height() + $('#searchend').height()) > $('div.right').height()){
|
---|
33 | $('div.right').css('overflow-y', 'scroll');
|
---|
34 | }else{
|
---|
35 | $('div.right').css('overflow-y', 'hidden');
|
---|
36 | }
|
---|
37 | }
|
---|
38 |
|
---|
39 | function loadStartClass(){
|
---|
40 | var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent("http://www.ebi.ac.uk/rdf/services/reactome/sparql");
|
---|
41 | $.ajax({
|
---|
42 | type : "GET",
|
---|
43 | url : url,
|
---|
44 | success : function(data) {
|
---|
45 | var list = eval(data);
|
---|
46 | $('div.startclass').empty();
|
---|
47 |
|
---|
48 | var startclasstable = $('<table>');
|
---|
49 |
|
---|
50 | for (var i = 0; i < list.length; ++i) {
|
---|
51 | startclasstable.append('<tr><td class="startclasscell"><span class="endpointuri" title="http://www.ebi.ac.uk/rdf/services/reactome/sparql"></span><span class="startclassuri" title="' + list[i]['uri'] + '">' + list[i]['label'] + ' (' + list[i]['number'] + ')' + '</span></td></tr>');
|
---|
52 | }
|
---|
53 |
|
---|
54 | $('div.startclass').append(startclasstable);
|
---|
55 |
|
---|
56 | requestEndClass();
|
---|
57 | scrolldiv();
|
---|
58 | }
|
---|
59 | });
|
---|
60 | }
|
---|
61 |
|
---|
62 | function requestEndClass(){
|
---|
63 | $('.startclasscell').each(function(){
|
---|
64 | $(this).unbind('click');
|
---|
65 | $(this).click(function(){
|
---|
66 | $('.endclass').empty();
|
---|
67 | $('.endclass').append('<img src="images/ajax-loader.gif">');
|
---|
68 | var ep = $(this).children('.endpointuri').attr('title');
|
---|
69 | var sc = $(this).children('.startclassuri').attr('title');
|
---|
70 | var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent(ep) + '&class=' + encodeURIComponent(sc);
|
---|
71 | $.ajax({
|
---|
72 | type : "GET",
|
---|
73 | url : url,
|
---|
74 | success : function(data) {
|
---|
75 | var list = eval(data);
|
---|
76 | $('.endclass').empty();
|
---|
77 | var endclasstable = $('<table>');
|
---|
78 |
|
---|
79 | for (var i = 0; i < list.length; ++i) {
|
---|
80 | endclasstable.append('<tr><td class="endclasscell"><span class="endpointuri" title="' + ep + '"></span><span class="startclassuri" title="' + sc + '"></span><span class="endclassuri" title="' + list[i]['uri'] + '">' + list[i]['label'] + ' (' + list[i]['number'] + ')' + '</span></td></tr>');
|
---|
81 | }
|
---|
82 |
|
---|
83 | $('.endclass').append(endclasstable);
|
---|
84 |
|
---|
85 | requestSPARQLBuilder();
|
---|
86 | }
|
---|
87 | });
|
---|
88 | });
|
---|
89 | });
|
---|
90 | }
|
---|
91 |
|
---|
92 | function requestSPARQLBuilder(){
|
---|
93 | $('.endclasscell').each(function(){
|
---|
94 | $(this).unbind('click');
|
---|
95 | $(this).click(function(){
|
---|
96 | var ep = $(this).children('.endpointuri').attr('title');
|
---|
97 | var sc = $(this).children('.startclassuri').attr('title');
|
---|
98 | var ec = $(this).children('.endclassuri').attr('title');
|
---|
99 | var url = "http://www.sparqlbuilder.org/?ep=" + encodeURIComponent(ep) + '&st=' + encodeURIComponent(sc) + '&en=' + encodeURIComponent(ec);
|
---|
100 |
|
---|
101 | window.open(url);
|
---|
102 | });
|
---|
103 | })
|
---|
104 | }
|
---|
105 |
|
---|
106 | function search(){
|
---|
107 | if($('#searchstart').val() == ''){
|
---|
108 | $('.startclasscell').parent().removeClass('nohit');
|
---|
109 | }else{
|
---|
110 | var keyword = $('#searchstart').val().toLowerCase();
|
---|
111 | $('.startclasscell').each(function(){
|
---|
112 | var label = $(this).children('.startclassuri').text().toLowerCase();
|
---|
113 | if(label.indexOf(keyword) != -1){
|
---|
114 | $(this).parent().removeClass('nohit');
|
---|
115 | }else{
|
---|
116 | $(this).parent().addClass('nohit');
|
---|
117 | }
|
---|
118 | });
|
---|
119 | }
|
---|
120 | if($('#searchend').val() == ''){
|
---|
121 | $('.endclasscell').parent().removeClass('nohit');
|
---|
122 | }else{
|
---|
123 | var keyword = $('#searchend').val().toLowerCase();
|
---|
124 | $('.endclasscell').each(function(){
|
---|
125 | var label = $(this).children('.endclassuri').text().toLowerCase();
|
---|
126 | if(label.indexOf(keyword) != -1){
|
---|
127 | $(this).parent().removeClass('nohit');
|
---|
128 | }else{
|
---|
129 | $(this).parent().addClass('nohit');
|
---|
130 | }
|
---|
131 | });
|
---|
132 | }
|
---|
133 |
|
---|
134 | setTimeout('scrolldiv()',30);
|
---|
135 | } |
---|