jenkins-bot has submitted this change and it was merged. Change subject: Unify startEditing and stopEditing in EditableTemplatedWidget ......................................................................
Unify startEditing and stopEditing in EditableTemplatedWidget Change-Id: Ic5d48d629131e350ae2bd33e032b8181963cf1c0 --- M view/resources/jquery/ui/jquery.ui.EditableTemplatedWidget.js M view/resources/jquery/wikibase/jquery.wikibase.aliasesview.js M view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js M view/resources/jquery/wikibase/jquery.wikibase.entitytermsforlanguageview.js M view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js M view/resources/jquery/wikibase/jquery.wikibase.labelview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js M view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js M view/resources/jquery/wikibase/jquery.wikibase.statementview.RankSelector.js M view/resources/jquery/wikibase/jquery.wikibase.statementview.js 10 files changed, 83 insertions(+), 136 deletions(-) Approvals: Tobias Gritschacher: Looks good to me, approved Jonas Kress (WMDE): Looks good to me, approved Thiemo Mättig (WMDE): Looks good to me, approved jenkins-bot: Verified diff --git a/view/resources/jquery/ui/jquery.ui.EditableTemplatedWidget.js b/view/resources/jquery/ui/jquery.ui.EditableTemplatedWidget.js index 5625a88..1b7ca24 100644 --- a/view/resources/jquery/ui/jquery.ui.EditableTemplatedWidget.js +++ b/view/resources/jquery/ui/jquery.ui.EditableTemplatedWidget.js @@ -61,16 +61,6 @@ }, /** - * Draws the widget according to whether it is in edit mode or not. - * - * @return {Object} jQuery.Promise - * No resolved parameters. - * Rejected parameters: - * - {Error} - */ - draw: util.abstractMember, - - /** * Starts the widget's edit mode. * * @return {Object} jQuery.Promise @@ -79,26 +69,22 @@ * - {Error} */ startEditing: function() { - var deferred = $.Deferred(); - if ( this.isInEditMode() ) { - return deferred.resolve().promise(); + return $.Deferred().resolve().promise(); } var self = this; - self.element.addClass( 'wb-edit' ); + this.element.addClass( 'wb-edit' ); - this.draw() + return this._startEditing() .done( function() { self._trigger( 'afterstartediting' ); - deferred.resolve(); - } ) - .fail( function( error ) { - deferred.reject( error ); } ); + }, - return deferred.promise(); + _startEditing: function() { + return $.Deferred().resolve().promise(); }, /** @@ -112,39 +98,25 @@ * - {Error} */ stopEditing: function( dropValue ) { - var done = $.Deferred().resolve().promise(); if ( !this.isInEditMode() ) { - return done; + return $.Deferred().resolve().promise(); } - this._afterStopEditing( dropValue ); - return done; - }, - /** - * @param {boolean} dropValue - * @return {Object} jQuery.Promise - * No resolved parameters. - * Rejected parameters: - * - {Error} - */ - _afterStopEditing: function( dropValue ) { - var self = this, - deferred = $.Deferred(); + this.element.removeClass( 'wb-edit' ); - self.element.removeClass( 'wb-edit' ); - - this.draw() + var self = this; + return this._stopEditing( dropValue ) .done( function() { self.enable(); self._trigger( 'afterstopediting', null, [dropValue] ); - deferred.resolve(); } ) .fail( function( error ) { self.setError( error ); - deferred.reject( error ); } ); + }, - return deferred.promise(); + _stopEditing: function( dropValue ) { + return $.Deferred().resolve().promise(); }, /** diff --git a/view/resources/jquery/wikibase/jquery.wikibase.aliasesview.js b/view/resources/jquery/wikibase/jquery.wikibase.aliasesview.js index df8a473..a7093f4 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.aliasesview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.aliasesview.js @@ -159,6 +159,16 @@ } ); }, + _startEditing: function() { + // FIXME: This could be much faster + return this.draw(); + }, + + _stopEditing: function() { + // FIXME: This could be much faster + return this.draw(); + }, + /** * @inheritdoc * @protected diff --git a/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js b/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js index 2e2f271..86da940 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.descriptionview.js @@ -161,6 +161,16 @@ return done; }, + _startEditing: function() { + // FIXME: This could be much faster + return this.draw(); + }, + + _stopEditing: function() { + // FIXME: This could be much faster + return this.draw(); + }, + /** * @see jQuery.ui.TemplatedWidget._setOption */ diff --git a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsforlanguageview.js b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsforlanguageview.js index b4e4a89..862907c 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsforlanguageview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsforlanguageview.js @@ -170,32 +170,24 @@ } ); }, - draw: function() { - return $.Deferred().resolve().promise(); - }, - /** * Puts the widget into edit mode. */ - startEditing: function() { - if ( this.isInEditMode() ) { - return $.Deferred().resolve().promise(); - } - + _startEditing: function() { this.$labelview.data( 'labelview' ).startEditing(); this.$descriptionview.data( 'descriptionview' ).startEditing(); this.$aliasesview.data( 'aliasesview' ).startEditing(); - return PARENT.prototype.startEditing.call( this ); + return $.Deferred().resolve().promise(); }, /** * @param {boolean} [dropValue] */ - _afterStopEditing: function( dropValue ) { + _stopEditing: function( dropValue ) { this.$labelview.data( 'labelview' ).stopEditing( dropValue ); this.$descriptionview.data( 'descriptionview' ).stopEditing( dropValue ); this.$aliasesview.data( 'aliasesview' ).stopEditing( dropValue ); - return PARENT.prototype._afterStopEditing.call( this, dropValue ); + return $.Deferred().resolve().promise(); }, /** diff --git a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js index 022d770..895c3f3 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js @@ -337,23 +337,19 @@ } ); }, - /** - * @inheritdoc - */ - startEditing: function() { + _startEditing: function() { this._getEntitytermsforlanguagelistview().startEditing(); - - return PARENT.prototype.startEditing.call( this ); + return this.draw(); }, /** * @param {boolean} dropValue */ - _afterStopEditing: function( dropValue ) { + _stopEditing: function( dropValue ) { + this.draw(); var self = this; return this._getEntitytermsforlanguagelistview().stopEditing( dropValue ).done( function() { self.notification(); - return PARENT.prototype._afterStopEditing.call( self ); } ); }, diff --git a/view/resources/jquery/wikibase/jquery.wikibase.labelview.js b/view/resources/jquery/wikibase/jquery.wikibase.labelview.js index c84f2c5..f94a4dd 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.labelview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.labelview.js @@ -168,15 +168,17 @@ return deferred.resolve().promise(); }, - /** - * @inheritdoc - * @protected - */ - _afterStopEditing: function( dropValue ) { + _startEditing: function() { + // FIXME: This could be much faster + return this.draw(); + }, + + _stopEditing: function( dropValue ) { if ( dropValue && this.options.value.getText() === '' ) { this.$text.children( '.' + this.widgetFullName + '-input' ).val( '' ); } - return PARENT.prototype._afterStopEditing.call( this, dropValue ); + // FIXME: This could be much faster + return this.draw(); }, /** diff --git a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js index f8078c9..f56a7b3 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js @@ -201,25 +201,15 @@ return value; }, - /** - * @see jQuery.ui.EditableTemplatedWidget.startEditing - */ - startEditing: function() { - var self = this; - return this.$sitelinklistview.data( 'sitelinklistview' ).startEditing().done( function() { - return PARENT.prototype.startEditing.call( self ); - } ); + _startEditing: function() { + return this.$sitelinklistview.data( 'sitelinklistview' ).startEditing(); }, - /** - * @see jQuery.ui.EditableTemplatedWidget._afterStopEditing - */ - _afterStopEditing: function( dropValue ) { + _stopEditing: function( dropValue ) { var self = this; return this.$sitelinklistview.data( 'sitelinklistview' ).stopEditing( dropValue ) .done( function() { self.notification(); - return PARENT.prototype._afterStopEditing.call( self ); } ); }, diff --git a/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js b/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js index 36b8955..8b1bfda 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinklistview.js @@ -303,10 +303,7 @@ return $parenthesesMsg.contents(); }, - /** - * @see jQuery.ui.EditableTemplatedWidget.startEditing - */ - startEditing: function() { + _startEditing: function() { var self = this; this._eventSingletonManager.register( @@ -326,7 +323,7 @@ self._startEditingInViewport(); - return PARENT.prototype.startEditing.call( this ); + return $.Deferred().resolve().promise(); }, _startEditingInViewport: function() { @@ -372,21 +369,14 @@ return PARENT.prototype.stopEditing.call( this, dropValue ); }, - /** - * @see jQuery.ui.EditableTemplatedWidget._afterStopEditing - */ - _afterStopEditing: function( dropValue ) { - var self = this; - - return PARENT.prototype._afterStopEditing.call( this, dropValue ) - .done( function() { - self._refreshCounter(); - self._eventSingletonManager.unregister( - self, - window, - namespaceEventNames( 'scroll touchmove resize', self.widgetName ) - ); - } ); + _stopEditing: function( dropValue ) { + this._refreshCounter(); + this._eventSingletonManager.unregister( + this, + window, + namespaceEventNames( 'scroll touchmove resize', this.widgetName ) + ); + return $.Deferred().resolve().promise(); }, _removeIncompleteSiteLinks: function() { diff --git a/view/resources/jquery/wikibase/jquery.wikibase.statementview.RankSelector.js b/view/resources/jquery/wikibase/jquery.wikibase.statementview.RankSelector.js index 65af667..79cb7a0 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.statementview.RankSelector.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.statementview.RankSelector.js @@ -312,15 +312,16 @@ return $.Deferred().resolve().promise(); }, - /** - * @inheritdoc - */ - stopEditing: function( dropValue ) { + _startEditing: function() { + return this.draw(); + }, + + _stopEditing: function( dropValue ) { // Hide the menu the rank selector currently references to: if ( $menu && $menu.data( this.widgetName ) === this ) { $menu.hide(); } - return PARENT.prototype.stopEditing.call( this, dropValue ); + return this.draw(); } } ); diff --git a/view/resources/jquery/wikibase/jquery.wikibase.statementview.js b/view/resources/jquery/wikibase/jquery.wikibase.statementview.js index eafc65f..bbff224 100644 --- a/view/resources/jquery/wikibase/jquery.wikibase.statementview.js +++ b/view/resources/jquery/wikibase/jquery.wikibase.statementview.js @@ -597,16 +597,8 @@ this.$refsHeading.find( '.ui-toggler-label' ).empty().append( $counterMsg ); }, - /** - * @inheritdoc - */ - startEditing: function() { + _startEditing: function() { var self = this; - - if ( this.isInEditMode() ) { - return $.Deferred().resolve().promise(); - } - this._qualifierAdder = this.options.getAdder( function() { var listview = self._qualifiers; @@ -621,18 +613,14 @@ mw.msg( 'wikibase-addqualifier' ) ); - // We need to initialize the main snak before calling PARENT::startEditing, - // since that triggers 'afterstartediting' which tries to set focus into - // the main snak - this._createMainSnak(); - return this._mainSnakSnakView.startEditing().then( function() { - // PARENT::startEditing calls this.draw - return PARENT.prototype.startEditing.call( self ); - } ).then( function() { - self._rankSelector.startEditing(); - self._qualifiers.startEditing(); - self._startEditingReferences(); - } ); + return $.when( + this._createMainSnak(), + this.draw(), + this._mainSnakSnakView.startEditing(), + this._rankSelector.startEditing(), + this._qualifiers.startEditing(), + this._startEditingReferences() + ); }, /** @@ -653,19 +641,15 @@ } }, - /** - * @inheritdoc - * @protected - */ - _afterStopEditing: function( dropValue ) { - this._mainSnakSnakView.stopEditing( dropValue ); - this._stopEditingQualifiers( dropValue ); - this._rankSelector.stopEditing( dropValue ); - + _stopEditing: function( dropValue ) { // FIXME: Should not be necessary if _setOption would do the right thing for values this._recreateReferences(); + this._stopEditingQualifiers( dropValue ); - return PARENT.prototype._afterStopEditing.call( this, dropValue ); + return $.when( + this._mainSnakSnakView.stopEditing( dropValue ), + this._rankSelector.stopEditing( dropValue ) + ); }, /** -- To view, visit https://gerrit.wikimedia.org/r/298768 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic5d48d629131e350ae2bd33e032b8181963cf1c0 Gerrit-PatchSet: 11 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Heine <m...@adrianheine.de> Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de> Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits