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

Reply via email to