Page MenuHomePhabricator

Build out client preferences in side bar
Closed, ResolvedPublic5 Estimated Story Points

Assigned To
None
Authored By
Jdlrobson
Nov 2 2023, 4:59 PM
Referenced Files
F41562070: screenshot 348.png
Dec 5 2023, 7:52 AM
F41562069: screenshot 346.png
Dec 5 2023, 7:52 AM
F41562068: screenshot 347.png
Dec 5 2023, 7:52 AM
F41562067: screenshot 344.png
Dec 5 2023, 7:52 AM
F41562066: screenshot 345.png
Dec 5 2023, 7:52 AM
F41562064: screenshot 349.png
Dec 5 2023, 7:52 AM
F41562093: screenshot 351.png
Dec 5 2023, 7:52 AM
F41562092: screenshot 352.png
Dec 5 2023, 7:52 AM

Description

The first version of client preferences in side bar will look like this:

Reading theme settings anons.png (922×1 px, 345 KB)

It will not be pinnable so we recognize this temporary state may annoy certain users as they will not have the ability to make it go away. This will be taken care of in a follow up iteration of the functionality

Specs

  • The menu should only appear when the existing client preferences feature flag is enabled.
  • The first version will not have pinning functionality
  • The menu should be dynamic based on which features have been enabled.
  • It will disappear at low resolutions (e.g. resizing browser) [in future this will become pinned]

TODO

  • A new container is added. It appears below the page tools when page tools is open
  • Load codex-styles instead of codex-search-styles for logged in users
  • Since client preferences do not work without JavaScript we need a mock for how this should look while JavaScript loads
  • You will need to adjust the existing pinning code which allows content to expand when page tools is collapsed as this space will now always be reserved.

QA

  • Make sure codex-styles is not loaded for anonymous users and that we haven't introduced a performance regression.
  • Review the following states:
  • page tools open [settings should appear below]
  • page tools closed [settings should appear above]
  • Make sure click tracking is functioning for interactions with the settings - each selection of an option should have an associated click tracking event (testing desktop site is sufficient for now)

QA Results - Beta

QA Results - Prod

Event Timeline

Change 972492 had a related patch set uploaded (by Kimberly Sarabia; author: Kimberly Sarabia):

[mediawiki/skins/Vector@master] Create a sidebar for user preferenes

https://gerrit.wikimedia.org/r/972492

Change 972495 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] Refactor client preferences to support different render locations

https://gerrit.wikimedia.org/r/972495

Change 972495 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Client preferences: Support different render locations, use Codex

https://gerrit.wikimedia.org/r/972495

Change 973888 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] [Please squash] suggested fix ups to "Create a sidebar for user preferenes"

https://gerrit.wikimedia.org/r/973888

Change 973889 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] i18n: client preferences

https://gerrit.wikimedia.org/r/973889

[Kim/Mo] I've made several fixes to the current patch in https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/973888/ to unblock work on the dropdown.

I'm going to squash that into this patchset now.

Please review my changes at https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/973888 and ask any questions there.

Please checkout the latest patchset (and understand my changes) before resuming work on this for the remaining issues.

The remaining issues to fix are:

  • page tools when open, overlaps client preferences control
  • When resizing the browser, the client preferences should be hidden (use a media query to do that one)

Change 973888 abandoned by Mabualruz:

[mediawiki/skins/Vector@master] [Please squash] suggested fix ups to "Create a sidebar for user preferenes"

Reason:

Cherry Picked changes into 972492

https://gerrit.wikimedia.org/r/973888

Change 973889 merged by jenkins-bot:

[mediawiki/skins/Vector@master] i18n: client preferences

https://gerrit.wikimedia.org/r/973889

@KSarabia-WMF @Jdlrobson I had a look at the overflow behaviour of the tools and ToC menu components when the bottom of the menu extends past the bottom edge of the page you can scroll them separately from the main content. In the case of the theme menu, we could apply this behaviour to both the Tools and Theme menus combined. If the combined height of tools plus theme exceeds the total height of the page, you could scroll both as one content area.

Jdlrobson updated Other Assignee, added: KSarabia-WMF; removed: Mabualruz.
Jdlrobson updated the task description. (Show Details)
Jdlrobson added a subscriber: KSarabia-WMF.

Change 972492 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Create a sidebar for user preferences

https://gerrit.wikimedia.org/r/972492

Remaining work:

  • the client preferences panel needs to appear below the page tools
Jdlrobson added a subscriber: Edtadros.

Change 974700 had a related patch set uploaded (by Kimberly Sarabia; author: Kimberly Sarabia):

[mediawiki/skins/Vector@master] Fix sidebar component order

https://gerrit.wikimedia.org/r/974700

Change 974700 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Fix sidebar component order

https://gerrit.wikimedia.org/r/974700

Okay this can now be testing on the beta cluster shortly

(Note it is expected that the controls do not doing anything except throw an error)

There is an alignment issue with the page tools. This only happens in Zebra: ?vectorzebradesign=1

Edit: I think this could be as simple as adding the vector-pinned-container class in Zebra mode, and/or making Zebra a dependency of this feature.

Change 975076 had a related patch set uploaded (by Kimberly Sarabia; author: Kimberly Sarabia):

[mediawiki/skins/Vector@master] Fix alignment issue in Zebra

https://gerrit.wikimedia.org/r/975076

Change 975076 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Fix alignment issue in Zebra

https://gerrit.wikimedia.org/r/975076

Test Result - Beta

Status: ✅ PASS
Environment: beta
OS: macOS Sonoma
Browser: Chrome
Device: MBA
Emulated Device:NA

Test Artifact(s):

QA Steps

✅ AC1: Make sure codex-styles is not loaded for anonymous users and that we haven't introduced a performance regression.
codex-styles was not found in the page source. Performance regressions will have been caught by the devs.
Review the following states:
✅ AC2: page tools open [settings should appear below]

screenshot 221.png (891×1 px, 332 KB)

✅ AC3: page tools closed [settings should appear above]
Settings appears in the sidebar, not necessarily "above" anything. I'm assuming this is what was meant. Additionally, at low resolutions, the settings panel does not appear per the spec.
screenshot 220.png (895×1 px, 462 KB)

screenshot 222.png (894×978 px, 401 KB)

✅ AC4: Make sure click tracking is functioning for interactions with the settings - each selection of an option should have an associated click tracking event (testing desktop site is sufficient for now)

screenshot 225.png (508×860 px, 101 KB)

screenshot 227.png (509×795 px, 101 KB)

screenshot 223.png (474×912 px, 97 KB)

screenshot 224.png (513×813 px, 101 KB)

screenshot 226.png (478×905 px, 93 KB)

screenshot 228.png (507×804 px, 101 KB)

Jdlrobson updated the task description. (Show Details)

Test Result - Prod

Status: ✅ PASS
Environment: enwiki
OS: macOS Sonoma
Browser: Chrome
Device: MBA
Emulated Device:NA

Test Artifact(s):

QA Steps

✅ AC1: Make sure codex-styles is not loaded for anonymous users and that we haven't introduced a performance regression.
codex-styles was not found in the page source. Performance regressions will have been caught by the devs.
Review the following states:
✅ AC2: page tools open [settings should appear below]

screenshot 356.png (1×1 px, 706 KB)

✅ AC3: page tools closed [settings should appear above]
Settings appears in the sidebar. Additionally, at low resolutions, the settings panel does not appear per the spec.

screenshot 358.png (1×982 px, 607 KB)
screenshot 357.png (1×1 px, 669 KB)

✅ AC4: Make sure click tracking is functioning for interactions with the settings - each selection of an option should have an associated click tracking event (testing desktop site is sufficient for now)

See AC8 in T351141#9381788