root/SPARQLBuilderWWW/web/eplesscs.js @ 276

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

エンドポイントの指定方法を変更

  • 属性 svn:mime-type の設定値 text/plain
Rev行番号 
[276]1
2// 繝壹�繧ク隱ュ縺ソ霎シ縺ソ螳御コ�ャ。隨ャ
3$(function(){
4
5        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳�
6        scrolldiv();
7
8        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ隱ュ縺ソ霎シ縺ソ
9        loadStartClass();
10
11        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繝サ繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ縺昴l縺槭l縺ォ縺、縺�※
12        // 繧ュ繝シ縺梧款縺輔l縺溘→縺�
13        $('#searchstarttext, #searchendtext').keypress(function(e) {
14                // 繧ィ繝ウ繧ソ繝シ繧ュ繝シ縺縺」縺溘ifalse繧定ソ斐☆�医ユ繧ュ繧ケ繝医�繝�け繧ケ縺ョ繝�ヵ繧ゥ繝ォ繝域ゥ溯�繧偵く繝」繝ウ繧サ繝ォ��
15                if ( e.which == 13 ) {
16                        return false;
17                }
18        });
19        // 繧ュ繝シ縺梧款縺輔l縲�屬縺輔l縺滓凾�磯屬縺輔l縺滓凾繧偵う繝吶Φ繝医ワ繝ウ繝峨Λ縺ォ縺励↑縺�→縺昴�譎ょ�蜉帙@縺滓枚蟄励′蜿肴丐縺輔l縺ェ縺�シ�
20        $('#searchstarttext, #searchendtext').keyup(function(e) {
21                // 讀懃エ「繧定。後≧
22                search();
23        });
24});
25
26// 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳�
27function scrolldiv(){
28
29        // 繧ィ繝ウ繝峨�繧、繝ウ繝�RI逕ィ譁�ュ怜�
30        var epuri = "";
31
32        // // 繧ィ繝ウ繝峨�繧、繝ウ繝郁。後r蜑企勁
33        // $('.endpointrow').remove();
34
35        // // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繧サ繝ォ蛻�ケー繧願ソ斐@
36        // $('.startclasscell').each(function(){
37        //      // 繝弱�繝偵ャ繝医け繝ゥ繧ケ縺ョ蟄舌〒縺ェ縺代l縺ー
38        //      if(!$(this).parent().hasClass('nohit')){
39        //              // 縺薙�繧ッ繝ゥ繧ケ縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医′蜑阪�陦後→驕輔▲縺溘i
40        //              if(epuri != $(this).find('.endpointuri').attr('title')){
41        //                      // 繧ィ繝ウ繝峨�繧、繝ウ繝�RI繧呈峩譁ー
42        //                      epuri = $(this).find('.endpointuri').attr('title');
43        //                      // 繧ィ繝ウ繝峨�繧、繝ウ繝郁。後r霑ス蜉
44        //                      $(this).parent().before($('<tr class="endpointrow"><th>' + epuri + '</th></tr>'));
45        //              }
46        //      }
47        // });
48
49        // // 繧ィ繝ウ繝峨け繝ゥ繧ケ繧サ繝ォ縺ォ縺、縺�※蜷梧ァ倥�蜃ヲ逅�
50        // epuri = "";
51        // $('.endclasscell').each(function(){
52        //      if(!$(this).parent().hasClass('nohit')){
53        //              if(epuri != $(this).find('.endpointuri').attr('title')){
54        //                      epuri = $(this).find('.endpointuri').attr('title');
55        //                      $(this).parent().before($('<tr class="endpointrow"><th>' + epuri + '</th></tr>'));
56        //              }
57        //      }
58        // });
59
60        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺ョ繝��繝悶Ν縺ィ繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ谺��鬮倥&縺ョ蜷郁ィ医′謖�ョ壽ク医∩縺ョ蟾ヲ繧ォ繝ゥ繝縺ョ鬮倥&繧医j螟ァ縺阪¢繧後�
61        if(($('div.startclass table').height() + $('div.searchstart').height()) > $('div.left').height()){
62                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ逕ィdiv縺ョ邵ヲ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳壹r繧ェ繝ウ縺ォ
63                $('div.startclass').css('overflow-y', 'scroll');
64                // 鬮倥&繧貞キヲ繧ォ繝ゥ繝縺九i讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ谺�→20px��addingテ��牙シ輔>縺溷€、縺ォ縺吶k
65                $('div.startclass').css('height', ($('div.left').height() - $('div.searchstart').height() - 20) + 'px');
66        // 蟆上&縺代l縺ー
67        }else{
68                // 邵ヲ繧ケ繧ッ繝ュ繝シ繝ォ繧偵が繝�
69                $('div.startclass').css('overflow-y', 'hidden');
70        }
71        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺、縺�※蜷梧ァ倥�蜃ヲ逅�
72        if(($('div.endclass table').height() + $('div.searchend').height()) > $('div.right').height()){
73                $('div.endclass').css('overflow-y', 'scroll');
74                $('div.endclass').css('height', ($('div.right').height() - $('div.searchend').height() - 20) + 'px');
75        }else{
76                $('div.endclass').css('overflow-y', 'hidden');
77        }
78}
79
80// 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ隱ュ縺ソ霎シ縺ソ
81function loadStartClass(){
82        // SPARQL Builder縺ョ繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ蜿門セ礼畑API繧「繝峨Ξ繧ケ繧剃ス懈�
83        var url = "http://sparqlbuilder.org/tdata/clist.json";
84        // AJAX髢句ァ�
85        $.ajax({
86                // 繝。繧ス繝�ラ繧ソ繧、繝暦シ壹ご繝�ヨ
87                type : "GET",
88                // URL�壼�縺サ縺ゥ繧サ繝�ヨ縺励◆繧ゅ�
89                url : url,
90                // 蜿門セ玲�蜉溘@縺溘i
91                success : function(data) {
92                        // 蟶ー縺」縺ヲ縺阪◆邨先棡繧谷SON縺ォ繝代�繧ケ縺怜叙蠕�
93                        var list = eval(data);
94                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ荳€隕ァ驛ィ蛻�r遨コ縺ォ
95                        $('div.startclass').empty();
96
97                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繝��繝悶Ν繧剃ス懈�
98                        var startclasstable = $('<table>');
99           
100            // 蜑阪�URI繧堤ゥコ縺ァ菴懈�
101            var prevuri = "";
102
103                        // 邨先棡縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医�蛻�□縺醍ケー繧願ソ斐@
104                        for(var i = 0; i < list.length; i++){
105                // 莉雁屓縺ョURI縺悟燕縺ョURI縺ィ驕輔▲縺溘i
106                if(prevuri != list[i][`uri`]){
107                    // 菫晏ュ倥@縺ヲ縺�kURI繧剃ソ晏ュ�
108                    prevuri = list[i][`uri`];
109                    // 莉雁屓蛻��諠�ア繧貞�繧瑚。後r霑ス蜉
110                                    startclasstable.append('<tr><td class="startclasscell"><span class="startclassuri" title="' + list[i]['uri'] + '">' + list[i]['label'] + '</span><span class="endpointuri" title="' + list[i]['ep'] + '"></span></td></tr>');
111                // 蜷後§URI縺ェ繧�
112                }else{
113                    // 迴セ蝨ィ譛€蠕後�繧ィ繝ウ繝峨�繧、繝ウ繝�RI隕∫エ繧呈爾縺怜セ後m縺ォ繧ィ繝ウ繝峨�繧、繝ウ繝医r霑ス險�
114                    startclasstable.find('.endpointuri').last().after($('<span class="endpointuri" title="' + list[i]['ep'] + '"></span>'));
115                }
116                        }
117
118                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺ォ霑ス蜉
119                        $('div.startclass').append(startclasstable);
120
121                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹�
122                        requestEndClass();
123                        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳�
124                        scrolldiv();
125                }
126        });
127}
128
129// 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹�
130function requestEndClass(){
131        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ逕ィ縺ョ蜷ФRI縺ォ縺、縺�※
132        $('.startclassuri').each(function(){
133                // 迴セ蝨ィ縺ョ繧ッ繝ェ繝�け繧、繝吶Φ繝医r蜑企勁�亥、夐㍾蛹門ッセ遲厄シ�
134                $(this).unbind('click');
135                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�霑ス蜉
136                $(this).click(function(){
137
138                        // 驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繧ッ繝ゥ繧ケ縺後≠繧後�髯、蜴サ
139                        $('.selectedstart').each(function(){
140                                $(this).removeClass('selectedstart');
141                        });
142                        // 繧ッ繝ェ繝�け縺輔l縺溯ヲ∫エ縺ォ驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繧定ソス蜉
143                        $(this).addClass('selectedstart');
144
145            if($(this).parent().children('.endpointuri').length == 1){
146                // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ驛ィ蛻�r遨コ縺ォ
147                $('.endclass').empty();
148                // AJAX繝ュ繝シ繝�ぅ繝ウ繧ー逕サ蜒上r霑ス蜉
149                $('.endclass').append('<img src="images/ajax-loader.gif">');
150               
151                // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医r蜿門セ�
152                var ep = $(this).parent().children('.endpointuri').attr('title');
153                // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョURI繧貞叙蠕�
154                var sc = $(this).attr('title');
155                // SPARQL Builder縺ョ繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ蜿門セ礼畑API繧「繝峨Ξ繧ケ繧剃ス懈�
156                var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent(ep) + '&class=' + encodeURIComponent(sc);
157                // AJAX髢句ァ�
158                $.ajax({
159                    // 繝。繧ス繝�ラ繧ソ繧、繝暦シ壹ご繝�ヨ
160                    type : "GET",
161                    // URL�壼�縺サ縺ゥ繧サ繝�ヨ縺励◆繧ゅ�
162                    url : url,
163                    // 蜿門セ玲�蜉溘@縺溘i
164                    success : function(data) {
165                        // 蟶ー縺」縺ヲ縺阪◆邨先棡繧谷SON縺ォ繝代�繧ケ縺怜叙蠕�
166                        var list = eval(data);
167                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ荳€隕ァ驛ィ蛻�r遨コ縺ォ
168                        $('.endclass').empty();
169
170                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝��繝悶Ν繧剃ス懈�
171                        var endclasstable = $('<table>');
172
173                        // 蜿門セ励@縺溘け繝ゥ繧ケ繝ェ繧ケ繝医�謨ー縺縺醍ケー繧願ソ斐@縺ェ縺後i
174                        for (var i = 0; i < list.length; ++i) {
175                            // 蛻励r霑ス蜉
176                            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>');
177                        }
178
179                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ縺ォ霑ス蜉
180                        $('.endclass').append(endclasstable);
181
182                        // SPARQL Builder縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹�
183                        requestSPARQLBuilder();
184                        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳�
185                        scrolldiv();
186                    }
187                });
188            }else{
189                $(this).parent().children('.endpointuri').each(function(){
190                    $(this).text($(this).attr('title'));
191                });
192            }
193                });
194        });
195   
196        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ逕ィ縺ョ蜷ФRI縺ォ縺、縺�※
197        $('.endpointuri').each(function(){
198       
199                // 迴セ蝨ィ縺ョ繧ッ繝ェ繝�け繧、繝吶Φ繝医r蜑企勁�亥、夐㍾蛹門ッセ遲厄シ�
200                $(this).unbind('click');
201                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�霑ス蜉
202                $(this).click(function(){
203
204            // 驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繧ッ繝ゥ繧ケ縺後≠繧後�髯、蜴サ
205            $('.selectedstart').each(function(){
206                $(this).removeClass('selectedstart');
207            });
208            // 繧ッ繝ェ繝�け縺輔l縺溯ヲ∫エ縺ォ驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繧定ソス蜉
209            $(this).parent().children('.startclassuri').addClass('selectedstart');
210
211            // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ驛ィ蛻�r遨コ縺ォ
212            $('.endclass').empty();
213            // AJAX繝ュ繝シ繝�ぅ繝ウ繧ー逕サ蜒上r霑ス蜉
214            $('.endclass').append('<img src="images/ajax-loader.gif">');
215           
216            // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医r蜿門セ�
217            var ep = $(this).attr('title');
218            // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョURI繧貞叙蠕�
219            var sc = $(this).parent().children('.startclassuri').attr('title');
220            // SPARQL Builder縺ョ繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ蜿門セ礼畑API繧「繝峨Ξ繧ケ繧剃ス懈�
221            var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent(ep) + '&class=' + encodeURIComponent(sc);
222            // AJAX髢句ァ�
223            $.ajax({
224                // 繝。繧ス繝�ラ繧ソ繧、繝暦シ壹ご繝�ヨ
225                type : "GET",
226                // URL�壼�縺サ縺ゥ繧サ繝�ヨ縺励◆繧ゅ�
227                url : url,
228                // 蜿門セ玲�蜉溘@縺溘i
229                success : function(data) {
230                    // 蟶ー縺」縺ヲ縺阪◆邨先棡繧谷SON縺ォ繝代�繧ケ縺怜叙蠕�
231                    var list = eval(data);
232                    // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ荳€隕ァ驛ィ蛻�r遨コ縺ォ
233                    $('.endclass').empty();
234
235                    // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝��繝悶Ν繧剃ス懈�
236                    var endclasstable = $('<table>');
237
238                    // 蜿門セ励@縺溘け繝ゥ繧ケ繝ェ繧ケ繝医�謨ー縺縺醍ケー繧願ソ斐@縺ェ縺後i
239                    for (var i = 0; i < list.length; ++i) {
240                        // 蛻励r霑ス蜉
241                        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>');
242                    }
243
244                    // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ縺ォ霑ス蜉
245                    $('.endclass').append(endclasstable);
246
247                    // SPARQL Builder縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹�
248                    requestSPARQLBuilder();
249                    // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳�
250                    scrolldiv();
251                }
252            });
253                });
254        });
255}
256
257// SPARQL Builder縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹�
258function requestSPARQLBuilder(){
259
260        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョURI縺昴l縺槭l縺ォ縺、縺�※
261        $('.endclassuri').each(function(){
262                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�蜑企勁�亥、夐㍾蛹門撫鬘悟ッセ遲厄シ�
263                $(this).unbind('click');
264                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�霑ス蜉
265                $(this).click(function(){
266
267                        // 驕ク謚樊ク医∩繧ィ繝ウ繝峨け繝ゥ繧ケ繧帝勁蜴サ
268                        $('.selectedend').each(function(){
269                                $(this).removeClass('selectedend');
270                        });
271                        // 莉雁屓縺ョ隕∫エ繧帝∈謚樊ク医∩繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺吶k
272                        $(this).addClass('selectedend');
273
274                        // 繧ィ繝ウ繝峨�繧、繝ウ繝�RL繝サ繧ケ繧ソ繝シ繝医け繝ゥ繧ケURI繝サ繧ィ繝ウ繝峨け繝ゥ繧ケURI繧貞叙蠕�
275                        var ep = $(this).parent().children('.endpointuri').attr('title');
276                        var sc = $(this).parent().children('.startclassuri').attr('title');
277                        var ec = $(this).attr('title');
278
279                        // SPARQL Builder縺ョ蜻シ縺ウ蜃コ縺礼畑URL繧剃ス懈�
280                        var url = "http://www.sparqlbuilder.org/?ep=" + encodeURIComponent(ep) + '&st=' + encodeURIComponent(sc) + '&en=' + encodeURIComponent(ec);
281
282                        // 荳翫〒菴懈�縺励◆URL繧呈眠縺励>繧ヲ繧」繝ウ繝峨え縺ァ髢九¥
283                        window.open(url);
284                });
285        })
286}
287
288// URI縺ョ讀懃エ「
289function search(){
290        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ逕ィ讀懃エ「谺��蛟、縺檎ゥコ縺ェ繧�
291        if($('#searchstarttext').val() == ''){
292                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繝弱�繝偵ャ繝医け繝ゥ繧ケ繧貞炎髯、
293                $('.startclass .nohit').removeClass('nohit');
294        // 遨コ縺ァ縺ェ縺代l縺ー
295        }else{
296                // 蜈・蜉帙&繧後◆蛟、繧貞ー乗枚蟄励↓縺励※蜿門セ�
297                var keyword = $('#searchstarttext').val().toLowerCase();
298                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺昴l縺槭l縺ォ縺、縺�※
299                $('.startclasscell').each(function(){
300                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ陦ィ遉コ蜷埼Κ蛻�r蟆乗枚蟄励↓縺励※蜿門セ�
301                        var label = $(this).children('.startclassuri').text().toLowerCase();
302                        // 蜿門セ励@縺滓枚蟄怜�縺ォ讀懃エ「繝ッ繝シ繝峨′蜷ォ縺セ繧後※縺�k縺九メ繧ァ繝�け�井ク。譁ケ蟆乗枚蟄励↓螟画鋤貂医∩縺ェ縺ョ縺ァ螟ァ譁�ュ怜ー乗枚蟄励r蝠上o縺ェ縺�シ�
303                        if(label.indexOf(keyword) != -1){
304                                // 蜷ォ縺セ繧後※縺�l縺ー繝弱�繝偵ャ繝医け繝ゥ繧ケ繧帝勁蜴サ
305                                $(this).parent().removeClass('nohit');
306                        }else{
307                                // 蜷ォ縺セ繧後※縺�↑縺代l縺ー繝弱�繝偵ャ繝医け繝ゥ繧ケ繧定ソス蜉�磯撼陦ィ遉コ縺ォ縺ェ繧具シ�
308                                $(this).parent().addClass('nohit');
309                        }
310                });
311        }
312        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺、縺�※蜷梧ァ倥�蜃ヲ逅�
313        if($('#searchendtext').val() == ''){
314                $('.endclasscell .nohit').removeClass('nohit');
315        }else{
316                var keyword = $('#searchendtext').val().toLowerCase();
317                $('.endclasscell').each(function(){
318                        var label = $(this).children('.endclassuri').text().toLowerCase();
319                        if(label.indexOf(keyword) != -1){
320                                $(this).parent().removeClass('nohit');
321                        }else{
322                                $(this).parent().addClass('nohit');
323                        }
324                });
325        }
326
327        // 30ms蠕�▲縺ヲ縺九i繧ケ繧ッ繝ュ繝シ繝ォ蜀阪そ繝�ヨ�域緒逕サ螟画峩縺ォ縺九°繧区凾髢薙r閠����
328        setTimeout('scrolldiv()',30);
329}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。