| author | ymh <ymh.work@gmail.com> |
| Mon, 31 Dec 2012 13:37:31 +0100 | |
| changeset 49 | d0da34fda4b4 |
| parent 47 | 267d67791e05 |
| child 50 | 7b517a54b708 |
| permissions | -rw-r--r-- |
|
47
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
Rkns.Wikipedia = { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
Rkns.Wikipedia.Search = function(_renkan, _opts) { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
this.renkan = _renkan; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
this.lang = _opts.lang || "en"; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
Rkns.Wikipedia.Search.prototype.getBgClass = function() { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
return "Rk-Wikipedia-Search-Icon Rk-Wikipedia-Lang-" + this.lang; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
Rkns.Wikipedia.Search.prototype.getSearchTitle = function() { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
return ( this.renkan.l10n["wiki_" + this.lang] || this.renkan.l10n.wiki_) ; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
Rkns.Wikipedia.Search.prototype.search = function(_q) { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
this.renkan.tabs.push( |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
new Rkns.Wikipedia.Bin(this.renkan, { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
lang: this.lang, |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
search: _q |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
}) |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
Rkns.Wikipedia.Bin = Rkns.Utils.inherit(Rkns._BaseBin); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
Rkns.Wikipedia.Bin.prototype.resultTemplate = Rkns._.template( |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
'<li class="Rk-Wikipedia-Result Rk-Bin-Item" data-uri="<%=wpurl%>" ' |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
+ 'data-title="Wikipedia: <%=result.title%>" data-description="<%=wpdesc%>" data-image="<%=static_url%>img/wikipedia.png">' |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
+ '<img class="Rk-Wikipedia-Icon" src="<%=static_url%>img/wikipedia.png"></div><h4 class="Rk-Wikipedia-Title"><a href="<%=wpurl%>" target="_blank"><%=highlightedtitle%></a></h4>' |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
+ '<p class="Rk-Wikipedia-Snippet"><%=result.snippet%></p></li>' |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
Rkns.Wikipedia.Bin.prototype._init = function(_renkan, _opts) { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
this.search = _opts.search; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
this.lang = _opts.lang || "en"; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
this.title_icon_$.addClass('Rk-Wikipedia-Title-Icon Rk-Wikipedia-Lang-' + this.lang); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
this.title_$.html(this.search).addClass("Rk-Wikipedia-Title"); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
this.refresh(); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
|
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
Rkns.Wikipedia.Bin.prototype.refresh = function() { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
var _this = this; |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
Rkns.$.ajax({ |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
url: "http://" + _this.lang + ".wikipedia.org/w/api.php?action=query&list=search&srsearch=" + encodeURIComponent(this.search) + "&format=json", |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
dataType: "jsonp", |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
success: function(_data) { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
var _rgxp = new RegExp('('+_this.search.replace(/(\W)/g,'\\$1')+')','gi'), |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
_html = Rkns._(_data.query.search).map(function(_result) { |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
return _this.resultTemplate({ |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
result: _result, |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
wpurl: "http://" + _this.lang + ".wikipedia.org/wiki/" + encodeURI(_result.title.replace(/ /g,"_")), |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
highlightedtitle: _result.title.replace(_rgxp, "<span class='searchmatch'>$1</span>"), |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
wpdesc: Rkns.$('<div>').html(_result.snippet).text(), |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
static_url: _this.renkan.static_url |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
}); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
}).join(""); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
_this.main_$.html(_html); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
_renkan.resizeBins(); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
} |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
}); |
|
267d67791e05
first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
} |