Krinkle has uploaded a new change for review.
https://gerrit.wikimedia.org/r/73446
Change subject: (DRAFT) mw.ViewPageTarget: Refetch token if session expired
......................................................................
(DRAFT) mw.ViewPageTarget: Refetch token if session expired
Bug: 50424
Change-Id: Id055eca1886f85aeaf615f645de29898afc0373c
---
M VisualEditor.php
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
2 files changed, 42 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/46/73446/1
diff --git a/VisualEditor.php b/VisualEditor.php
index ed239a6..1a53123 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -204,6 +204,7 @@
'jquery.client',
'jquery.placeholder',
'jquery.visibleText',
+ 'mediawiki.api',
'mediawiki.feedback',
'mediawiki.jqueryMsg',
'mediawiki.notify',
diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index a239f3a..926f224 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -432,7 +432,9 @@
* @param {Object|null} data API response data
*/
ve.init.mw.ViewPageTarget.prototype.onSaveError = function ( jqXHR, status,
data ) {
- var editApi;
+ var api, editApi,
+ viewPage = this;
+
this.saveDialogSaveButton.setDisabled( false );
this.$saveDialogLoadingIcon.hide();
@@ -487,6 +489,7 @@
// Handle token errors
if ( data.error && data.error.code === 'badtoken' ) {
+ api = new mw.Api();
this.showMessage(
'api-save-error',
document.createTextNode( mw.msg(
'visualeditor-savedialog-error-badtoken' ) ),
@@ -495,6 +498,36 @@
}
);
this.saveDialogSaveButton.setDisabled( true );
+ this.$saveDialogLoadingIcon.show();
+ $.when(
+ api.get( { 'action': 'query', 'meta': 'userinfo' } ),
+ api.get( { 'action': 'tokens', 'type': 'edit' } )
+ )
+ .done( function ( d1, d2 ) {
+ var userInfo = d1 && d1.query &&
d1.query.userinfo,
+ editToken = d2 && d2.tokens &&
d2.tokens.edittoken;
+
+ if ( userInfo && editToken ) {
+ mw.user.tokens.set( 'editToken',
editToken );
+ viewPage.editToken = editToken;
+
+ if ( true ) {
+ // New session is the same user
still
+ viewPage.saveDocument();
+ } else {
+ // The now current session is a
different user
+ if ( true ) {
+ // New session is an
anonymous user
+ } else {
+ // New session is a
different user
+ }
+ }
+
+ }
+ } )
+ .always( function () {
+ viewPage.$saveDialogLoadingIcon.hide();
+ } );
return;
}
@@ -735,6 +768,13 @@
* @method
*/
ve.init.mw.ViewPageTarget.prototype.onSaveDialogSaveButtonClick = function () {
+ this.saveDocument();
+};
+
+/**
+ * Try to save the current document.
+ */
+ve.init.mw.ViewPageTarget.prototype.saveDocument = function () {
var doc = this.surface.getModel().getDocument(),
saveOptions = this.getSaveOptions();
--
To view, visit https://gerrit.wikimedia.org/r/73446
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id055eca1886f85aeaf615f645de29898afc0373c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits