diff options
Diffstat (limited to 'wikipedia')
-rw-r--r-- | wikipedia/PrebuiltArticlesPage.js | 21 | ||||
-rw-r--r-- | wikipedia/views/domain_wiki_view.js | 2 | ||||
-rw-r--r-- | wikipedia/views/wikipedia_view.js | 7 |
3 files changed, 26 insertions, 4 deletions
diff --git a/wikipedia/PrebuiltArticlesPage.js b/wikipedia/PrebuiltArticlesPage.js index 2578648..f5c133b 100644 --- a/wikipedia/PrebuiltArticlesPage.js +++ b/wikipedia/PrebuiltArticlesPage.js @@ -15,11 +15,17 @@ const PrebuiltArticlesPage = new Lang.Class({ 'Article title', 'Human-readable title for the article to be displayed', GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT, + ''), + 'article-uri': GObject.ParamSpec.string('article-uri', + 'Article URI', + 'Wikipedia URI for the article to be displayed', + GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT, '') }, _init: function(props) { this._article_title = null; + this._article_uri = null; this._wiki_view = new WikipediaView.WikipediaView({ expand:true, @@ -40,8 +46,19 @@ const PrebuiltArticlesPage = new Lang.Class({ set article_title(value) { this._article_title = value; + }, + + get article_uri() { + return this._article_uri; + }, + + set article_uri(value) { + this._article_uri = value; if(value !== null && value !== "") { - this._wiki_view.loadArticleByTitle(this._article_title); + this._wiki_view.loadArticleByTitle(this._article_uri, this._article_title); } - } + }, + + + });
\ No newline at end of file diff --git a/wikipedia/views/domain_wiki_view.js b/wikipedia/views/domain_wiki_view.js index 84af542..60bb000 100644 --- a/wikipedia/views/domain_wiki_view.js +++ b/wikipedia/views/domain_wiki_view.js @@ -181,7 +181,9 @@ const DomainWikiView = new Lang.Class({ }, set_article_info: function(article){ + // Note: Must set article title first this._article_view.article_title = article.title; + this._article_view.article_uri = article.uri; }, transition_page: function(transition_type, page_name){ diff --git a/wikipedia/views/wikipedia_view.js b/wikipedia/views/wikipedia_view.js index e5762a6..b8aaff0 100644 --- a/wikipedia/views/wikipedia_view.js +++ b/wikipedia/views/wikipedia_view.js @@ -61,7 +61,10 @@ const WikipediaView = new Lang.Class({ return html; }, - loadArticleByTitle: function(title) { + loadArticleByTitle: function(url, human_title) { + let parts = url.split("/"); + let suffix = parts[parts.length - 1]; + let title = decodeURI(suffix.replace("_", " ", 'g')); let request = Soup.Message.new("GET", getPageURL + title); this._httpSession.queue_message(request, Lang.bind(this, function(_httpSession, message) { if(message.status_code !== 200) { @@ -76,7 +79,7 @@ const WikipediaView = new Lang.Class({ let cur_exec = Utils.get_path_for_relative_path("."); let image_path = cur_exec + "/web_view/article_images/"; - let documentHTML = this._get_meta_html() + this._get_body_html(articleHTML, title, image_path); + let documentHTML = this._get_meta_html() + this._get_body_html(articleHTML, human_title, image_path); let sheets = new Array("first_load.css", "second_load.css","main.css","wikipedia.css","nolinks.css"); documentHTML = this._get_style_sheet_html(current_dir, sheets) + documentHTML; |