jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/345872 )
Change subject: Admin UI: Consolidate and refactor client-side bucket change
handler
......................................................................
Admin UI: Consolidate and refactor client-side bucket change handler
Change-Id: I9ceac2de7e0738ffa8e9ac689b9c59420caed051
Bug: T144453
---
M resources/infrastructure/campaignManager.js
M resources/infrastructure/centralnotice.js
M special/SpecialCentralNotice.php
3 files changed, 39 insertions(+), 32 deletions(-)
Approvals:
jenkins-bot: Verified
Awight: Looks good to me, approved
diff --git a/resources/infrastructure/campaignManager.js
b/resources/infrastructure/campaignManager.js
index af3acf8..69a5e15 100644
--- a/resources/infrastructure/campaignManager.js
+++ b/resources/infrastructure/campaignManager.js
@@ -65,17 +65,39 @@
$( '#balanced' ).click( updateWeightColumn );
function updateBuckets() {
- var numCampaignBuckets = $( 'select#buckets :checked' ).val(),
- i,
- isBucketDisabled;
+ var numBuckets = getNumBuckets(),
+ maxNumBuckets = mw.config.get(
'wgNoticeNumberOfBuckets' ),
+ bucketSelectors = $( 'select.bucketSelector' ),
+ i, isBucketDisabled;
- if ( numCampaignBuckets ) {
- for ( i = 0; i < mw.config.get(
'wgNoticeNumberOfBuckets' ); i++ ) {
- isBucketDisabled = ( i >= numCampaignBuckets );
+ // Change selected value of bucket selectors to only available
buckets
+ bucketSelectors.each( function () {
+ var $selector = $( this ),
+ selectedVal = $selector.val();
- $( 'select.bucketSelector option[value=' + i +
']' ).prop( 'disabled', isBucketDisabled );
+ $selector.val( selectedVal % numBuckets );
+ } );
+
+ // If only one bucket is available, disable the selectors
entirely
+ if ( numBuckets === 1 ) {
+ bucketSelectors.prop( 'disabled', true );
+
+ } else {
+ // If more than one bucket is available, enable
selectors and set options to
+ // disabled or enabled, as appropriate
+ bucketSelectors.prop( 'disabled', false );
+
+ for ( i = 0; i < maxNumBuckets; i++ ) {
+ isBucketDisabled = ( i >= numBuckets );
+
+ bucketSelectors.find( 'option[value=' + i + ']'
)
+ .prop( 'disabled', isBucketDisabled );
}
}
+ }
+
+ function getNumBuckets() {
+ return parseInt( $( 'select#buckets :selected' ).val(), 10 );
}
$( 'select#buckets' ).change( updateBuckets );
@@ -279,5 +301,9 @@
updateThrottle();
updateWeightColumn();
- updateBuckets();
+
+ $( function () {
+ updateBuckets();
+ } );
+
}( jQuery, mediaWiki ) );
diff --git a/resources/infrastructure/centralnotice.js
b/resources/infrastructure/centralnotice.js
index 59935b9..9ff7d6a 100644
--- a/resources/infrastructure/centralnotice.js
+++ b/resources/infrastructure/centralnotice.js
@@ -104,28 +104,5 @@
$( '#geoMultiSelector' ).fadeOut( 'fast' );
}
} );
-
- // Bucketing! Disable bucket selectors if #buckets is not
checked.
- $( '#buckets' ).change( function () {
- var numBuckets = parseInt( this[ this.selectedIndex
].value, 10 ),
- buckets = $( 'select[id^="bucketSelector"]' );
-
- if ( numBuckets === 1 ) {
- buckets.prop( 'disabled', true );
- } else {
- buckets.prop( 'disabled', false );
- // Go through and modify all the options --
disabling inappropriate ones
- // and remapping the rings
- buckets.each( function () {
- var curBucket = parseInt( this[
this.selectedIndex ].value, 10 ),
- i;
- $( this ).val( curBucket % numBuckets );
-
- for ( i = 0; i < this.options.length;
i++ ) {
- $( this.options[ i ] ).prop(
'disabled', ( i >= numBuckets ) );
- }
- } );
- }
- } ).trigger( 'change' );
} );
}( mediaWiki, jQuery ) );
diff --git a/special/SpecialCentralNotice.php b/special/SpecialCentralNotice.php
index 3a282b5..b455ba6 100644
--- a/special/SpecialCentralNotice.php
+++ b/special/SpecialCentralNotice.php
@@ -1213,7 +1213,11 @@
}
$selected = $selected % $numberCampaignBuckets;
- $html = Html::openElement( 'select', array( 'name' =>
$name, 'id' => 'bucketSelector' ) );
+ $html = Html::openElement( 'select', [
+ 'name' => $name,
+ 'class' => 'bucketSelector'
+ ] );
+
foreach ( range( 0, $wgNoticeNumberOfBuckets - 1 ) as
$value ) {
$attribs = array();
if ( $value >= $numberCampaignBuckets ) {
--
To view, visit https://gerrit.wikimedia.org/r/345872
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9ceac2de7e0738ffa8e9ac689b9c59420caed051
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: AndyRussG <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: Ssmith <[email protected]>
Gerrit-Reviewer: XenoRyet <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits