WMDE-leszek has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/397838 )
Change subject: Update the base revision after saving a form with a FormChanger
......................................................................
Update the base revision after saving a form with a FormChanger
Bug: T181253
Depends-On: Id3899764e6a76889f9344d8d6b79664445d35128
Change-Id: I7da9e552c7be5395b4b31ef2cef3e70e7cc6c47c
---
M resources/entityChangers/FormChanger.js
M resources/view/ControllerViewFactory.js
M tests/qunit/entityChangers/FormChanger.tests.js
3 files changed, 49 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme
refs/changes/38/397838/2
diff --git a/resources/entityChangers/FormChanger.js
b/resources/entityChangers/FormChanger.js
index 45adf33..67a2f40 100644
--- a/resources/entityChangers/FormChanger.js
+++ b/resources/entityChangers/FormChanger.js
@@ -12,9 +12,11 @@
*/
var SELF = wb.lexeme.entityChangers.FormChanger = function
WbLexemeFormChanger(
api,
+ revisionStore,
lexemeId
) {
this.api = api;
+ this.revisionStore = revisionStore;
this.lexemeId = lexemeId;
};
@@ -24,6 +26,8 @@
* @private
*/
api: null,
+
+ revisionStore: null,
/**
* @type {string}
@@ -37,7 +41,8 @@
*/
save: function ( form ) {
var formSerializer = new
wb.lexeme.serialization.FormSerializer(),
- lexemeDeserializer = new
wb.lexeme.serialization.LexemeDeserializer();
+ lexemeDeserializer = new
wb.lexeme.serialization.LexemeDeserializer(),
+ self = this;
if ( form.getId() ) {
return $.Deferred().resolve( form
).promise();// TODO: implement edit form
@@ -61,6 +66,8 @@
errorformat: 'plaintext',
bot: 1
} ).then( function ( data ) {
+ self.revisionStore._revisions.baseRevision =
data.lastrevid;
+
return lexemeDeserializer.deserializeForm(
data.form );
} ).catch( function ( code, response ) {
throw convertPlainTextErrorsToRepoApiError(
response.errors );
diff --git a/resources/view/ControllerViewFactory.js
b/resources/view/ControllerViewFactory.js
index 3abe1db..0ba982b 100644
--- a/resources/view/ControllerViewFactory.js
+++ b/resources/view/ControllerViewFactory.js
@@ -138,7 +138,7 @@
controller = this._getController(
this._toolbarFactory.getToolbarContainer(
formView.element ),
formView,
- new wb.lexeme.entityChangers.FormChanger(
this._api, lexemeId ),
+ new wb.lexeme.entityChangers.FormChanger(
this._api, this._entityChangersFactory.getRevisionStore(), lexemeId ),
removeCallback.bind( null, formView ),
form,
startEditingCallback
diff --git a/tests/qunit/entityChangers/FormChanger.tests.js
b/tests/qunit/entityChangers/FormChanger.tests.js
index 332fd24..96716e4 100644
--- a/tests/qunit/entityChangers/FormChanger.tests.js
+++ b/tests/qunit/entityChangers/FormChanger.tests.js
@@ -18,9 +18,14 @@
var api = {
postWithToken: postWithToken
};
+ var revisionStore = {
+ _revisions: {
+ baseRevision: 1
+ }
+ };
var lexemeId = 'L11';
- var changer = new FormChanger( api, lexemeId );
+ var changer = new FormChanger( api, revisionStore, lexemeId );
var representations = new TermMap( { en: new Term( 'en', 'test
representation' ) } );
var form = new Form( null, representations, [ 'Q1', 'Q2' ] );
@@ -66,8 +71,13 @@
} ).promise();
}
};
+ var revisionStore = {
+ _revisions: {
+ baseRevision: 1
+ }
+ };
- var changer = new FormChanger( api, 'L1' );
+ var changer = new FormChanger( api, revisionStore, 'L1' );
var form = new Form( null, null, [] );
@@ -83,6 +93,33 @@
[ 'Q1', 'Q2' ],
'Saved grammatical features'
);
+ done();
+ } ).catch( done );
+ } );
+
+ QUnit.test( 'New form - save - sets the base revision to the one from
API result', function ( assert ) {
+ var done = assert.async();
+
+ var api = {
+ postWithToken: function () {
+ return $.Deferred().resolve( {
+ form: {},
+ lastrevid: 303
+ } ).promise();
+ }
+ };
+ var revisionStore = {
+ _revisions: {
+ baseRevision: 1
+ }
+ };
+
+ var changer = new FormChanger( api, revisionStore, 'L1' );
+
+ var form = new Form( null, null, [] );
+
+ changer.save( form ).then( function () {
+ assert.equal( revisionStore._revisions.baseRevision,
303 );
done();
} ).catch( done );
} );
@@ -107,7 +144,7 @@
}
};
- var changer = new FormChanger( api, 'L1' );
+ var changer = new FormChanger( api, {}, 'L1' );
var form = new Form( null, null, [] );
--
To view, visit https://gerrit.wikimedia.org/r/397838
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7da9e552c7be5395b4b31ef2cef3e70e7cc6c47c
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits