Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/269401
Change subject: Defer main snak SnakView initialization
......................................................................
Defer main snak SnakView initialization
Bug: T125503
Change-Id: Ia7df99fb60c726baf62abae019ac5a3f12cebaf8
---
M view/resources/jquery/wikibase/jquery.wikibase.statementview.js
1 file changed, 21 insertions(+), 14 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/01/269401/1
diff --git a/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
b/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
index c5cef41..f7c31f3 100644
--- a/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
+++ b/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
@@ -106,7 +106,7 @@
},
/**
- * @property {jQuery.wikibase.snakview}
+ * @property {jQuery.wikibase.snakview|null}
* @private
*/
_mainSnakSnakView: null,
@@ -189,17 +189,25 @@
} );
},
+ _getMainSnakSnakView: function() {
+ if ( !this._mainSnakSnakView ) {
+ this._createMainSnak();
+ }
+ return this._mainSnakSnakView;
+ },
+
/**
* @private
- *
- * @param {wikibase.datamodel.Snak|null} [snak=null]
*/
- _createMainSnak: function( snak ) {
+ _createMainSnak: function() {
if ( this.$mainSnak.data( 'snakview' ) ) {
this._mainSnakSnakView = this.$mainSnak.data(
'snakview' );
return;
}
+ var snak = this.options.value
+ ? this.options.value.getClaim().getMainSnak()
+ : this.options.predefined.mainSnak || null;
var self = this;
this.$mainSnak
@@ -395,7 +403,7 @@
this._rankSelector.destroy();
this.$rankSelector.off( '.' + this.widgetName );
- this._mainSnakSnakView.destroy();
+ this._mainSnakSnakView && this._mainSnakSnakView.destroy();
this.$mainSnak.off( '.' + this.widgetName );
this._destroyQualifiersListView();
@@ -439,10 +447,9 @@
: wb.datamodel.Statement.RANK.NORMAL
);
- this._createMainSnak( this.options.value
- ? this.options.value.getClaim().getMainSnak()
- : this.options.predefined.mainSnak || null
- );
+ if ( this.$mainSnak.is( ':empty' ) ) {
+ this._createMainSnak();
+ }
if ( this.isInEditMode()
|| this.options.value
@@ -503,7 +510,7 @@
}
}
- return this._mainSnakSnakView.isInitialValue();
+ return this._getMainSnakSnakView().isInitialValue();
},
/**
@@ -515,7 +522,7 @@
* @return {wikibase.datamodel.Statement|null}
*/
_instantiateStatement: function( guid ) {
- var mainSnak = this._mainSnakSnakView.snak();
+ var mainSnak = this._getMainSnakSnakView().snak();
if ( !mainSnak ) {
return null;
@@ -641,7 +648,7 @@
.fail( deferred.reject );
} );
- this._mainSnakSnakView.startEditing();
+ this._getMainSnakSnakView().startEditing();
this._startEditingReferences();
return deferred.promise();
@@ -836,7 +843,7 @@
var response = PARENT.prototype._setOption.apply( this,
arguments );
if ( key === 'disabled' ) {
- this._mainSnakSnakView.option( key, value );
+ this._getMainSnakSnakView().option( key, value );
if ( this._qualifiers ) {
this._qualifiers.option( key, value );
}
@@ -851,7 +858,7 @@
* @inheritdoc
*/
focus: function() {
- this._mainSnakSnakView.focus();
+ this._getMainSnakSnakView().focus();
}
} );
--
To view, visit https://gerrit.wikimedia.org/r/269401
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia7df99fb60c726baf62abae019ac5a3f12cebaf8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits