Commit graph

2784 commits

Author SHA1 Message Date
Nicholas Ray 4d2ad52374 Remove getElementsByClassName usage from sectionObserver
Based on prior discussion [1], using getElementsByClassName probably
isn't worth it.

[1] https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/756675/8..13/resources/skins.vector.es6/main.js#104

Change-Id: Id7f8aff73a1d2082ebfeaa9488a815d96317c156
2022-02-03 17:33:42 -07:00
jenkins-bot 99294ce088 Merge "Hide sticky header below 1000px port width" 2022-02-03 22:20:53 +00:00
jenkins-bot 3ea4800c40 Merge "Add recursive template for toc" 2022-02-03 20:55:15 +00:00
Clare Ming 4d8b548f5f Hide sticky header below 1000px port width
Bug: T298836
Change-Id: Ie524f997d2f9847252afc215d3ac589e511ace07
2022-02-03 13:54:16 -07:00
Jon Robson ddcf51a9ec Drop skin override
This is often used by gadgets/scripts to request
information from the API. Given `vector` means old Vector
now that leads to styling issues.

The unfortunate side effect of this is that any code
checking mw.config('skin') === 'vector' will no longer work
and we'll likely need to patch various gadgets accordingly.

Bug: T300814
Change-Id: Ic920e91960cf81790096395256b75f8ed0dc4173
2022-02-03 19:00:24 +00:00
David Lynch 19edeeabe0 Trigger a window resize event when toggling sidebar state
Other page elements outside of Vector should be notified that the
content area is changing size, in case they need to adjust the size of
fixed elements. Triggering window.resize should allow them to adapt
without needing to write Vector-specific code.

A specific case of this: the floating edit toolbar when VisualEditor is
open would be incorrectly sized / aligned if you toggled the sidebar in
edit mode.

Bug: T300826
Change-Id: I79e0fc67b5e35c2fb975a0a3048184de0d63813e
2022-02-03 12:18:42 -06:00
jenkins-bot 59c89b2db7 Merge "Overriding getPortletData will soon be deprecated" 2022-02-03 16:28:27 +00:00
Translation updater bot b9d9167d9d Localisation updates from https://translatewiki.net.
Change-Id: I532d663d0b93cb3108fd5b0717028877445b0721
2022-02-03 08:47:00 +01:00
jenkins-bot c03a5974cb Merge "Pass skin name to Hooks::isSkinLegacy" 2022-02-02 22:52:54 +00:00
Jon Robson 9b8d1b64cb Overriding getPortletData will soon be deprecated
See Ib8fc4cd183df3ed059a2d7000c56ab0a11d34f47

Bug: T299456
Change-Id: I743088e2665f8b304fb6273e912f9a6e5ff92e66
2022-02-02 14:37:36 -08:00
Jon Robson 2a2ee9b4d4 Pass skin name to Hooks::isSkinLegacy
Hooks::isSkinLegacy is only checking the skin version
but not the skin name. This is likely why we are seeing
errors due a mismatch between the result of Hooks::isSkinLegacy
and SkinVector::isLegacy

The parameter is made optional as it is not
always needed. For example in the onGetPreferences
method the skin hasn't been set at this point so all
we need to do is check the skin version.

Bug: T299971
Change-Id: I98465d5f6429f0a57dd0a95efcda71f380f3e842
2022-02-02 13:55:16 -08:00
Jon Robson c59a3b756f Fix the opt in URl
Hash fragment is wrong

Bug: T300097
Change-Id: I9e63606b66195a3b3db95e519514019dbd7d1bdb
2022-02-02 18:54:13 +00:00
Translation updater bot 96db3770df Localisation updates from https://translatewiki.net.
Change-Id: Ia05854ef2d4429faa2b7a647335dcb2e66fc505c
2022-02-02 08:21:30 +01:00
Translation updater bot 5dc8f73f90 Localisation updates from https://translatewiki.net.
Change-Id: I5a2fdadec8e517263736892f6692acf15a3d06da
2022-02-01 08:28:45 +01:00
jenkins-bot 63b1bdbb2b Merge "Drop search related feature flags" 2022-01-31 22:05:45 +00:00
jdlrobson d8382ec96b Drop search related feature flags
Given Wikidata is the only project using modern Vector,
and the only project where the search API is not applicable,
this will result in a loss of autocomplete on Wikidata.org
which will fall back to the non-JS mode.

Bug: T290688
Change-Id: Iece5a4efd43e09cd90c842c9c134ca115b35f2b2
2022-01-31 21:00:22 +00:00
bwang 66359e8fa5 Setup jest unit tests and add basic test cases for AB.js and App.vue
Bug: T300561
Change-Id: Ib7c314b094bd823ae233374f63c9094724d6c06f
2022-01-31 20:50:33 +00:00
jenkins-bot 44e6289f8d Merge "Tests: Limit testGetTemplateData to current values to allow expansion" 2022-01-31 20:26:49 +00:00
jenkins-bot acbf2fb739 Merge "Changes the labels of the Vector skins" 2022-01-31 19:03:13 +00:00
Ed Sanders 1cd5bf4d41 Use new ve.activationStart hook to hide header earlier when loading editor
Bug: T299907
Depends-On: I0eaeb98719bf7a43e4a87366cfcd204f35b74650
Change-Id: I8e8b635b46e79c63c4dafbd2418c9be94528ec06
2022-01-31 18:32:55 +00:00
jenkins-bot fa3c528bef Merge "Don't show language alert on main page if it has no languages" 2022-01-31 18:15:49 +00:00
jenkins-bot af39ad98ea Merge "Language alert box should use Html::noticeBox" 2022-01-31 17:05:57 +00:00
Clare Ming 5d2bc68da1 Don't show language alert on main page if it has no languages
Bug: T299581
Change-Id: Idc5b702626249ebec5d627e7b88fd6adf3e3750a
2022-01-31 09:43:15 -07:00
Jon Robson c87f6a8b2e Tests: Limit testGetTemplateData to current values to allow expansion
In I0cd49e6d621cd437e440ac7f7627eaa064ab870c a new field will be
added. Our tests in Vector shouldn't fail every time this happens

Change-Id: Ieb4923e9f58f950ee02ce3eb1446b982d1f5724a
2022-01-31 08:05:33 -08:00
Translation updater bot 5daf29df0d Localisation updates from https://translatewiki.net.
Change-Id: Ic1ff753ee327d588c1da99758ded315102ce0b2b
2022-01-31 08:24:19 +01:00
Jon Robson ac084e930a [config] Vector should default to language button
This reflects production and avoids confusion during development
e.g. T299581#7660160

We already have overrides in place for all wikis where this should not
apply.

Change-Id: I45ecda031f83fc63c9c878c9caef42d327b2463f
2022-01-28 15:38:27 -07:00
jenkins-bot 6a43f3af49 Merge "Fix issues with language alert in sidebar:" 2022-01-28 22:26:21 +00:00
Clare Ming 588d273360 Fix issues with language alert in sidebar:
- Don't show language alert if:
  - language button is not in header
  - on main page
  - on special page
- Update message with sitename.

Bug: T299581
Bug: T295555
Change-Id: I6290ea440e6b4673f29939376ac47ab53a882001
2022-01-28 13:58:31 -07:00
Jon Robson e1f1899dae Add recursive template for toc
Depends-On: I5ceec7f7bdea8b16ba0b300486ec0c4f2202b602
Bug: T299065
Change-Id: I0205596f0f7c0f452e80bd6a1f49e59e8388b4b8
2022-01-28 19:58:57 +00:00
Clare Ming a1ba537f6a Enable sticky header by default
Bug: T297924
Change-Id: If95a917ab3fbbe49271c62e0ce1da8b74d0bd7b8
2022-01-28 10:46:48 -07:00
Jon Robson 029110810e Language alert box should use Html::noticeBox
Html::noticeBox doesn't output any deprecated classes so
will not conflict with any user gadgets now.

Bug: T299625
Change-Id: Ic9aef5c8ff3fae6a79c7cf82cc3c97714cf40b3d
2022-01-27 15:35:38 -08:00
jenkins-bot 0e08ae8c17 Merge "Rely on core TOC data to show the TOC in Vector" 2022-01-27 20:10:29 +00:00
jdlrobson a357b13ce0 Changes the labels of the Vector skins
In preparation for roll out of SkinMigration everywhere.
(Change to configuration will be done via backports throughout
the week)

Bug: T299927
Change-Id: Iebe60b560069c8cfcdeed3f5986b8be35501dcbc
2022-01-27 19:13:55 +00:00
jenkins-bot 24e7430734 Merge "Add sectionObserver and tableOfContents component JS to respond to intersection changes" 2022-01-27 17:13:08 +00:00
Jon Robson 6534f01162 Opt out of external link icons
This was related to two unintentional regressions as we switched
off the legacy feature in July 58c87018 in legacy Vector,
and 722b5fbf in modern Vector.

Bug: T298433
Change-Id: Id258e328d1691f7bd31d2b3c57d64d5434706561
2022-01-27 15:26:39 +00:00
bwang d244f43e39 Rely on core TOC data to show the TOC in Vector
Bug: T298796
Depends-on: I406acf333d28b3898e3bc4968d05224febd09b3c
Change-Id: Iebb9c86b409a49d211c320f540b9af409b604b5b
2022-01-26 16:14:17 -06:00
Nicholas Ray 3c433a5315 Add sectionObserver and tableOfContents component JS to respond to intersection changes
This commits sets up the Table of Contents to bold the active section
when the section is scrolled.

Unfortunately, because our content does not have actual sections but
instead has a flat list of headings and paragraphs, we can't use
IntersectionObserver in the conventional way as it is optimized to find
intersections of elements that are *within* the viewport and the
callback will not reliably fire during certain scenarios (e.g. with fast
scrolling or when the headings are not currently within the viewport).
Furthermore, iterating through a list of elements and calling
`getBoundingClientRect()` can be expensive and can also cause
significant forced synchronous layouts that block the main thread.

The best compromise in terms of performance and function that I've found
is to use a combination of a throttled scroll event listener and
IntersectionObserver's ability to asyncronously find the
boundingClientRect of all elements off the main thread when `.observe`
is called which is the approach this patch takes. Although this is an
unorthodox way to use IntersectionObserver, performance profiles
recorded while holding the "down" arrow and scrolling for 10 seconds
with a 6x CPU throttle are comparable between master and this patch:

master: https://phabricator.wikimedia.org/F34930737
this patch:  https://phabricator.wikimedia.org/F34930738

Bug: T297614
Change-Id: I4077d86a1786cc1f4a7d85b20b7cf402960940e7
2022-01-26 14:11:43 -07:00
Translation updater bot 3c7b1e0eef Localisation updates from https://translatewiki.net.
Change-Id: Ic08803bce8ca2761d3eaacdad81cd38d68298143
2022-01-26 08:26:59 +01:00
Jon Robson 9fba9b6b9e Do not load common.js twice
An error in both of these modules. This module is additive (it doesn't
replace the existing user module) so only needs to add new pages, not
append to existing pages.

Bug: T300070
Change-Id: I3ba2ce82ba924972d0f9fea763328510aef41f8e
2022-01-25 20:10:31 +00:00
Translation updater bot 252b41de79 Localisation updates from https://translatewiki.net.
Change-Id: Ie414f6d9506a5de628a0e75a1e924dd719a2fc53
2022-01-25 08:34:31 +01:00
jenkins-bot e4b73894b8 Merge "Update typescript to latest (v4.5.5)" 2022-01-25 02:19:31 +00:00
Jon Robson b1cdf4acae Opt in link should be different in migration mode
In migration mode the control for opting out is different

Bug: T299927
Change-Id: Ie824c9051c929641e5ebab7a7b4a062e469ed6a0
2022-01-25 00:54:51 +00:00
Nicholas Ray 76eb7caa2f Update typescript to latest (v4.5.5)
Vector's tsc version is currently reporting errors that the latest
typescript version doesn't report and vice versa. Upgrade to the latest
version to avoid these discrepancies.

Additionally:

Fix tsc errors that are now reported by updated version

Bug: T297614
Change-Id: I0eb67bcc1a5ce214fcf2d6f6433a5de3a845b6a6
2022-01-24 16:35:45 -07:00
Jon Robson 435c903523 Fix bug in SkinVersionLookup
Bug: T299971
Change-Id: Icd8874315bf3c5846b00e8c34eb1a739c4a0feba
2022-01-24 13:34:06 -08:00
Translation updater bot 26835ad0ce Localisation updates from https://translatewiki.net.
Change-Id: I4386c70c08b9ed4f024a065280460c0878612257
2022-01-24 08:29:35 +01:00
jenkins-bot 92e5d4fd46 Merge "Avoid escaping TOC section titles" 2022-01-21 16:30:47 +00:00
Translation updater bot c75bbde795 Localisation updates from https://translatewiki.net.
Change-Id: Ie10210c79628b683d1963b90db6f143e3c3c423e
2022-01-21 08:15:44 +01:00
jenkins-bot efb6b4d152 Merge "Respect useskin when operating in MigrationMode" 2022-01-20 22:20:33 +00:00
bwang 3abd70392b Avoid escaping TOC section titles
Change-Id: I81f92627642c20d0770b2bc3223e056fc646365a
2022-01-20 12:31:11 -06:00
jenkins-bot 555db12047 Merge "Use 'toc' skin option and render with new TableOfContents mustache template" 2022-01-20 18:09:34 +00:00