jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/355245 )
Change subject: Initialize StatementGroupListView on Lexeme and on Forms
separately
......................................................................
Initialize StatementGroupListView on Lexeme and on Forms separately
Change-Id: Ib69f803c492d7e8521523ef876d67d1517e836f6
---
M resources/jquery.wikibase.lexemeformlistview.js
M resources/jquery.wikibase.lexemeformview.js
M resources/jquery.wikibase.lexemeview.js
M resources/view/ControllerViewFactory.js
M tests/qunit/jquery.wikibase.lexemeformview.tests.js
5 files changed, 45 insertions(+), 25 deletions(-)
Approvals:
WMDE-leszek: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/jquery.wikibase.lexemeformlistview.js
b/resources/jquery.wikibase.lexemeformlistview.js
index f06d4ed..abaea0e 100644
--- a/resources/jquery.wikibase.lexemeformlistview.js
+++ b/resources/jquery.wikibase.lexemeformlistview.js
@@ -59,7 +59,8 @@
_createListView: function () {
this._listview = new $.wikibase.listview( {
listItemAdapter:
this.options.getListItemAdapter( this._removeItem.bind( this ) ),
- listItemNodeName: 'div'
+ listItemNodeName: 'div',
+ value: this.options.value
}, this.element.find( '.wikibase-lexeme-forms' ) );
},
diff --git a/resources/jquery.wikibase.lexemeformview.js
b/resources/jquery.wikibase.lexemeformview.js
index 083a6b9..d4e34eb 100644
--- a/resources/jquery.wikibase.lexemeformview.js
+++ b/resources/jquery.wikibase.lexemeformview.js
@@ -4,6 +4,13 @@
var PARENT = $.ui.EditableTemplatedWidget;
/**
+ * Initializes StatementGroupListView on given DOM element
+ * @callback buildStatementGroupListView
+ * @param {wikibase.datamodel.LexemeForm}
+ * @param {jQuery} JQuery DOM element
+ */
+
+ /**
* @class jQuery.wikibase.lexemeformview
* @extends jQuery.ui.EditableTemplatedWidget
* @license GPL-2.0+
@@ -35,7 +42,12 @@
$grammaticalFeatures:
'.wikibase-lexeme-form-grammatical-features'
},
inputNodeName: 'TEXTAREA',
- buildGrammaticalFeatureView: null
+ buildGrammaticalFeatureView: null,
+
+ /**
+ * @type {buildStatementGroupListView}
+ */
+ buildStatementGroupListView: null
},
_inEditMode: false,
@@ -69,12 +81,18 @@
_create: function () {
PARENT.prototype._create.call( this );
+
this._grammaticalFeatureView =
this._buildGrammaticalFeatureView();
+ this.options.buildStatementGroupListView(
+ this.value(),
+ $( '.wikibase-statementgrouplistview',
this.element )
+ );
if ( !this.value() ) {
this.startEditing();
}
},
+
_buildGrammaticalFeatureView: function
buildGrammaticalFeatureView() {
var self = this;
diff --git a/resources/jquery.wikibase.lexemeview.js
b/resources/jquery.wikibase.lexemeview.js
index a2648ce..a84467f 100644
--- a/resources/jquery.wikibase.lexemeview.js
+++ b/resources/jquery.wikibase.lexemeview.js
@@ -41,7 +41,7 @@
_create: function () {
this._createEntityview();
- this.$statements = $(
'.wikibase-statementgrouplistview', this.element );
+ this.$statements = $( '.wikibase-entityview-main >
.wikibase-statementgrouplistview', this.element );
if ( this.$statements.length === 0 ) {
this.$statements = $( '<div/>' ).appendTo(
this.$main );
}
diff --git a/resources/view/ControllerViewFactory.js
b/resources/view/ControllerViewFactory.js
index c7cf5df..4c8ea30 100644
--- a/resources/view/ControllerViewFactory.js
+++ b/resources/view/ControllerViewFactory.js
@@ -48,28 +48,28 @@
SELF.prototype._api = null;
- SELF.prototype.getEntityView = function ( startEditingCallback, entity,
$entityview ) {
+ SELF.prototype.getEntityView = function ( startEditingCallback, lexeme,
$entityview ) {
return this._getView(
- entity.getType() + 'view',
+ 'lexemeview',
$entityview,
{
buildEntityTermsView:
this.getEntityTermsView.bind( this, startEditingCallback ),
buildSitelinkGroupListView:
this.getSitelinkGroupListView.bind( this, startEditingCallback ),
buildStatementGroupListView:
this.getStatementGroupListView.bind( this, startEditingCallback ),
- buildLexemeFormListView:
this.getLexemeFormListView.bind( this, startEditingCallback ),
- value: entity
+ buildLexemeFormListView:
this.getLexemeFormListView.bind( this, lexeme.forms, startEditingCallback ),
+ value: lexeme
}
);
};
- SELF.prototype.getLexemeFormListView = function ( startEditingCallback
) {
-
+ SELF.prototype.getLexemeFormListView = function ( forms,
startEditingCallback ) {
return this._getView(
'lexemeformlistview',
$( '.wikibase-lexeme-forms-section' ),
{
getListItemAdapter:
this.getListItemAdapterForLexemeFormListView.bind( this, startEditingCallback ),
- getAdder: this._getAdderWithStartEditing(
startEditingCallback )
+ getAdder: this._getAdderWithStartEditing(
startEditingCallback ),
+ value: forms
}
);
};
@@ -82,26 +82,34 @@
}
};
- SELF.prototype.getLexemeFormView = function ( value,
labelFormattingService, $dom, startEditingCallback, removeCallback ) {
+ SELF.prototype.getLexemeFormView = function ( form,
labelFormattingService, $dom, startEditingCallback, removeCallback ) {
var self = this;
var lexemeFormView = this._getView(
- 'lexemeformview',
- $dom,
- { value: value, labelFormattingService:
labelFormattingService, api: self._api }
+ 'lexemeformview',
+ $dom,
+ {
+ value: form || new
wb.lexeme.datamodel.LexemeForm(),
+ labelFormattingService:
labelFormattingService,
+ api: self._api,
+ buildStatementGroupListView:
this.getStatementGroupListView.bind(
+ this,
+ startEditingCallback
+ )
+ }
),
controller = this._getController(
this._toolbarFactory.getToolbarContainer(
lexemeFormView.element ),
lexemeFormView,
fakeModel,
removeCallback,
- value,
+ form,
startEditingCallback
);
// Empty formviews (added with the "add" button) should start
in edit mode
- if ( !value ) {
- controller.startEditing().done( $.proxy(
lexemeFormView, 'focus' ) );
+ if ( !form ) {
+ controller.startEditing().done(
lexemeFormView.focus.bind( lexemeFormView ) );
}
return lexemeFormView;
@@ -157,14 +165,6 @@
listItemWidget: $.wikibase.lexemeformview,
getNewItem: function ( value, element ) {
var $element = $( element );
-
- if ( $element.text() !== '' ) { // FIXME:
values should come from lexeme object
- value = new
wb.lexeme.datamodel.LexemeForm(
- $element.find(
'.wikibase-lexeme-form-id' ).text().match( /\d+/ )[ 0 ],
- $element.find(
'.wikibase-lexeme-form-text' ).text(),
-
self._getExistingGrammaticalFeatures( $element )
- );
- }
view = self.getLexemeFormView(
value || null, // FIXME: if this is
undefined instead of null, things break
diff --git a/tests/qunit/jquery.wikibase.lexemeformview.tests.js
b/tests/qunit/jquery.wikibase.lexemeformview.tests.js
index fb542ca..0fff328 100644
--- a/tests/qunit/jquery.wikibase.lexemeformview.tests.js
+++ b/tests/qunit/jquery.wikibase.lexemeformview.tests.js
@@ -25,6 +25,7 @@
return $.Deferred().resolve( id ).promise();
}
};
+ options.buildStatementGroupListView = function () {};
return $node.lexemeformview( options || {} ).data(
'lexemeformview' );
};
--
To view, visit https://gerrit.wikimedia.org/r/355245
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib69f803c492d7e8521523ef876d67d1517e836f6
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Aleksey Bekh-Ivanov (WMDE) <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits