Jonas Kress (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/371720 )

Change subject: [WIP] Load user examples
......................................................................

[WIP] Load user examples

Load examples from user page and show them in the example dialog.

Change-Id: I879bba9d431ea23f4e55c5697bdcfad3e06369be
---
M wikibase/queryService/api/QuerySamples.js
1 file changed, 43 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/gui 
refs/changes/20/371720/1

diff --git a/wikibase/queryService/api/QuerySamples.js 
b/wikibase/queryService/api/QuerySamples.js
index 254bc07..f344836 100644
--- a/wikibase/queryService/api/QuerySamples.js
+++ b/wikibase/queryService/api/QuerySamples.js
@@ -6,9 +6,11 @@
        'use strict';
 
        var API_SERVER = 'https://www.wikidata.org/',
-               API_ENDPOINT = API_SERVER + 'api/rest_v1/page/html/',
+               API_REST_ENDPOINT = API_SERVER + 'api/rest_v1/page/html/',
+               API_ENDPOINT = API_SERVER + 'w/api.php',
                PAGE_TITLE = 'Wikidata:SPARQL_query_service/queries/examples',
-               PAGE_URL = API_SERVER + 'wiki/' + PAGE_TITLE;
+               PAGE_URL = API_SERVER + 'wiki/' + PAGE_TITLE,
+               MY_PAGE_TITLE = 'SPARQL_QUERIES';
 
        /**
         * QuerySamples API for the Wikibase query service
@@ -34,23 +36,28 @@
         * @return {jQuery.Promise} Object taking list of example queries { 
title:, query: }
         */
        SELF.prototype.getExamples = function () {
+               var deferred = $.Deferred();
+
+               $.when( this._getExamples(), this._getMyExamples() ).done( 
function ( e1, e2 ) {
+                       deferred.resolve( e1.concat( e2 ) );
+               } );
+
+               return deferred.promise();
+       };
+
+
+       SELF.prototype._getExamples = function () {
                var deferred = $.Deferred(),
                        self = this;
 
-               $.ajax( {
-                       url: API_ENDPOINT + encodeURIComponent( PAGE_TITLE + 
'/' + self._language ) + '?redirect=false',
-                       dataType: 'html'
-               } ).done(
+               this._getPageContent( PAGE_TITLE + '/' + this._language ).done(
                        function ( data ) {
                                deferred.resolve( self._parseHTML( data ) );
                        }
                ).fail(
                        function() {
                                // retry without language
-                               $.ajax( {
-                                       url: API_ENDPOINT + encodeURIComponent( 
PAGE_TITLE ) + '?redirect=false',
-                                       dataType: 'html'
-                               } ).done(
+                               self._getPageContent(  PAGE_TITLE ).done(
                                        function ( data ) {
                                                deferred.resolve( 
self._parseHTML( data ) );
                                        }
@@ -58,7 +65,32 @@
                        }
                );
 
-               return deferred;
+               return deferred.promise();
+       };
+
+       SELF.prototype._getMyExamples = function () {
+               var deferred = $.Deferred(),
+               self = this;
+
+                $.ajax( {
+                               url: API_ENDPOINT + 
'?action=query&format=json&meta=userinfo',
+                       } ).done( function ( data ) {
+                               var userName = data.query.userinfo.name;
+                               self._getPageContent(  'user:' + userName + 
MY_PAGE_TITLE ).done(
+                                               function ( data ) {
+                                                       deferred.resolve( 
self._parseHTML( data ) );
+                                               }
+                                       ).fail( deferred.reject );
+
+                       } );
+               return deferred.promise();
+       };
+
+       SELF.prototype._getPageContent = function ( page ) {
+               return $.ajax( {
+                       url: API_REST_ENDPOINT + encodeURIComponent( page) + 
'?redirect=false',
+                       dataType: 'html'
+               } )
        };
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/371720
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I879bba9d431ea23f4e55c5697bdcfad3e06369be
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/query/gui
Gerrit-Branch: master
Gerrit-Owner: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to