jenkins-bot has submitted this change and it was merged.
Change subject: Make displaying next button configurable/conditional
......................................................................
Make displaying next button configurable/conditional
Controllers have their next step set (by setNextStep), but
buttons were being rendered regardless.
Change-Id: If5e4e4cd8887483c713fcbe3b46e443e6471a32d
---
M resources/controller/uw.controller.Step.js
M resources/ui/steps/uw.ui.Deed.js
M resources/ui/steps/uw.ui.Details.js
M resources/ui/steps/uw.ui.Tutorial.js
M resources/ui/steps/uw.ui.Upload.js
M resources/ui/uw.ui.Step.js
6 files changed, 114 insertions(+), 86 deletions(-)
Approvals:
Bartosz Dziewoński: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/controller/uw.controller.Step.js
b/resources/controller/uw.controller.Step.js
index 8667610..ce84ee5 100644
--- a/resources/controller/uw.controller.Step.js
+++ b/resources/controller/uw.controller.Step.js
@@ -69,6 +69,7 @@
*/
uw.controller.Step.prototype.setNextStep = function ( step ) {
this.nextStep = step;
+ this.ui.enableNextButton();
};
/**
diff --git a/resources/ui/steps/uw.ui.Deed.js b/resources/ui/steps/uw.ui.Deed.js
index 362e97f..808d64e 100644
--- a/resources/ui/steps/uw.ui.Deed.js
+++ b/resources/ui/steps/uw.ui.Deed.js
@@ -51,8 +51,14 @@
};
uw.ui.Deed.prototype.addNextButton = function () {
+ var ui = this;
+
uw.ui.Step.prototype.addNextButton.call( this );
- this.nextButton.$element.hide();
+ this.nextButtonPromise.done( function () {
+ // hide "next" button, controller will only show it
once license has
+ // been selected
+ ui.nextButton.$element.hide();
+ } );
};
}( mediaWiki, jQuery, mediaWiki.uploadWizard, OO ) );
diff --git a/resources/ui/steps/uw.ui.Details.js
b/resources/ui/steps/uw.ui.Details.js
index e82c616..2e8602b 100644
--- a/resources/ui/steps/uw.ui.Details.js
+++ b/resources/ui/steps/uw.ui.Details.js
@@ -83,43 +83,48 @@
};
uw.ui.Details.prototype.addNextButton = function () {
- this.$buttons.append( this.$errorCount, this.$warningCount );
+ var ui = this;
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-all-ok
mwe-upwiz-file-endchoice' )
- .append( this.nextButton.$element )
- );
+ this.nextButtonPromise.done( function () {
+ ui.$buttons.append( ui.$errorCount, ui.$warningCount );
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-some-failed
mwe-upwiz-file-endchoice' )
- .append(
- new OO.ui.HorizontalLayout( {
- items: [
- new OO.ui.LabelWidget( {
- label:
mw.message( 'mwe-upwiz-file-some-failed' ).text()
- } ),
-
this.nextButtonDespiteFailures,
-
this.retryButtonSomeFailed
- ]
- } ).$element
- )
- );
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-all-failed
mwe-upwiz-file-endchoice' )
- .append(
- new OO.ui.HorizontalLayout( {
- items: [
- new OO.ui.LabelWidget( {
- label:
mw.message( 'mwe-upwiz-file-all-failed' ).text()
- } ),
-
this.retryButtonAllFailed
- ]
- } ).$element
- )
- );
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass( 'mwe-upwiz-file-next-all-ok
mwe-upwiz-file-endchoice' )
+ .append( ui.nextButton.$element )
+ );
+
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass(
'mwe-upwiz-file-next-some-failed mwe-upwiz-file-endchoice' )
+ .append(
+ new OO.ui.HorizontalLayout( {
+ items: [
+ new
OO.ui.LabelWidget( {
+ label:
mw.message( 'mwe-upwiz-file-some-failed' ).text()
+ } ),
+
ui.nextButtonDespiteFailures,
+
ui.retryButtonSomeFailed
+ ]
+ } ).$element
+ )
+ );
+
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass(
'mwe-upwiz-file-next-all-failed mwe-upwiz-file-endchoice' )
+ .append(
+ new OO.ui.HorizontalLayout( {
+ items: [
+ new
OO.ui.LabelWidget( {
+ label:
mw.message( 'mwe-upwiz-file-all-failed' ).text()
+ } ),
+
ui.retryButtonAllFailed
+ ]
+ } ).$element
+ )
+ );
+ } );
};
/**
diff --git a/resources/ui/steps/uw.ui.Tutorial.js
b/resources/ui/steps/uw.ui.Tutorial.js
index d55cbd2..5e02cd8 100644
--- a/resources/ui/steps/uw.ui.Tutorial.js
+++ b/resources/ui/steps/uw.ui.Tutorial.js
@@ -117,10 +117,12 @@
ui.emit( 'next-step' );
} );
- this.$buttons.append(
- new OO.ui.HorizontalLayout( {
- items: [ this.skipCheckbox,
this.skipCheckboxLabel, this.nextButton ]
- } ).$element
- );
+ this.nextButtonPromise.done( function () {
+ ui.$buttons.append(
+ new OO.ui.HorizontalLayout( {
+ items: [ ui.skipCheckbox,
ui.skipCheckboxLabel, ui.nextButton ]
+ } ).$element
+ );
+ } );
};
}( mediaWiki, jQuery, mediaWiki.uploadWizard, OO ) );
diff --git a/resources/ui/steps/uw.ui.Upload.js
b/resources/ui/steps/uw.ui.Upload.js
index 26270e3..a9706c7 100644
--- a/resources/ui/steps/uw.ui.Upload.js
+++ b/resources/ui/steps/uw.ui.Upload.js
@@ -291,53 +291,57 @@
};
uw.ui.Upload.prototype.addNextButton = function () {
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-all-ok
mwe-upwiz-file-endchoice' )
- .append(
- new OO.ui.HorizontalLayout( {
- items: [
- new OO.ui.LabelWidget( {
- label:
mw.message( 'mwe-upwiz-file-all-ok' ).text()
- } ),
- this.nextStepButtonAllOk
- ]
- } ).$element
- )
- );
+ var ui = this;
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-some-failed
mwe-upwiz-file-endchoice' )
- .append(
- new OO.ui.HorizontalLayout( {
- items: [
- new OO.ui.LabelWidget( {
- label:
mw.message( 'mwe-upwiz-file-some-failed' ).text()
- } ),
-
this.retryButtonSomeFailed,
-
this.nextStepButtonSomeFailed
- ]
- } ).$element
- )
- );
+ this.nextButtonPromise.done( function () {
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass( 'mwe-upwiz-file-next-all-ok
mwe-upwiz-file-endchoice' )
+ .append(
+ new OO.ui.HorizontalLayout( {
+ items: [
+ new
OO.ui.LabelWidget( {
+ label:
mw.message( 'mwe-upwiz-file-all-ok' ).text()
+ } ),
+
ui.nextStepButtonAllOk
+ ]
+ } ).$element
+ )
+ );
- this.$buttons.append(
- $( '<div>' )
- .addClass( 'mwe-upwiz-file-next-all-failed
mwe-upwiz-file-endchoice' )
- .append(
- new OO.ui.HorizontalLayout( {
- items: [
- new OO.ui.LabelWidget( {
- label:
mw.message( 'mwe-upwiz-file-all-failed' ).text()
- } ),
-
this.retryButtonAllFailed
- ]
- } ).$element
- )
- );
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass(
'mwe-upwiz-file-next-some-failed mwe-upwiz-file-endchoice' )
+ .append(
+ new OO.ui.HorizontalLayout( {
+ items: [
+ new
OO.ui.LabelWidget( {
+ label:
mw.message( 'mwe-upwiz-file-some-failed' ).text()
+ } ),
+
ui.retryButtonSomeFailed,
+
ui.nextStepButtonSomeFailed
+ ]
+ } ).$element
+ )
+ );
- this.$buttons.append( this.$progress );
+ ui.$buttons.append(
+ $( '<div>' )
+ .addClass(
'mwe-upwiz-file-next-all-failed mwe-upwiz-file-endchoice' )
+ .append(
+ new OO.ui.HorizontalLayout( {
+ items: [
+ new
OO.ui.LabelWidget( {
+ label:
mw.message( 'mwe-upwiz-file-all-failed' ).text()
+ } ),
+
ui.retryButtonAllFailed
+ ]
+ } ).$element
+ )
+ );
+
+ ui.$buttons.append( ui.$progress );
+ } );
};
/**
diff --git a/resources/ui/uw.ui.Step.js b/resources/ui/uw.ui.Step.js
index 4a6fd1c..a631987 100644
--- a/resources/ui/uw.ui.Step.js
+++ b/resources/ui/uw.ui.Step.js
@@ -45,6 +45,10 @@
);
$( '#mwe-upwiz-steps' ).append( this.$arrow );
+
+ // this will make sure that button will only be added if it's
been
+ // set in the controller, otherwise there's nowhere to go...
+ this.nextButtonPromise = $.Deferred();
};
OO.mixinClass( uw.ui.Step, OO.EventEmitter );
@@ -79,6 +83,10 @@
*/
uw.ui.Step.prototype.empty = function () {};
+ uw.ui.Step.prototype.enableNextButton = function () {
+ this.nextButtonPromise.resolve();
+ };
+
/**
* Add a 'next' button to the step's button container
*/
@@ -93,7 +101,9 @@
ui.emit( 'next-step' );
} );
- this.$buttons.append( this.nextButton.$element );
+ this.nextButtonPromise.done( function () {
+ ui.$buttons.append( ui.nextButton.$element );
+ } );
};
}( mediaWiki, jQuery, mediaWiki.uploadWizard, OO ) );
--
To view, visit https://gerrit.wikimedia.org/r/314023
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If5e4e4cd8887483c713fcbe3b46e443e6471a32d
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits