Commit graph

1698 commits

Author SHA1 Message Date
Sam Smith b46751d4ed hooks: Don't use SkinVersionLookup directly
The feature manager abstracts away how a feature is enabled from the
consumer of that feature. Accordingly, replace direct instantiation of
SkinVersionLookup with usage of the Vector.FeatureManager service.

Supporting changes:

- Add Vector\VectorServices, a simple wrapper around
  MediaWiki\MediaWikiServices that allows us to both document and
  type-hint services specific to Vector

- Add Vector\Hooks::isSkinVersionLegacy to minimise repetition

Additional changes:

- Make the MakeGlobalVariablesScript hook handler return early if the
  user isn't using the Vector skin like the other hook handlers

Bug: T256100
Change-Id: I93b5ef39802323c7ac658af8fa7cc312fff68aa7
2020-08-18 11:40:48 +01:00
jenkins-bot b1d362cb1a Merge "hooks: Document CSS classes used elsewhere" 2020-08-17 22:48:06 +00:00
jenkins-bot 2083ad5c71 Merge "Apply @min-width-supported to .mw-page-container" 2020-08-17 22:31:13 +00:00
Sam Smith 8d98ba35da hooks: Document CSS classes used elsewhere
Bug: T256100
Change-Id: I3fef99e5b94ca4dc221282f28c7608f84d8fb746
2020-08-17 15:27:32 -07:00
jenkins-bot 95896ff703 Merge "hooks: Don't send config variables unnecessarily" 2020-08-17 20:44:34 +00:00
Translation updater bot 82e53d914b Localisation updates from https://translatewiki.net.
Change-Id: I8f943acd2074cfd95920e5c84b8e0de350bb5c04
2020-08-17 08:47:54 +02:00
Translation updater bot 74e94c3ea9 Localisation updates from https://translatewiki.net.
Change-Id: Iadc02718b524848db684398317686fafe60b5895
2020-08-14 08:43:07 +02:00
Nicholas Ray 7a769a0374 Apply @min-width-supported to .mw-page-container
As part of moving search into header work, a min-width (via
@min-width-supported variable) was introduced on the body and takes
effect when the search feature is enabled.

However, given a min-width already exists on the page container from the
max-width work, I'm wondering if it makes sense to replace that one with
the @min-width-supported variable as it seems like we should only have
one min-width vs. having two.

Note: As a bonus, this has the (unintended but helpful) side-effect of
mitigating the sidebar button being blocked by the personal menu at
small viewport widths (T258465).

[1] I7f8059d43eaab49de362405784b34a4fe502c7b0

Bug: T258465
Change-Id: I920cd0e9d1564c82bcdc89b721352620158073c6
2020-08-13 17:11:48 -06:00
jenkins-bot feae33a4e6 Merge "Remove VectorBeforeFooter hook" 2020-08-13 22:36:09 +00:00
Sam Smith 75ade04dfc hooks: Don't send config variables unnecessarily
The wgVectorDisableSidebarPersistence config variable is only required
when the user is logged in. Don't send it to the client when the user is
logged out.

Bug: T255727
Change-Id: I27eda8c18b438ef3251b2c07a0ed8b0cef6cae64
2020-08-13 15:37:45 +01:00
Translation updater bot a03a19f7af Localisation updates from https://translatewiki.net.
Change-Id: I27728d160e95a031759066f21b458271701e2640
2020-08-12 08:21:34 +02:00
jenkins-bot 6fc6cf3c1e Merge "build: Updating npm dependencies" 2020-08-12 00:21:05 +00:00
libraryupgrader e6fe4ef775 build: Updating npm dependencies
* webpack: 4.43.0 → 4.44.1
  * https://npmjs.com/advisories/1548
* terser-webpack-plugin: 1.4.3 → 1.4.4
  * https://npmjs.com/advisories/1548

Change-Id: Ia303890fdeeb81410c41ebe8fc84591e78ad2a05
2020-08-11 23:39:47 +00:00
jdlrobson 53d9452795 Move the personal tools and search into header
To support roll out and avoid issues with cached HTML the new
styles for the new search feature are restricted to HTML where
the body tag has `skin-vector-search-header` class.

For legacy mode, we introduce a new class
`skin-vector-search-header-legacy` and temporarily use a CSS3 `:not()`
selector to ensure the styles ship during the phase where cached
HTML can be served. While this will create some display issues in
browsers that do not support CSS3 selectors, all grade A browsers in
our compatability matrix support this.

Bug: T249363
Change-Id: I7f8059d43eaab49de362405784b34a4fe502c7b0
2020-08-11 23:36:01 +00:00
jenkins-bot a639ff3aa9 Merge "[modern] Layout index file." 2020-08-11 23:00:46 +00:00
jdlrobson e3a986f587 [modern] Layout index file.
Keep variables concerned with layout in the master file but pull out
the default layout into a separate file.

Change-Id: I4acc2937f8e8a76274a3ffb76e3729dc89ce1ad7
2020-08-11 20:45:38 +00:00
Translation updater bot a9367d1c46 Localisation updates from https://translatewiki.net.
Change-Id: I0937f1e910601b6783580e954e5bdae2158aa14c
2020-08-10 09:04:19 +02:00
Translation updater bot f6a1d21af1 Localisation updates from https://translatewiki.net.
Change-Id: I7f57ac579676a819140517f924799338e3b5f892
2020-08-06 08:29:52 +02:00
mainframe98 ddc32a5833 Provide messages through skin options
Bug: T259664
Depends-On: Ie52aadd6b7de8c4db66de662f2f03e295c29034d
Change-Id: Ib03c0683aa00d334224e7b3507098dedcc848e44
2020-08-05 10:24:34 +02:00
jenkins-bot 05a82f6069 Merge "Vector manages search functionality and provides config flag" 2020-08-04 17:53:05 +00:00
Sam Smith e60734a773 documentation: Align @package annotations
Following on from I9445d5c, align the @package annotations in
the Vector\FeatureManagement namespace and subnamespaces.

Bug: T248399
Change-Id: Icd287a52d149123bca5d9f0c55154f932f55148e
2020-08-04 12:48:11 +01:00
jenkins-bot 5e327d6f34 Merge "Document stability of undocumented classes" 2020-08-04 10:52:20 +00:00
Translation updater bot 458209ec33 Localisation updates from https://translatewiki.net.
Change-Id: Iebcf6444146169872ca3abd0623c19e971822fb8
2020-08-04 08:34:57 +02:00
jdlrobson 580a0aa537 Document stability of undocumented classes
Bug: T248399
Change-Id: I9445d5c0753f7272c3d22d66b8824f8a95b86d41
2020-08-03 17:17:53 -07:00
Peter Ovchyn 7b8bad23f2 Vector manages search functionality and provides config flag
Add onSkinPageReadyConfig hook that overrides module after page loaded
The new module is currently empty pending further work in the
feature branch.

Depends-On: I0dc38e74052027f26a70d58b5f520e5830e0d55d
Bug: T257706
Change-Id: Ib6c8f890fb3d6e751f5f01a6576614b9cc9b440c
2020-08-04 00:06:31 +00:00
jdlrobson f92e40152a Print: Add layout print styles on Ctrl+p and ElectronPdf
Bug: T253842
Change-Id: Ia7104a30a37a13cbeb6cfa4bdf1ee50ee677a87a
2020-08-03 20:06:37 +00:00
jenkins-bot 391d0caa27 Merge "Drop support for building sidebar portal with non-standard format" 2020-08-03 20:00:00 +00:00
jenkins-bot 3707751621 Merge "[build] Fold NPM build script into test" 2020-08-03 19:54:52 +00:00
Ammar Abdulhamid 2cd45072b4 Drop support for building sidebar portal with non-standard format
Bug: T259306
Change-Id: I2015ddc9bfad614e54427d0de4e7874092cfbfe0
2020-08-03 19:38:34 +00:00
jenkins-bot edb3fef5b9 Merge "Refactor: Replace PHP complexity with JS simplicity" 2020-08-03 18:47:09 +00:00
jenkins-bot 48f44e3575 Merge "[build] Make the pre-commit hook optional" 2020-08-03 18:44:01 +00:00
Stephen Niedzielski cf17aee48b [build] Make the pre-commit hook optional
Add a new NPM script, `pre-commit`, which _conditionally_ invokes
`npm test`. Previously, the pre-commit hook was configured by default to
invoke `npm test`. Now it is configured explicitly to invoke the new
`pre-commit` script.

The rationale for this change is that some folks may prefer workflows
that defer all validation until CI. Supporting these workflows is a
small change, most of it documentation.

This change isn't necessary for T257647 but supports and seems like an
overall improvement to the repo regardless of whether code is built or
not.

Bug: T257647
Change-Id: I19a78e0e677026cd6887245d96e63a414397a3db
2020-08-03 18:23:42 +00:00
jenkins-bot bb1f1c3fd6 Merge "Don't add Vector-specific <body> classes when not using Vector" 2020-08-03 10:56:20 +00:00
Translation updater bot 79df222565 Localisation updates from https://translatewiki.net.
Change-Id: I4e7d19a9b91f8ffd7d145dd017a58a4e7da4f015
2020-08-03 08:37:25 +02:00
Jack Phoenix 3ea7bec6db Don't add Vector-specific <body> classes when not using Vector
Hooks are global, unlike the old Skin addToBodyAttributes() method, which was per-skin.

Follow-up to a04fc71f30

Change-Id: Ic8a581256c4775ba45b2c5188d678751ba9c7023
2020-08-01 21:05:57 +03:00
jenkins-bot 0ae68144b0 Merge "[less] Remove normalize rules covered by mediawiki.skinning/normalize module" 2020-07-31 22:45:05 +00:00
jenkins-bot eb5798bc30 Merge "[build] Add NVM configuration" 2020-07-31 22:38:38 +00:00
Volker E b0ccdc5892 [less] Remove normalize rules covered by mediawiki.skinning/normalize module
`padding: 0` was either a rule targeting very early Operas or
Netscape/Firefox or came out of Eric Meyer's reset.css as
misappropriation.
normalize.css haven't had it in v1.0.0, only relied on `margin: 0`
normalization for IE 6 & 7.

Change-Id: I3d2894a1e68414b64751bd6ebe7e1af77d260ee7
2020-07-31 22:21:25 +00:00
jdlrobson ed7fd252cd Refactor: Replace PHP complexity with JS simplicity
In PHP we add collapsible classes to all elements except watchstar
so that certain tabs can be collapsed under the more menu in JS.
This adds unnecessary complexity to our codebase and is not used
if JS is disabled.

To simplify this and bring Vector's PHP consistency with core this
logic is moved to JavaScript.

Bug: T259372
Change-Id: I2acbf7089198118626368ee8a37615d2de062f83
2020-07-31 22:15:08 +00:00
Translation updater bot e0f56960f2 Localisation updates from https://translatewiki.net.
Change-Id: I596ef0a1ebead16dd75585485acd642752e56005
2020-07-31 08:48:02 +02:00
Stephen Niedzielski fd51560c37 [build] Add NVM configuration
Add NVM configuration that matches WVUI, Popups, MobileFrontend to
specify the expected Node.js version when working with this repo. The
Node.js version chosen for Vector is identical to these projects as it
does not seem beneficial to differ at this time.

Bug: T257647
Change-Id: I0653c596ca74c0fb1ace4a6a6b08474daaff4f71
2020-07-31 02:25:21 +00:00
Stephen Niedzielski d752997e4f [build] Fold NPM build script into test
The NPM `build` script was being used to call `test`. The confusion was
likely due `build` calling the TypeScript compiler which in this case
isn't building anything. It's only used for tests. Since a proper
`build` script will be added in T257647. Move the tests in `build` to
`test` and drop `build`.

Bug: T257647
Change-Id: I7f2c983915f6b1eaa0aa88eb8dd4b32d9c954b78
2020-07-30 19:31:07 -06:00
jdlrobson d24d858264 Cleanup: Drop unnecessary isLegacy checks
The has-logo property is redundant:
The Sidebar in legacy is its own component. The logo is always
rendered in the legacy sidebar.

data-emphasized-sidebar-action can be unconditionally sent
The legacy sidebar doesn't use it, so there is no need to conditionally
add a check for legacy

These two changes allow us to remove the isLegacy property in favor
of the single use of the isLegacy method.

Change-Id: Ie7ee3cec29b20d07db81799484627254d4a78f5f
2020-07-30 15:10:57 -07:00
jdlrobson 1aab97ec03 Cleanup: Drop unused template variable
html-printfooter is no longer used now that core provides
this as part of html-body-content

Change-Id: Ib9d6b5ce56ecde38f5de948dc0f80c7a3e42d2b3
2020-07-30 20:38:36 +00:00
Ammar Abdulhamid a7c983a2ed Remove VectorBeforeFooter hook
Bug: T255214
Change-Id: Iac66823119c7279f5e922b0e258602dd6c4ca5c4
2020-07-30 13:27:04 -07:00
jdlrobson 2c74f08d3e Merge SkinVector and VectorTemplate (step 2/2)
Rename SkinTemplateVector to restore SkinVector

Bug: T251212
Change-Id: I7e06a4cc226f3434c0f655212a464b8b98bcc7f4
2020-07-30 12:20:13 -07:00
jdlrobson ee6974ad35 Merge SkinVector and VectorTemplate (step 1/2)
Please note I7e06a4cc226f3434c0f655212a464b8b98bcc7f4 should be
merged at the same time as this patch.

== The background ==
All extensions have been weaned of BaseTemplate hooks in
Wikimedia projects.

This change now means that Vector will no longer run
any BaseTemplate hooks. See the epic T253809 for the
implementation details.

== The change ==
BaseTemplate will now have nothing to do with the rendering of
Vector. The skin version is added to express the significance of
breaking compatibility with 3rd party extensions.

We TEMPORARILY remove SkinVector to retain git blame. SkinTemplateVector will
be renamed SkinVector in the follow up (see 2/2)
Update skin.json to use SkinTemplateVector for the skin (this will be fixed
in a follow up).

The isLegacy method is moved to SkinTemplateVector.

Changes of note:
* html-debuglog is no longer needed. SkinMustache includes this information on
the skins behalf
* html-printtail and html-headelement are now not needed in the master template
and added by SkinMustache
* Skin::getAfterPortlet does not provide the `after-portlet` wrapping element provided
by BaseTemplate::getAfterPortlet so this is added
* SkinTemplate::getFooterIcons does not support the options that BaseTemplate::getFooterIcons
does so any icons which do not have an image must be manually checked for and unset

Known changes to HTML output as a result of intentionally
delegating their output to the core SkinMustache class:
* A new line is removed between the body element and #mw-page-base
* #mw-html-debug-log now appears at the end of the body element
* #printfooter is now a child of #mw-content-text rather than sibling.

Bug: T251212
Change-Id: I4e89beb96f6401ed7e51bafdf0aac408f5a2c42f
2020-07-30 11:18:45 -07:00
Ed Sanders ad6c4ea6f3 Fix Yoda conditionals
Change-Id: I5074e8555154c421f4821de37c79d85e1a33d68d
2020-07-30 17:02:33 +01:00
Translation updater bot 0ab352856b Localisation updates from https://translatewiki.net.
Change-Id: I6eb3b6fb5fd6f952d9fd4add594c965dd12e3f9e
2020-07-30 08:38:20 +02:00
libraryupgrader 71bc6852c8 build: Updating elliptic to 6.5.3
* https://npmjs.com/advisories/1547
* CVE-2020-13822

Change-Id: Icefde4999397197d574812cbc0be102e90e5de89
2020-07-29 23:19:53 +00:00