Sbisson has uploaded a new change for review. https://gerrit.wikimedia.org/r/215387
Change subject: Store side rail state in user preferences ...................................................................... Store side rail state in user preferences * Store side rail state on expand and collapse. * Read preferences on load and collapse side railif needed. * It only applies for logged in users. Bug: T97367 Change-Id: I4231383346a4b03ee744ad7d467ab54e71267c85 --- M Hooks.php M handlebars/compiled/flow_block_header.handlebars.php M handlebars/flow_block_header.handlebars M modules/engine/components/board/features/flow-board-side-rail.js 4 files changed, 31 insertions(+), 3 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow refs/changes/87/215387/1 diff --git a/Hooks.php b/Hooks.php index c43014d..0253654 100644 --- a/Hooks.php +++ b/Hooks.php @@ -1007,6 +1007,10 @@ 'type' => 'api' ); + $preferences['side-rail-collapsed'] = array( + 'type' => 'api' + ); + return true; } diff --git a/handlebars/compiled/flow_block_header.handlebars.php b/handlebars/compiled/flow_block_header.handlebars.php index b84c647..3ed362f 100644 --- a/handlebars/compiled/flow_block_header.handlebars.php +++ b/handlebars/compiled/flow_block_header.handlebars.php @@ -58,7 +58,7 @@ ); - return '<div class="flow-board-header"> + return '<div class="flow-board-header flow-load-interactive" data-flow-load-handler="loadSideRail"> '.LCRun3::p($cx, 'flow_header_title', array(array($in),array()), ' ').''.LCRun3::p($cx, 'flow_errors', array(array($in),array()), ' ').''.LCRun3::p($cx, 'flow_header_detail', array(array($in),array()), ' ').'</div> '; } diff --git a/handlebars/flow_block_header.handlebars b/handlebars/flow_block_header.handlebars index 60c5f77..9db751c 100644 --- a/handlebars/flow_block_header.handlebars +++ b/handlebars/flow_block_header.handlebars @@ -1,4 +1,4 @@ -<div class="flow-board-header"> +<div class="flow-board-header flow-load-interactive" data-flow-load-handler="loadSideRail"> {{> flow_header_title}} {{> flow_errors}} {{> flow_header_detail}} diff --git a/modules/engine/components/board/features/flow-board-side-rail.js b/modules/engine/components/board/features/flow-board-side-rail.js index be4ada3..b0d1c3c 100644 --- a/modules/engine/components/board/features/flow-board-side-rail.js +++ b/modules/engine/components/board/features/flow-board-side-rail.js @@ -25,6 +25,23 @@ }; // + // Load handlers + // + + /** + * + * @param {Event} event + */ + function FlowBoardComponentSideRailFeatureMixinLoadCallback( event ) { + if ( !mw.user.isAnon() ) { + if ( mw.user.options.get( 'side-rail-collapsed' ) ) { + $( '.flow-component' ).addClass( 'expanded' ); + } + } + } + FlowBoardComponentSideRailFeatureMixin.UI.events.loadHandlers.loadSideRail = FlowBoardComponentSideRailFeatureMixinLoadCallback; + + // // On element-click handlers // @@ -33,7 +50,14 @@ * @param {Event} event */ function FlowBoardComponentSideRailFeatureMixinToggleCallback( event ) { - $( '.flow-component' ).toggleClass( 'expanded' ); + var sideRailCollapsed = $( '.flow-component' ).toggleClass( 'expanded' ).hasClass( 'expanded' ); + + if ( !mw.user.isAnon() ) { + // update the user preferences; no preferences for anons + new mw.Api().saveOption( 'side-rail-collapsed', sideRailCollapsed ); + // ensure we also see that preference in the current page + mw.user.options.set( 'side-rail-collapsed', sideRailCollapsed ); + } } FlowBoardComponentSideRailFeatureMixin.UI.events.interactiveHandlers.toggleSideRail = FlowBoardComponentSideRailFeatureMixinToggleCallback; -- To view, visit https://gerrit.wikimedia.org/r/215387 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4231383346a4b03ee744ad7d467ab54e71267c85 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Flow Gerrit-Branch: master Gerrit-Owner: Sbisson <sbis...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits