jenkins-bot has submitted this change and it was merged.
Change subject: Hygiene: Create WikiDataApi
......................................................................
Hygiene: Create WikiDataApi
Change-Id: I43077ee1e783a6eb7644bac041657fb9534d6e2f
---
M includes/Resources.php
A javascripts/modules/wikigrok/WikiDataApi.js
M javascripts/modules/wikigrok/WikiGrokDialog.js
3 files changed, 53 insertions(+), 29 deletions(-)
Approvals:
MaxSem: Looks good to me, approved
Jdlrobson: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/Resources.php b/includes/Resources.php
index de899cc..b9437ec 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -902,6 +902,7 @@
'modules/wikigrok/WikiGrokMoreInfo.hogan',
),
'scripts' => array(
+ 'javascripts/modules/wikigrok/WikiDataApi.js',
'javascripts/modules/wikigrok/WikiGrokDialog.js',
'javascripts/modules/wikigrok/WikiGrokMoreInfo.js',
'javascripts/modules/wikigrok/wikigrokeval.js',
diff --git a/javascripts/modules/wikigrok/WikiDataApi.js
b/javascripts/modules/wikigrok/WikiDataApi.js
new file mode 100644
index 0000000..18280b0
--- /dev/null
+++ b/javascripts/modules/wikigrok/WikiDataApi.js
@@ -0,0 +1,28 @@
+( function( M ) {
+ var Api = M.require( 'api' ).Api, WikiDataApi;
+ /**
+ * @class EditorApi
+ * @extends Api
+ */
+ WikiDataApi = Api.extend( {
+ apiUrl: 'https://www.wikidata.org/w/api.php',
+
+ initialize: function() {
+ Api.prototype.initialize.apply( this, arguments );
+ },
+ getOccupations: function( occupationId ) {
+ return this.ajax( {
+ action: 'wbgetentities',
+ props: 'labels',
+ ids: occupationId
+ },
+ {
+ url: this.apiUrl,
+ dataType: 'jsonp'
+ } );
+ }
+ } );
+
+ M.define( 'modules/wikigrok/WikiDataApi', WikiDataApi );
+
+}( mw.mobileFrontend ) );
diff --git a/javascripts/modules/wikigrok/WikiGrokDialog.js
b/javascripts/modules/wikigrok/WikiGrokDialog.js
index e082760..cadf2e4 100644
--- a/javascripts/modules/wikigrok/WikiGrokDialog.js
+++ b/javascripts/modules/wikigrok/WikiGrokDialog.js
@@ -2,6 +2,7 @@
M.assertMode( [ 'beta', 'alpha' ] );
var Panel = M.require( 'Panel' ),
+ WikiDataApi = M.require( 'modules/wikigrok/WikiDataApi' ),
schema = M.require( 'loggingSchemas/mobileWebWikiGrok' ),
WikiGrokDialog;
@@ -32,6 +33,11 @@
noticeMsg: '<a class="wg-notice-link"
href="#/wikigrok/about">Tell me more</a>'
},
template: M.template.get(
'modules/wikigrok/WikiGrokDialog.hogan' ),
+
+ initialize: function() {
+ this.apiWikiData = new WikiDataApi();
+ Panel.prototype.initialize.apply( this, arguments );
+ },
log: function( action ) {
var data = {
@@ -69,36 +75,25 @@
options.name = mw.config.get(
'wgTitle' ).replace( / \(.+\)$/, '' );
// Get the name of the
occupation from Wikidata.
- $.ajax( {
- type: 'get',
- url:
'https://www.wikidata.org/w/api.php',
- data: {
- 'action':
'wbgetentities',
- 'props':
'labels',
- 'ids':
options.occupationId,
- 'format': 'json'
- },
- dataType: 'jsonp',
- success: function( data
) {
- var vowels = [
'a', 'e', 'i', 'o', 'u' ];
- if (
data.entities[options.occupationId].labels.en.value !== undefined ) {
- //
Re-render with new content for 'Question' step
-
options.beginQuestions = true;
-
options.occupation = data.entities[options.occupationId].labels.en.value;
- // Hack
for English prototype
- if (
$.inArray( options.occupation.charAt(0), vowels ) === -1 ) {
-
options.contentMsg = 'Was ' + options.name + ' a ' + options.occupation + '?';
- } else {
-
options.contentMsg = 'Was ' + options.name + ' an ' + options.occupation + '?';
- }
-
options.buttons = [
-
{ classes: 'yes inline mw-ui-button mw-ui-progressive', label: 'Yes' },
-
{ classes: 'not-sure inline mw-ui-button', label: 'Not Sure' },
-
{ classes: 'no inline mw-ui-button mw-ui-progressive', label: 'No' }
- ];
-
options.noticeMsg = 'All submissions are <a class="wg-notice-link"
href="#/wikigrok/about">released freely</a>';
-
self.render( options );
+
self.apiWikiData.getOccupations( options.occupationId ).done( function( data ) {
+ var vowels = [ 'a',
'e', 'i', 'o', 'u' ];
+ if (
data.entities[options.occupationId].labels.en.value !== undefined ) {
+ // Re-render
with new content for 'Question' step
+
options.beginQuestions = true;
+
options.occupation = data.entities[options.occupationId].labels.en.value;
+ // Hack for
English prototype
+ if ( $.inArray(
options.occupation.charAt(0), vowels ) === -1 ) {
+
options.contentMsg = 'Was ' + options.name + ' a ' + options.occupation + '?';
+ } else {
+
options.contentMsg = 'Was ' + options.name + ' an ' + options.occupation + '?';
}
+ options.buttons
= [
+ {
classes: 'yes inline mw-ui-button mw-ui-progressive', label: 'Yes' },
+ {
classes: 'not-sure inline mw-ui-button', label: 'Not Sure' },
+ {
classes: 'no inline mw-ui-button mw-ui-progressive', label: 'No' }
+ ];
+
options.noticeMsg = 'All submissions are <a class="wg-notice-link"
href="#/wikigrok/about">released freely</a>';
+ self.render(
options );
}
} );
}
--
To view, visit https://gerrit.wikimedia.org/r/162131
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I43077ee1e783a6eb7644bac041657fb9534d6e2f
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: Awjrichards <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits