jenkins-bot has submitted this change and it was merged. 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 rail if needed. * It only applies for logged in users. Bug: T97367 Change-Id: I4231383346a4b03ee744ad7d467ab54e71267c85 --- M Flow.php 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 5 files changed, 35 insertions(+), 7 deletions(-) Approvals: Catrope: Looks good to me, approved jenkins-bot: Verified diff --git a/Flow.php b/Flow.php index e2344da..0258a38 100644 --- a/Flow.php +++ b/Flow.php @@ -266,6 +266,9 @@ // Default editor to use in Flow $wgDefaultUserOptions['flow-editor'] = 'none'; +// Default state of the side rail +$wgDefaultUserOptions['flow-side-rail-state'] = 'expanded'; + // Maximum number of users that can be mentioned in one comment $wgFlowMaxMentionCount = 100; diff --git a/Hooks.php b/Hooks.php index c43014d..5fbe29a 100644 --- a/Hooks.php +++ b/Hooks.php @@ -1007,6 +1007,10 @@ 'type' => 'api' ); + $preferences['flow-side-rail-state'] = 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..d80a996 100644 --- a/modules/engine/components/board/features/flow-board-side-rail.js +++ b/modules/engine/components/board/features/flow-board-side-rail.js @@ -25,21 +25,42 @@ }; // + // Load handlers + // + + /** + * Sets side rail state based on user preferences. + * + * @param {Event} event + */ + function FlowBoardComponentSideRailFeatureMixinLoadCallback( event ) { + if ( mw.user.options.get( 'flow-side-rail-state' ) === 'collapsed' ) { + $( '.flow-component' ).addClass( 'expanded' ); + } + } + FlowBoardComponentSideRailFeatureMixin.UI.events.loadHandlers.loadSideRail = FlowBoardComponentSideRailFeatureMixinLoadCallback; + + // // On element-click handlers // /** + * Toggles side rail state and sets user preferences. * * @param {Event} event */ function FlowBoardComponentSideRailFeatureMixinToggleCallback( event ) { - $( '.flow-component' ).toggleClass( 'expanded' ); + var boardIsExpanded = $( '.flow-component' ).toggleClass( 'expanded' ).hasClass( 'expanded' ), + sideRailState = boardIsExpanded ? 'collapsed' : 'expanded'; + + if ( !mw.user.isAnon() ) { + // update the user preferences; no preferences for anons + new mw.Api().saveOption( 'flow-side-rail-state', sideRailState ); + // ensure we also see that preference in the current page + mw.user.options.set( 'flow-side-rail-state', sideRailState ); + } } FlowBoardComponentSideRailFeatureMixin.UI.events.interactiveHandlers.toggleSideRail = FlowBoardComponentSideRailFeatureMixinToggleCallback; - - // - // Private functions - // // Mixin to FlowComponent mw.flow.mixinComponent( 'component', FlowBoardComponentSideRailFeatureMixin ); -- To view, visit https://gerrit.wikimedia.org/r/215387 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I4231383346a4b03ee744ad7d467ab54e71267c85 Gerrit-PatchSet: 6 Gerrit-Project: mediawiki/extensions/Flow Gerrit-Branch: master Gerrit-Owner: Sbisson <sbis...@wikimedia.org> Gerrit-Reviewer: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com> Gerrit-Reviewer: Mattflaschen <mflasc...@wikimedia.org> Gerrit-Reviewer: Matthias Mullie <mmul...@wikimedia.org> Gerrit-Reviewer: Mooeypoo <mor...@gmail.com> Gerrit-Reviewer: Sbisson <sbis...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits