Phuedx has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/328674 )
Change subject: Make settings reducer control footer link
......................................................................
Make settings reducer control footer link
Since the footer link part of the settings system - clicking the link
opens the settings modal - it seems appropriate that it should be
controlled by state returned by the settings reducer.
Bug: T146889
Change-Id: I3a8549dbf1952cd0556f663496c55de91acaf2c0
---
M resources/ext.popups/changeListeners/footerLink.js
M resources/ext.popups/reducers/settings.js
M tests/qunit/ext.popups/changeListeners/footerLink.test.js
M tests/qunit/ext.popups/reducers/settings.test.js
4 files changed, 57 insertions(+), 11 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Popups
refs/changes/74/328674/1
diff --git a/resources/ext.popups/changeListeners/footerLink.js
b/resources/ext.popups/changeListeners/footerLink.js
index e28e992..6218dad 100644
--- a/resources/ext.popups/changeListeners/footerLink.js
+++ b/resources/ext.popups/changeListeners/footerLink.js
@@ -63,10 +63,10 @@
} );
}
- if ( state.preview.enabled ) {
- $footerLink.hide();
- } else {
+ if ( state.settings.shouldShowFooterLink ) {
$footerLink.show();
+ } else {
+ $footerLink.hide();
}
};
};
diff --git a/resources/ext.popups/reducers/settings.js
b/resources/ext.popups/reducers/settings.js
index 8f2e467..4932029 100644
--- a/resources/ext.popups/reducers/settings.js
+++ b/resources/ext.popups/reducers/settings.js
@@ -11,7 +11,8 @@
if ( state === undefined ) {
state = {
shouldShow: false,
- showHelp: false
+ showHelp: false,
+ shouldShowFooterLink: false
};
}
@@ -37,8 +38,18 @@
// If we enabled, we just hide
directly, no help
// If we disabled, keep it
showing and let the ui show the help.
shouldShow: !action.enabled,
- showHelp: !action.enabled
+ showHelp: !action.enabled,
+
+ // Since the footer link is
only ever shown to anonymous users (see
+ // the BOOT case below), it's
always true here.
+ shouldShowFooterLink:
!action.enabled
} );
+
+ case popups.actionTypes.BOOT:
+ return nextState( state, {
+ userIsAnon: action.user.isAnon,
+ shouldShowFooterLink:
action.user.isAnon && !action.isEnabled
+ } );
default:
return state;
}
diff --git a/tests/qunit/ext.popups/changeListeners/footerLink.test.js
b/tests/qunit/ext.popups/changeListeners/footerLink.test.js
index e541a96..c24c8f9 100644
--- a/tests/qunit/ext.popups/changeListeners/footerLink.test.js
+++ b/tests/qunit/ext.popups/changeListeners/footerLink.test.js
@@ -17,8 +17,8 @@
mw.popups.changeListeners.footerLink(
boundActions );
that.state = {
- preview: {
- enabled: false
+ settings: {
+ shouldShowFooterLink: true
}
};
@@ -64,7 +64,7 @@
// ---
prevState = $.extend( true, {}, this.state );
- this.state.preview.enabled = true;
+ this.state.settings.shouldShowFooterLink = false;
this.footerLinkChangeListener( prevState, this.state );
diff --git a/tests/qunit/ext.popups/reducers/settings.test.js
b/tests/qunit/ext.popups/reducers/settings.test.js
index 36d14a1..e823d49 100644
--- a/tests/qunit/ext.popups/reducers/settings.test.js
+++ b/tests/qunit/ext.popups/reducers/settings.test.js
@@ -9,8 +9,41 @@
state,
{
shouldShow: false,
- showHelp: false
+ showHelp: false,
+ shouldShowFooterLink: false
}
+ );
+ } );
+
+ QUnit.test( 'BOOT', function ( assert ) {
+ var action = {
+ type: 'BOOT',
+ isEnabled: false,
+ user: {
+ isAnon: true
+ }
+ };
+
+ assert.deepEqual(
+ mw.popups.reducers.settings( {}, action ),
+ {
+ userIsAnon: true,
+ shouldShowFooterLink: true
+ }
+ );
+
+ // ---
+
+ // And when the user is logged out...
+ action.user.isAnon = false;
+
+ assert.deepEqual(
+ mw.popups.reducers.settings( {}, action ),
+ {
+ userIsAnon: false,
+ shouldShowFooterLink: false
+ },
+ 'If the user is logged in, then it doesn\'t signal that
the footer link should be shown.'
);
} );
@@ -64,7 +97,8 @@
mw.popups.reducers.settings( {}, action( false, true )
),
{
shouldShow: false,
- showHelp: false
+ showHelp: false,
+ shouldShowFooterLink: false
},
'It should hide the settings dialog and help when we
enable.'
);
@@ -73,7 +107,8 @@
mw.popups.reducers.settings( {}, action( true, false )
),
{
shouldShow: true,
- showHelp: true
+ showHelp: true,
+ shouldShowFooterLink: true
},
'It should keep the settings showing and show the help
when we disable.'
);
--
To view, visit https://gerrit.wikimedia.org/r/328674
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3a8549dbf1952cd0556f663496c55de91acaf2c0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Popups
Gerrit-Branch: mpga
Gerrit-Owner: Phuedx <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits