summaryrefslogtreecommitdiff
path: root/wikipedia
diff options
context:
space:
mode:
authorRory MacQueen <rorymacqueen@gmail.com>2013-10-08 14:04:41 -0700
committerRory MacQueen <rorymacqueen@gmail.com>2013-10-08 16:28:21 -0700
commit799d167e39554b108c20c2619020256ab06d72a0 (patch)
tree0f2636ad8d39d16fb599ae3506b63d2fc5730d3a /wikipedia
parent210bd20ea29fa4b578f83af0213636cf3e3da77e (diff)
Domain wiki apps use language code
Previously, domain wiki apps were not sensitive to the language their articles were in. Now, they get that language from the JSON file name and use that to tell nodejs which language database to use [endlessm/eos-sdk#345]
Diffstat (limited to 'wikipedia')
-rw-r--r--wikipedia/PrebuiltArticlesPage.js6
-rw-r--r--wikipedia/WikipediaWebView.js19
-rw-r--r--wikipedia/presenters/domain_wiki_presenter.js8
-rw-r--r--wikipedia/views/domain_wiki_view.js4
4 files changed, 32 insertions, 5 deletions
diff --git a/wikipedia/PrebuiltArticlesPage.js b/wikipedia/PrebuiltArticlesPage.js
index 756fee6..5cd25e2 100644
--- a/wikipedia/PrebuiltArticlesPage.js
+++ b/wikipedia/PrebuiltArticlesPage.js
@@ -41,10 +41,14 @@ const PrebuiltArticlesPage = new Lang.Class({
context.add_class(EndlessWikipedia.STYLE_CLASS_ARTICLES_PAGE);
},
- setShowableLinks: function(linked_articles){
+ setShowableLinks: function(linked_articles) {
this._wiki_view.setShowableLinks(linked_articles);
},
+ set_lang: function(lang) {
+ this._wiki_view.lang = lang;
+ },
+
get article_title() {
return this._article_title;
},
diff --git a/wikipedia/WikipediaWebView.js b/wikipedia/WikipediaWebView.js
index c942fbd..b5df01e 100644
--- a/wikipedia/WikipediaWebView.js
+++ b/wikipedia/WikipediaWebView.js
@@ -33,7 +33,12 @@ const WikipediaWebView = new Lang.Class({
'Hide article links',
'A boolean to determine whether links should be shown',
GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT,
- false)
+ false),
+ 'lang': GObject.ParamSpec.string('lang',
+ 'Language code',
+ 'Specifies the language to be used in this wiki webview',
+ GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT,
+ "")
},
_init: function(params) {
@@ -71,13 +76,21 @@ const WikipediaWebView = new Lang.Class({
},
loadArticleByTitle: function(title) {
- let params = {"title":title, "hideLinks":this.hide_links};
+ let params = {
+ title: title,
+ hideLinks: this.hide_links,
+ lang: this.lang
+ };
let url = this._getFullURL(hostName + getPageByTitleURI, params);
this.load_uri(url);
},
loadArticleBySearchQuery: function(query) {
- let params = {"query":query, "hideLinks":this.hide_links};
+ let params = {
+ query: query,
+ hideLinks: this.hide_links,
+ lang: this.lang
+ };
let url = this._getFullURL(hostName + getPageByQueryURI, params);
this.load_uri(url);
},
diff --git a/wikipedia/presenters/domain_wiki_presenter.js b/wikipedia/presenters/domain_wiki_presenter.js
index 2ddaa5d..3e34e1e 100644
--- a/wikipedia/presenters/domain_wiki_presenter.js
+++ b/wikipedia/presenters/domain_wiki_presenter.js
@@ -14,6 +14,12 @@ function _resourceUriToPath(uri) {
throw new Error('Resource URI did not start with "resource://"');
}
+function _pathnameToLanguage(uri) {
+ let parts = uri.split("/");
+ let filename = parts[parts.length-1];
+ return filename.substring(0, 2);
+}
+
const DomainWikiPresenter = new Lang.Class({
Name: "DomainWikiPresenter",
Extends: GObject.Object,
@@ -53,7 +59,7 @@ const DomainWikiPresenter = new Lang.Class({
initAppInfoFromJsonFile: function(filename) {
let app_content = JSON.parse(Utils.load_file_from_resource(filename));
- this._lang_code = filename.substring(0, 2);
+ this._domain_wiki_view.set_lang(_pathnameToLanguage(filename));
let categories = app_content['categories'];
let cat_length = categories.length
let category_models = new Array();
diff --git a/wikipedia/views/domain_wiki_view.js b/wikipedia/views/domain_wiki_view.js
index ca0d6bd..e5ed378 100644
--- a/wikipedia/views/domain_wiki_view.js
+++ b/wikipedia/views/domain_wiki_view.js
@@ -179,6 +179,10 @@ const DomainWikiView = new Lang.Class({
this._article_view.article_uri = article.uri;
},
+ set_lang: function(lang) {
+ this._article_view.set_lang(lang);
+ },
+
transition_page: function(transition_type, page_name){
this._window.page_manager.transition_type = transition_type;
this._window.page_manager.visible_page_name = page_name;