Santhosh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/258960
Change subject: Display abusefilter errors nicely
......................................................................
Display abusefilter errors nicely
Render the warning in the error information as HTML than dumping
all as json string.
Bug: T114621
Change-Id: Ib99c2f1f561f67e6de5174a588c65d5cd5e83ee3
---
M modules/header/ext.cx.header.js
M modules/publish/ext.cx.publish.js
2 files changed, 24 insertions(+), 9 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation
refs/changes/60/258960/1
diff --git a/modules/header/ext.cx.header.js b/modules/header/ext.cx.header.js
index 6eba84f..0204e76 100644
--- a/modules/header/ext.cx.header.js
+++ b/modules/header/ext.cx.header.js
@@ -77,11 +77,13 @@
/**
* Show an error message in the info bar.
- *
+ * TODO: This error handling and display deserve its own module. Header
module is inappropriate.
+ *
* @param {mediawiki.Message|string} message Message objects are
parsed, strings are plain text.
+ * @param {string} details The details of error in HTML.
*/
- ContentTranslationHeader.prototype.showError = function ( message ) {
- this.showMessage( 'cx-error', message );
+ ContentTranslationHeader.prototype.showError = function ( message,
details ) {
+ this.showMessage( 'cx-error', message, details );
};
/**
@@ -91,14 +93,19 @@
*
* @param {string} type Message class.
* @param {mediawiki.Message|string} message Message objects are
parsed, strings are plain text.
+ * @param {string} details The details of error in HTML.
*/
- ContentTranslationHeader.prototype.showMessage = function ( type,
message ) {
+ ContentTranslationHeader.prototype.showMessage = function ( type,
message, details ) {
if ( message instanceof mw.Message ) {
this.$infoBar.find( '.text' ).html( message.parse() );
} else {
this.$infoBar.find( '.text' ).text( message );
}
-
+ if ( details ) {
+ this.$infoBar.find( '.details' ).html( details );
+ } else {
+ this.$infoBar.find( '.details' ).empty();
+ }
this.$infoBar
.removeClass( 'cx-success cx-error' )
.addClass( type )
@@ -238,6 +245,7 @@
.addClass( 'cx-header__infobar' )
.append( $( '<span>' ).addClass( 'text' ) )
.append( $( '<span>' ).addClass( 'remove' ) )
+ .append( $( '<div>' ).addClass( 'details' ) )
.hide();
this.$container
diff --git a/modules/publish/ext.cx.publish.js
b/modules/publish/ext.cx.publish.js
index 421da0d..086b151 100644
--- a/modules/publish/ext.cx.publish.js
+++ b/modules/publish/ext.cx.publish.js
@@ -300,7 +300,7 @@
* @param {Object} details
*/
CXPublish.prototype.onFail = function ( code, details ) {
- var trace, error;
+ var trace, error, errorDetails;
trace = {
sourceLanguage: mw.cx.sourceLanguage,
@@ -333,13 +333,20 @@
// "*":"See ...
error = details.error.info;
} else if ( details.edit ) {
- //
{"result":"error","edit":{"spamblacklist":"facebook.com","result":"Failure"}}
- error = JSON.stringify( details.edit );
+ // Handle abusefilter errors.
+ if ( details.edit.code.indexOf( 'abusefilter' )
=== 0 ) {
+ error = details.edit.info;
+ errorDetails = details.edit.warning;
+ } else {
+ // Other errors
+ //
{"result":"error","edit":{"spamblacklist":"facebook.com","result":"Failure"}}
+ error = JSON.stringify( details.edit );
+ }
} else if ( details.textStatus ) {
//
{"xhr":{"readyState":0,"status":0,"statusText":"timeout"},"textStatus":"timeout",...
error = details.textStatus;
}
- mw.hook( 'mw.cx.error' ).fire( mw.msg(
'cx-publish-page-error', error ) );
+ mw.hook( 'mw.cx.error' ).fire( mw.msg(
'cx-publish-page-error', error ), errorDetails );
mw.log( '[CX] Error while publishing:', code, trace );
}
--
To view, visit https://gerrit.wikimedia.org/r/258960
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib99c2f1f561f67e6de5174a588c65d5cd5e83ee3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits