Prtksxna has uploaded a new change for review.
https://gerrit.wikimedia.org/r/243144
Change subject: mw.Upload.BookletLayout: Show errors and try to recover from
warnings
......................................................................
mw.Upload.BookletLayout: Show errors and try to recover from warnings
Show useful errors and try and recover from warning by changing the
state of the upload.
Bug: T114130
Change-Id: I08704108704ffaa70245c5facfca4b063a61f01b
---
M resources/Resources.php
M resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
M resources/src/mediawiki/mediawiki.Upload.js
3 files changed, 55 insertions(+), 17 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/44/243144/1
diff --git a/resources/Resources.php b/resources/Resources.php
index ccc3cd5..b851916 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1220,6 +1220,7 @@
'dependencies' => array(
'oojs-ui',
'mediawiki.Upload',
+ 'mediawiki.jqueryMsg',
),
'messages' => array(
'upload-process-error',
@@ -1230,6 +1231,8 @@
'upload-form-label-infoform-description',
'upload-form-label-usage-title',
'upload-form-label-usage-filename',
+ 'fileexists',
+ 'filepageexists',
),
),
'mediawiki.ForeignStructuredUpload.BookletLayout' => array(
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
index d1e01b1..8146a4b 100644
--- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
@@ -232,23 +232,9 @@
this.upload.setFilename( this.getFilename() );
this.upload.setText( this.getText() );
- this.uploadPromise.always( function () {
- layout.upload.finishStashUpload().always( function () {
+ this.uploadPromise.then( function () {
+ layout.upload.finishStashUpload().then( function () {
var name;
-
- if ( layout.upload.getState() ===
mw.Upload.State.ERROR ) {
- deferred.reject( new OO.ui.Error(
mw.msg( 'upload-process-error' ), {
- recoverable: false
- } ) );
- return false;
- }
-
- if ( layout.upload.getState() ===
mw.Upload.State.WARNING ) {
- deferred.reject( new OO.ui.Error(
mw.msg( 'upload-process-warning' ), {
- recoverable: false
- } ) );
- return false;
- }
// Normalize page name and localise the 'File:'
prefix
name = new mw.Title( 'File:' +
layout.upload.getFilename() ).toString();
@@ -257,6 +243,42 @@
deferred.resolve();
layout.emit( 'fileSaved' );
+ }, function () {
+ var stateDetails =
layout.upload.getStateDetails();
+ console.log( stateDetails );
+
+ if ( layout.upload.getState() ===
mw.Upload.State.ERROR ) {
+ deferred.reject( new OO.ui.Error(
stateDetails, {
+ recoverable: false
+ } ) );
+ return false;
+ }
+
+ if ( layout.upload.getState() ===
mw.Upload.State.WARNING ) {
+ if ( stateDetails.exists !== undefined
) {
+ deferred.reject( new
OO.ui.Error(
+ $( '<p>' ).html(
+ mw.message(
'filepageexists', stateDetails.exists ).parse()
+ )
+ ) );
+ }
+
+ if ( stateDetails.duplicate !==
undefined ) {
+ deferred.reject( new
OO.ui.Error(
+ $( '<p>' ).html(
+ mw.message(
'fileexists', stateDetails.duplicate[ 0 ] ).parse()
+ )
+ ) );
+ }
+
+ // Change the name if the current name
isn't acceptable
+ if ( stateDetails.badfilename !==
undefined ) {
+ layout.filenameWidget.setValue(
stateDetails.badfilename );
+ deferred.reject( new
OO.ui.Error( 'Changing name to ' + stateDetails.badfilename ) );
+ }
+
+ return false;
+ }
} );
} );
diff --git a/resources/src/mediawiki/mediawiki.Upload.js
b/resources/src/mediawiki/mediawiki.Upload.js
index 56f4f83..a882014 100644
--- a/resources/src/mediawiki/mediawiki.Upload.js
+++ b/resources/src/mediawiki/mediawiki.Upload.js
@@ -310,7 +310,20 @@
upload.setState( Upload.State.UPLOADED );
upload.imageinfo = result.upload.imageinfo;
return result;
- }, function () {
+ }, function ( result ) {
+ // Errors are strings that can be used to get
error message
+ if ( typeof result === 'string' ) {
+ upload.setState( Upload.State.ERROR,
mw.message( 'api-error-' + result ) );
+ return;
+ }
+
+ // Warnings come in the form of objects
+ if ( $.isPlainObject( result ) ) {
+ upload.setState( Upload.State.WARNING,
result );
+ return;
+ }
+
+ // Throw an empty error if we can't figure it
out
upload.setState( Upload.State.ERROR );
} );
} );
--
To view, visit https://gerrit.wikimedia.org/r/243144
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I08704108704ffaa70245c5facfca4b063a61f01b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Prtksxna <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits