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

Reply via email to