Robmoen has uploaded a new change for review. https://gerrit.wikimedia.org/r/171994
Change subject: Only assume sections are collapsible if they are wrapped in a div ...................................................................... Only assume sections are collapsible if they are wrapped in a div Now toggle doesn't add collapsible-heading and icon classes by default It first checks to see if there the section is wrapped in a div meaning it has been modified by MobileFormatter. If the section is not wrapped in a div, collapsible sections are not enabled on that page Plus small code refactor in enable method Change-Id: I79df94a6ba3c4893af1fbac5d79215f57275e377 --- M javascripts/modules/toggling/toggle.js 1 file changed, 34 insertions(+), 31 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend refs/changes/94/171994/1 diff --git a/javascripts/modules/toggling/toggle.js b/javascripts/modules/toggling/toggle.js index 90ed7fe..8f29cc6 100644 --- a/javascripts/modules/toggling/toggle.js +++ b/javascripts/modules/toggling/toggle.js @@ -157,7 +157,7 @@ } function enable( $container ) { - var tagName, $headings, expandSections, + var tagName, expandSections, $firstHeading, iconClass = iconDown.getClassName(), collapseSectionsByDefault = mw.config.get( 'wgMFCollapseSectionsByDefault' ); @@ -166,10 +166,6 @@ $( 'html' ).removeClass( 'stub' ); $firstHeading = $container.find( 'h1,h2,h3,h4,h5,h6' ).eq( 0 ); tagName = $firstHeading.prop( 'tagName' ) || 'H1'; - $container.find( tagName ).addClass( 'collapsible-heading ' + iconClass ); - - $headings = $container.find( '.collapsible-heading' ); - $headings.next( 'div' ).addClass( 'collapsible-block' ); if ( collapseSectionsByDefault === undefined ) { // Old default behavior if on cached output @@ -178,35 +174,42 @@ expandSections = !collapseSectionsByDefault || ( M.isAlphaGroupMember() && M.settings.getUserSetting( 'expandSections', true ) === 'true' ); - $headings.each( function ( i ) { - var $elem = $( this ), + $container.find( tagName ).each( function ( i ) { + var $heading = $( this ), id = 'collapsible-block-' + i; + // Be sure there is a div wrapping the section content. + // Otherwise, collapsible sections for this page is not enabled. + if ( $heading.next().is( 'div' ) ) { + $heading + .addClass( 'collapsible-heading ' + iconClass ) + .attr( { + tabindex: 0, + 'aria-haspopup': 'true', + 'aria-controls': id + } ) + .on( 'click', function ( ev ) { + // prevent taps/clicks on edit button after toggling (bug 56209) + ev.preventDefault(); + toggle( $( this ) ); + } ); + $heading.next( 'div' ) + .addClass( 'collapsible-block' ) + .eq( 0 ) + .attr( { + // We need to give each content block a unique id as that's + // the only way we can tell screen readers what element we're + // referring to (aria-controls) + id: id, + 'aria-pressed': 'false', + 'aria-expanded': 'false' + } ); - $elem.next( '.collapsible-block' ).eq( 0 ) - .attr( { - // We need to give each content block a unique id as that's - // the only way we can tell screen readers what element we're - // referring to (aria-controls) - id: id, - 'aria-pressed': 'false', - 'aria-expanded': 'false' - } ); + enableKeyboardActions( $heading ); + if ( M.isWideScreen() || expandSections ) { + // Expand sections by default on wide screen devices or if the expand sections setting is set (alpha only) + toggle( $heading ); + } - $elem.attr( { - tabindex: 0, - 'aria-haspopup': 'true', - 'aria-controls': id - } ) - .on( 'click', function ( ev ) { - // prevent taps/clicks on edit button after toggling (bug 56209) - ev.preventDefault(); - toggle( $( this ) ); - } ); - - enableKeyboardActions( $elem ); - if ( M.isWideScreen() || expandSections ) { - // Expand sections by default on wide screen devices or if the expand sections setting is set (alpha only) - toggle( $elem ); } } ); -- To view, visit https://gerrit.wikimedia.org/r/171994 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I79df94a6ba3c4893af1fbac5d79215f57275e377 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MobileFrontend Gerrit-Branch: master Gerrit-Owner: Robmoen <rm...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits