Jonas Kress (WMDE) has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/369862 )
Change subject: Query Helper - Result Preview ...................................................................... Query Helper - Result Preview Show a preview of the result when changing query with the Query Helper Bug: T172328 Change-Id: I7a1427b0fb3968ccd6fbf58499b282f5456b9d1a --- M i18n/en.json M i18n/qqq.json M index.html M wikibase/queryService/ui/App.js M wikibase/queryService/ui/ResultView.js 5 files changed, 60 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/gui refs/changes/62/369862/1 diff --git a/i18n/en.json b/i18n/en.json index 1c53fb0..300f8dc 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -77,5 +77,7 @@ "wdqs-action-malformed-query": "Query is malformed", "wdqs-action-server-error": "Server error", "wdqs-action-unknow-error": "Unknown error", + "wdqs-action-preview": "This is a preview", + "wdqs-action-preview-failed": "Could not display preview", "wdqs-result-map-layers-all": "All layers" } diff --git a/i18n/qqq.json b/i18n/qqq.json index a9309b5..6c445d8 100644 --- a/i18n/qqq.json +++ b/i18n/qqq.json @@ -79,5 +79,7 @@ "wdqs-action-malformed-query": "Label for progressbar on syntax error", "wdqs-action-server-error": "Label for progressbar displaying server error", "wdqs-action-unknow-error": "Label for progressbar displaying unknown error", + "wdqs-action-preview": "Label for progressbar displaying preview", + "wdqs-action-preview-failed": "Label for progressbar displaying no preview", "wdqs-result-map-layers-all": "Label for all layers in layer control on map view" } diff --git a/index.html b/index.html index 528172c..dd55f21 100644 --- a/index.html +++ b/index.html @@ -175,9 +175,6 @@ </form> </div> </div> - <div class="row action-bar"> - <div class="message"></div> - </div> <noscript> <div class="row action-bar" style="display: block"> <div class="message"> @@ -233,6 +230,9 @@ </ul> </nav> </div> + <div class="row action-bar"> + <div class="message"></div> + </div> <div class="row"> <div id="query-result">Test result</div> </div> diff --git a/wikibase/queryService/ui/App.js b/wikibase/queryService/ui/App.js index 0a66314..0b9625d 100644 --- a/wikibase/queryService/ui/App.js +++ b/wikibase/queryService/ui/App.js @@ -197,6 +197,10 @@ } this._queryHelper.setChangeListener( function( ve ) { self._editor.setValue( ve.getQuery() ); + + _.debounce( function () { + self._resultView.drawPreview( ve.getQuery() ); + }, 1000 )(); } ); $( '.query-helper' ).resizable( { diff --git a/wikibase/queryService/ui/ResultView.js b/wikibase/queryService/ui/ResultView.js index 9dcf0a7..726d855 100644 --- a/wikibase/queryService/ui/ResultView.js +++ b/wikibase/queryService/ui/ResultView.js @@ -7,6 +7,9 @@ var TRACKING_NAMESPACE = 'wikibase.queryService.ui.app.'; + var PREVIEW_TIMEOUT = 1000, + PREVIEW_LIMIT = 20; + /** * A result view for sparql queries * @@ -29,6 +32,12 @@ * @private */ SELF.prototype._query = null; + + /** + * @property {string} + * @private + */ + SELF.prototype._sparqlQuery = null; /** * @property {wikibase.queryService.api.Sparql} @@ -180,6 +189,9 @@ } this._actionBar = new wikibase.queryService.ui.toolbar.Actionbar( $( '.action-bar' ) ); + + this._sparqlQuery = this._query = new wikibase.queryService.ui.queryHelper.SparqlQuery(); + this._initResultBrowserMenu(); }; @@ -218,10 +230,47 @@ .done( function () { self._handleQueryResult(); deferred.resolve(); + self._actionBar.hide(); } ) .fail( function() { var error = self._handleQueryError(); deferred.reject( error ); + } ); + + return deferred.promise(); + }; + + /** + * Render a preview of the given SPARQL query + * + * @param {String} query + * @return {JQuery.Promise} + */ + SELF.prototype.drawPreview = function( query ) { + var self = this, + deferred = $.Deferred(); + + this._query = query; + + this._actionBar.show( 'wdqs-action-query', '', 'info', 100 ); + + $( '#query-result' ).empty().hide(); + $( '.result' ).hide(); + $( '#query-error' ).hide(); + + var prefixes = wikibase.queryService.RdfNamespaces.ALL_PREFIXES; + this._sparqlQuery.parse( query, prefixes ); + this._sparqlQuery.setLimit( PREVIEW_LIMIT ); + + this._sparqlApi.query( this._sparqlQuery.getQueryString(), PREVIEW_TIMEOUT ) + .done( function () { + self._handleQueryResult(); + deferred.resolve(); + self._actionBar.show( 'wdqs-action-preview', '', 'default' ); + } ) + .fail( function() { + self._actionBar.show( 'wdqs-action-preview-failed', '', 'default' ); + deferred.reject(); } ); return deferred.promise(); @@ -372,7 +421,6 @@ try { $( '#query-result' ).show(); resultBrowser.draw( $( '#query-result' ) ); - self._actionBar.hide(); } catch ( e ) { self._actionBar.show( 'wdqs-action-error-display', '', 'warning' ); window.console.error( e ); -- To view, visit https://gerrit.wikimedia.org/r/369862 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7a1427b0fb3968ccd6fbf58499b282f5456b9d1a 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