root/SPARQLBuilderWWW/web/eplesscs.js @ 282

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

CSSとイベントハンドルを微調整

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