Page MenuHomePhabricator

[M] [PageTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector
Closed, ResolvedPublic1 Estimated Story Points

Description

Background

In preparation for the page tools dropdown, we want to start to decouple menu data from their presentation as different UI components. This allows us to reduce the amount of logic in SkinVector relating to how menus are rendered (decoratePortletData, updatePortletClasses) and give us more flexibility with updating menu data. Ultimately this will make it easier for us to render multiple menu groups in a dropdown or other component.

Current:

Screen Shot 2022-10-04 at 3.47.58 PM.png (1×2 px, 279 KB)

Proposed:
Screen Shot 2022-10-04 at 5.07.49 PM.png (1×2 px, 270 KB)

TODO

  • Menu.template is split into the Dropdown.template, Tabs.template, Portals.template, and MenuGroup.template
  • 'vector-menu-dropdown', 'vector-menu-portal', 'vector-menu-tabs' classes are now handled by their corresponding template
  • SkinVector::decoratePortletsData is restricted to legacy Vector
  • Update CSS files to match new template names
  • Storybook is disabled from CI
  • The Dropdown template is separated in such a way that supports composition

QA

  • No visual changes on https://pixel.wmcloud.org/
  • Make sure gadgets (mw.util.addPortletLink function) works as before on all menus we touch (run code [1] and check all links appear in UI)

[1] `
mw.util.addPortletLink('p-views', '#', 'test' );mw.util.addPortletLink('p-associated-pages', '#', 'test' ); mw.util.addPortletLink('p-personal', '#', 'test' );mw.util.addPortletLink('p-tb', '#', 'test' );

== QA Results - Beta
| **AC** | **Status** | **Details** |
| ----- | ----- | ----- |
| 1 | ✅ | T319349#8403407 |
| 2 | ✅ | T319349#8403407 |

== QA Results - Prod
| **AC** | **Status** | **Details** |
| ----- | ----- | ----- |
| 1 | ✅ | T319349#8404676 |
| 2 | ✅ | T319349#8404676 |

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
bwang updated the task description. (Show Details)

Change 838193 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] Replace vector-menu-dropdown-noicon with vector-menu-dropdown-icon

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

Change 838233 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] Split up Menu.template, restrict decoratePortletData to legacy Vector

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

bwang updated the task description. (Show Details)

@bwang: Assuming this task is about the Vector code base, hence adding that project tag so other people who don't know or don't care about team tags can also find this task when searching via projects. Please set appropriate project tags when possible. Thanks!

Jdlrobson set the point value for this task to 1.Oct 7 2022, 5:42 PM
Jdlrobson renamed this task from Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector to [ArticleTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector.Oct 25 2022, 5:15 PM
ovasileva renamed this task from [ArticleTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector to [M] [ArticleTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector.Oct 25 2022, 5:33 PM
alexhollender_WMF renamed this task from [M] [ArticleTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector to [M] [PageTools] Split up Menu.template into separate templates, remove SkinVector::decoratePortletsData from modern Vector.Oct 25 2022, 7:22 PM
alexhollender_WMF updated the task description. (Show Details)

Change 838193 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] Remove `.vector-menu-dropdown-noicon` with `.vector-menu-dropdown-icon`

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

Change 838193 abandoned by Jdlrobson:

[mediawiki/skins/Vector@master] Remove `.vector-menu-dropdown-noicon` with `.vector-menu-dropdown-icon`

Reason:

I'm taking a different approach with this one now - https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/838233/5/resources/skins.vector.js/dropdownMenus.js.

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

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

[mediawiki/skins/Vector@master] [Technical] Move isSidebarVisible and template boolean to SkinVector22

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

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

[mediawiki/skins/Vector@master] [Template] Move search data to getSearchBoxData

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

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

[mediawiki/skins/Vector@master] [Technical] Unset toc inside SkinVectorLegacy

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

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

[mediawiki/skins/Vector@master] [Technical] Separate shouldHideLanguages from isLegacy logic

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

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

[mediawiki/skins/Vector@master] [Components] Add VectorComponentMainMenuAction

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

Change 850196 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Move isSidebarVisible and template boolean to SkinVector22

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

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

[mediawiki/skins/Vector@master] Prepare for template rename

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

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

[mediawiki/skins/Vector@master] [Technical] Drop redundant isLegacy logic

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

Change 850200 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Unset toc inside SkinVectorLegacy

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

Jdlrobson subscribed.

Change 850292 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Separate shouldHideLanguages from isLegacy logic

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

Change 850303 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Prepare for template rename

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

Change 850293 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Components] Introduce VectorComponent and MainMenu components

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

Change 838233 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Split up Menu.template, restrict decoratePortletData to legacy Vector

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

Jdlrobson updated the task description. (Show Details)
Jdlrobson updated the task description. (Show Details)
Jdlrobson moved this task from Code Review to QA on the Web-Team-Backlog (Kanbanana-2022-23-Q2) board.
Jdlrobson added a subscriber: nray.

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

[mediawiki/skins/Vector@master] [Technical] Separate Dropdown template into 3 templates

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

Change 852317 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Separate Dropdown template into 3 templates

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

Change 853047 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] [Technical] Add DropdownContents.mustache, update CSS to handle new wrapper container

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

Change 853047 abandoned by Bernard Wang:

[mediawiki/skins/Vector@master] [Technical] Add DropdownContents.mustache, update CSS to handle new wrapper container

Reason:

Descoping the class name changes, going with this instead https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/853404

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

Change 853404 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] [Technical] Add DropdownContents.mustache

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

Change 850514 merged by jenkins-bot:

[mediawiki/skins/Vector@master] [Technical] Drop redundant isLegacy logic

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

Test Result - Beta

Status: ✅ PASS
Environment: beta
OS: macOS Ventura
Browser: Chrome
Device: MBP
Emulated Device:NA

Test Artifact(s):

QA Steps

✅ AC1: No visual changes on https://pixel.wmcloud.org/

Screenshot 2022-11-17 at 9.53.18 AM.png (714×1 px, 99 KB)

Screenshot 2022-11-17 at 9.53.06 AM.png (758×1 px, 108 KB)

Screenshot 2022-11-17 at 9.52.56 AM.png (772×1 px, 121 KB)

✅ AC2: Make sure gadgets (mw.util.addPortletLink function) works as before on all menus we touch (run code [1] and check all links appear in UI)
[1] mw.util.addPortletLink('p-views', '#', 'test' );mw.util.addPortletLink('p-associated-pages', '#', 'test' ); mw.util.addPortletLink('p-personal', '#', 'test' );mw.util.addPortletLink('p-tb', '#', 'test' );

Screenshot 2022-11-09 at 6.25.14 PM.png (788×1 px, 372 KB)

Edtadros subscribed.

Test Result - Prod

Status: ✅ PASS
Environment: enwiki
OS: macOS Ventura
Browser: Chrome
Device: MBP
Emulated Device:NA

Test Artifact(s):

QA Steps

⬜ AC1: No visual changes on https://pixel.wmcloud.org/
not testable in production

✅ AC2: Make sure gadgets (mw.util.addPortletLink function) works as before on all menus we touch (run code [1] and check all links appear in UI)
[1] mw.util.addPortletLink('p-views', '#', 'test' );mw.util.addPortletLink('p-associated-pages', '#', 'test' ); mw.util.addPortletLink('p-personal', '#', 'test' );mw.util.addPortletLink('p-tb', '#', 'test' );

Screenshot 2022-11-17 at 5.00.07 PM.png (732×1 px, 523 KB)

Screenshot 2022-11-17 at 4.58.59 PM.png (738×1 px, 537 KB)

ovasileva subscribed.

Change 859143 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] POC: Move ToC into page title when JS is enabled

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

Change 859143 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] POC: Move ToC into page title when JS is enabled

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