Jonas Kress (WMDE) has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/368001 )
Change subject: Auto add label variable when datatype of used property wikibase-item ...................................................................... Auto add label variable when datatype of used property wikibase-item This automatically adds a label column to columns containing a wikibase item. Change-Id: I6017ddb5eec84bf199de67a1bfde621185ff75c2 --- M wikibase/queryService/api/Wikibase.js M wikibase/queryService/ui/queryHelper/QueryHelper.js 2 files changed, 59 insertions(+), 24 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/gui refs/changes/01/368001/1 diff --git a/wikibase/queryService/api/Wikibase.js b/wikibase/queryService/api/Wikibase.js index 4a9dac9..3c0b3e4 100644 --- a/wikibase/queryService/api/Wikibase.js +++ b/wikibase/queryService/api/Wikibase.js @@ -14,21 +14,24 @@ continue: 0, languages: LANGUAGE, uselang: LANGUAGE - }; - - var QUERY_LANGUGES = { + }, + QUERY_LANGUGES = { action: 'query', meta: 'siteinfo', format: 'json', siprop: 'languages' - }; - - var QUERY_LABELS = { + }, + QUERY_LABELS = { action: 'wbgetentities', props: 'labels', format: 'json', languages: LANGUAGE, languagefallback: '1' + }, + QUERY_DATATYPE = { + action: 'wbgetentities', + props: 'datatype', + format: 'json' }; /** @@ -101,6 +104,7 @@ /** * Get labels for given entities * + * @param {string|string[]} ids entity ids * @return {jQuery.Promise} */ SELF.prototype.getLabels = function( ids ) { @@ -120,6 +124,29 @@ }; /** + * Get datatype of property + * + * @param {string|} id property id + * @return {jQuery.Promise} + */ + SELF.prototype.getDataType = function( id ) { + var query = QUERY_DATATYPE, + deferred = $.Deferred(); + + query.ids = id; + + this._query( query ).done( function( data ) { + if ( data.entities && data.entities[id] && data.entities[id].datatype ) { + deferred.resolve( data.entities[id].datatype ); + } + deferred.reject(); + + } ).fail( deferred.reject ); + + return deferred.promise(); + }; + + /** * @private */ SELF.prototype._query = function( query ) { diff --git a/wikibase/queryService/ui/queryHelper/QueryHelper.js b/wikibase/queryService/ui/queryHelper/QueryHelper.js index 3647ef4..823785b 100644 --- a/wikibase/queryService/ui/queryHelper/QueryHelper.js +++ b/wikibase/queryService/ui/queryHelper/QueryHelper.js @@ -315,6 +315,12 @@ self._query.addVariable( variable ); } + self._api.getDataType( prop.split( '/' ).pop() ).done( function ( type ) { + if ( type === 'wikibase-item' ) { + self._addLabelVariable( triple ); + } + } ); + $table.append( self._getTripleHtml( triple ) ); if ( self._changeListener ) { @@ -348,6 +354,12 @@ var triple = self._query.addTriple( subject, prop, variable2, true ); self._query.addVariable( variable2 ); + + self._api.getDataType( prop.split( '/' ).pop() ).done( function ( type ) { + if ( type === 'wikibase-item' ) { + self._addLabelVariable( triple ); + } + } ); $table.append( self._getTripleHtml( triple ) ); @@ -450,25 +462,21 @@ title: self._i18n( 'remove-row-title' ) } ); - var $label = $( '<a href="#">' ).addClass( 'fa fa-tag' ).click( function () { - if ( triple.triple.object.startsWith( '?' ) ) { - self._query - .addVariable( triple.triple.object + - 'Label' ); - } else { - self._query - .addVariable( triple.triple.subject + - 'Label' ); - } - if ( self._changeListener ) { - self._changeListener( self ); - } - return false; - } ).tooltip( { - title: self._i18n( 'add-label-title' ) - } ); + return $( '<td class="toolbar">' ).append( $delete ); + }; - return $( '<td class="toolbar">' ).append( $label, $delete ); + /** + * @private + */ + SELF.prototype._addLabelVariable = function( triple ) { + if ( triple.triple.object.startsWith( '?' ) ) { + this._query.addVariable( triple.triple.object + 'Label' ); + } else { + this._query.addVariable( triple.triple.subject + 'Label' ); + } + if ( this._changeListener ) { + this._changeListener( this ); + } }; /** -- To view, visit https://gerrit.wikimedia.org/r/368001 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6017ddb5eec84bf199de67a1bfde621185ff75c2 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