root/SPARQLBuilderWWW/web/eplesscs.js

リビジョン 293, 13.7 KB (コミッタ: lenz, 8 年 前)

eplesscs.jsについてAPIのプレフィックス分離処理
└→3行目を変更すれば他サイトでも利用可能に

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