root/SPARQLBuilderWWW/web/classselect.js @ 257

リビジョン 253, 4.0 KB (コミッタ: lenz, 9 年 前)

クラス選択ページ仮組
デザイン0

  • 属性 svn:mime-type の設定値 text/plain
行番号 
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
26function 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
39function 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
62function 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
92function 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
106function 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}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。