Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/308302
Change subject: Allow progress dialog items to be non-cancellable ...................................................................... Allow progress dialog items to be non-cancellable Change-Id: Ifa4157816455139cd9e728b252e6433ced51a396 --- M src/ui/dialogs/ve.ui.ProgressDialog.js M src/ui/ve.ui.Surface.js 2 files changed, 20 insertions(+), 12 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/02/308302/1 diff --git a/src/ui/dialogs/ve.ui.ProgressDialog.js b/src/ui/dialogs/ve.ui.ProgressDialog.js index 2c4a6d7..64b228a 100644 --- a/src/ui/dialogs/ve.ui.ProgressDialog.js +++ b/src/ui/dialogs/ve.ui.ProgressDialog.js @@ -32,7 +32,8 @@ { action: 'cancel', label: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ), - flags: 'destructive' + flags: 'destructive', + modes: 'cancellable' } ]; @@ -60,6 +61,7 @@ return ve.ui.ProgressDialog.super.prototype.getSetupProcess.call( this, data ) .next( function () { var i, l, $row, progressBar, fieldLayout, cancelButton, cancelDeferred, + cancellable = false, progresses = data.progresses; this.inProgress = progresses.length; @@ -77,17 +79,21 @@ align: 'top' } ); - cancelButton = new OO.ui.ButtonWidget( { - framed: false, - icon: 'cancel', - iconTitle: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ) - } ).on( 'click', cancelDeferred.reject.bind( cancelDeferred ) ); - this.text.$element.append( - $row.append( - fieldLayout.$element, cancelButton.$element - ) - ); + $row.append( fieldLayout.$element ); + + if ( progresses[ i ].cancellable ) { + cancelButton = new OO.ui.ButtonWidget( { + framed: false, + icon: 'cancel', + iconTitle: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ) + } ).on( 'click', cancelDeferred.reject.bind( cancelDeferred ) ); + $row.append( cancelButton.$element ); + cancellable = true; + } + this.actions.setMode( cancellable ? 'cancellable' : 'default' ); + + this.text.$element.append( $row ); progresses[ i ].progressBarDeferred.resolve( progressBar, cancelDeferred.promise() ); /*jshint loopfunc:true */ progresses[ i ].progressCompletePromise.then( diff --git a/src/ui/ve.ui.Surface.js b/src/ui/ve.ui.Surface.js index 2b8a3b3..d16b1cf 100644 --- a/src/ui/ve.ui.Surface.js +++ b/src/ui/ve.ui.Surface.js @@ -579,13 +579,15 @@ * * @param {jQuery.Promise} progressCompletePromise Promise which resolves when the progress action is complete * @param {jQuery|string|Function} label Progress bar label + * @param {boolean} nonCancellable Progress item can't be cancelled * @return {jQuery.Promise} Promise which resolves with a progress bar widget and a promise which fails if cancelled */ -ve.ui.Surface.prototype.createProgress = function ( progressCompletePromise, label ) { +ve.ui.Surface.prototype.createProgress = function ( progressCompletePromise, label, nonCancellable ) { var progressBarDeferred = $.Deferred(); this.progresses.push( { label: label, + cancellable: !nonCancellable, progressCompletePromise: progressCompletePromise, progressBarDeferred: progressBarDeferred } ); -- To view, visit https://gerrit.wikimedia.org/r/308302 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifa4157816455139cd9e728b252e6433ced51a396 Gerrit-PatchSet: 1 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits