We will make the page tools pinnable. When working on this, the more menu and table of contents should both be pinnable with reusable code.
- When pinned
- When not pinned
- The pinnable state should be stored and persist for logged in users. Suggestion: reuse the existing preference PREF_KEY_SIDEBAR_VISIBLE
- The menu should default to pinned for logged-in users and unpinned to logged-out users
- When pinned the main menu is contained by a landmark, and there is only a single landmark for the main menu
- INSTRUMENTATION: When pinned, clicks to links inside the menu should be different to when in the dropdown. DesktopWebUIClickTracking. When unpinned, the main menu should be tracked with the event name n-mainpage-description.dropdown and when pinned the event should be n-mainpage-description.pinned. This will allow us to determine from clicks which menu the click occurred inside. Ideally this should be generalized for the pinning functionality e.g. should also apply to items in the table of contents and the end column.
- Once done, mark the appropriate field for that event in the instrumentation spec: https://docs.google.com/spreadsheets/d/18FstayDXt-PKfy7qxL2AQ_dMjn59YdF9d2wHaS1vjTg/edit#gid=0
- When logged in the default state of the main menu should be persistent. Move SkinVector22:isMainMenuVisible into VectorComponentMainMenu.php
1a) Logged out: There should be no option to pin the main menu
1b) Logged in: Pin sidebar to left. Wait 1s and refresh page. Expected: sidebar should remain pinned.
1c) Logged in: Pin sidebar to left. Wait 1s and click "hide". Expected: sidebar should remain hidden.
- Check instrumentation
1a) Click a link in main menu. Pin to sidebar. Click same link. Expected: Two different event names should be fired.
Sign off steps
- After this work the hope is that all items are click instrumented with unique names that reflect where the were clicked. If this is not the case please create a new ticket to handle the remaining work.