Commit graph

4441 commits

Author SHA1 Message Date
jdlrobson 9312f3d1b2 Forbid certain methods with ES6 equivalents
We do this in core and in MobileFrontend. Let's ban some here
too.

Change-Id: I4cc24381ab0b637eb386c93bd0d88fe803db0483
2018-10-01 15:33:46 -07:00
Stephen Niedzielski 77646a40c3 Hygiene: inline util.noop
Replace mobile.startup/util.noop with inlined implementation,
`function() {}`, to reduce indirect dependencies on jQuery (.noop).

Change-Id: I48368ef6cf03fd67e117c9bf8612bbddb7d250c5
2018-10-01 12:54:52 -06:00
jenkins-bot cb484b6ed7 Merge "Add theme-color meta tag to Minerva" 2018-10-01 18:29:52 +00:00
jdlrobson 87924e7e25 Add theme-color meta tag to Minerva
For non-web-apps we can still control the color of the address and
status bar. Currently this is defined in MobileFrontend)
but is configurable if we ever want to change it. If not defined
(e.g. no MobileFrontend/no config) it is not added.

Bug: T204691
Depends-On: I39c0905f86edc4f52235b905850c31257e7f792e
Change-Id: I3ab0f538fb6ae3332574fd212eea1a7ec6a397bd
2018-10-01 14:25:25 +00:00
Bartosz Dziewoński 1a89047d3b Move redlink CTA out of skins.minerva.editor
It is not part of the editor. Redlinks are part of page content.

Bug: T198765
Change-Id: Iee77a228b6f2db1c5f2e85226d6cc1c6a73a89be
2018-09-27 20:13:16 +00:00
Bartosz Dziewoński 1b61a14535 When browser doesn't support mobile editor, use fallback editor rather than none
Change-Id: I41bd554c3e979061dd8b1846a6412efb3284e7e9
2018-09-27 20:12:49 +00:00
jenkins-bot ba827d4b3c Merge "Revert "Minerva is responsible for turning on WikimediaEvents itself"" 2018-09-26 20:42:38 +00:00
jenkins-bot 282bdaaefa Merge "Less harsh failure mode when attempting to undo in mobile editor" 2018-09-26 20:19:00 +00:00
jenkins-bot ab593a3268 Merge "Remove some useless code trying to show things that are always visible" 2018-09-26 20:18:59 +00:00
jenkins-bot 582a68570d Merge "Create $returntoquery variable properly" 2018-09-26 14:44:13 +00:00
Piotr Miazga 71cbed60fb Create $returntoquery variable properly
The $returntoquery variable is created only when request wasn't
posted, but the variable can be accessed on POSTed request.
To fix that issue we need to always define $returntoquery as
an empty array. This is done in order to prevent leak of
any sensitive data sent by POST request.

The sample error from fatalmonitor:
Undefined variable: returntoquery in
skins/MinervaNeue/includes/skins/SkinMinerva.php on line 701

Bug: T205449
Change-Id: I20e5955ddcb99c110a3dc03fb3b56c1904601453
2018-09-26 15:36:44 +02:00
Translation updater bot abffc793d2 Localisation updates from https://translatewiki.net.
Change-Id: I6b3d5e3d106d44483a4723f40ecd7cd6423e2590
2018-09-26 13:11:48 +02:00
Bartosz Dziewoński b6672a4f9f Less harsh failure mode when attempting to undo in mobile editor
The fancy mobile editor doesn't support undo, but we can just use the
fallback (no-JS) editor. The experience is not very friendly (e.g. due
to two-column diff), but it works.

Previously we showed an old-school alert() message and then loaded the
fancy editor as if it was a normal edit, ignoring the undo parameters.

The whole thing is rather hypothetical, since there are no links to undo
in the mobile interface. See T191706.

Bug: T191706
Change-Id: I5147ada9e85d9188f19ae898fdd411985d19182f
2018-09-25 22:01:36 +00:00
Bartosz Dziewoński ffa4d0e848 Remove some useless code trying to show things that are always visible
* Page edit action (#ca-edit)
  I guess it became always visible when no-JS editing was implemented?

* User page creation CTA (.edit-link)
  I'm making it always visible in Ie2fc6d43ebc03626517eec21bf4738dca05152d0
  (which also makes it available for no-JS editing).

* Section edit links for nested sub-sections (.in-block > .edit-page)
  No idea about these, but they are clearly always shown (even in
  non-article namespaces).

Depends-On: Ie2fc6d43ebc03626517eec21bf4738dca05152d0
Change-Id: I226cb1fd1e716078a4a34ed8349d5304428964cf
2018-09-25 22:01:24 +00:00
jenkins-bot 9515660868 Merge "Remove user page CTA edit link browser test (move to MobileFrontend) [try #2]" 2018-09-25 21:40:34 +00:00
jenkins-bot 1d9a057b72 Merge "Allow mobile TOC on pages in all namespaces" 2018-09-25 20:56:08 +00:00
Bartosz Dziewoński 13b60f6824 Remove user page CTA edit link browser test (move to MobileFrontend) [try #2]
This is a MobileFrontend feature, implemented
in ExtMobileFrontend::getUserPageContent().
Having the test for it in the Minerva repo made
it harder to make changes to it. Adding it there
in I6e763cd6b6763c60d2ad47bf384f739dfb1a07c0.

Depends-On: I6e763cd6b6763c60d2ad47bf384f739dfb1a07c0
Change-Id: Id1692b50f3f0d282c8aea4c45b63845f418e0970
2018-09-25 18:05:10 +00:00
jenkins-bot 1976ef87be Merge "Revert "Remove user page CTA edit link browser test (move to MobileFrontend)"" 2018-09-25 16:17:24 +00:00
Jdlrobson 39c5dbc94a Revert "Remove user page CTA edit link browser test (move to MobileFrontend)"
This reverts commit 6daf19dfb5.

Mobilefrontend change was reverted meaning this test should be
restored here so we continue to have coverage.

Change-Id: I2e8eeacaf01aa61040405501d69f329fe3a9bbd6
2018-09-25 15:47:36 +00:00
Piotr Miazga 8c587c58c9 Fix broken config name for MinervaABSamplingRate
Bug: T205355
Change-Id: I983866f177c4ea994954f5236b2820a7f0b8b661
2018-09-25 14:45:51 +02:00
Bartosz Dziewoński a773c0eed2 Allow mobile TOC on pages in all namespaces
It was limited to the main namespace since its introduction in
Ieabe8f7071696cde6afbdc6df853aacdb741a4a3. Unfortunately that
commit does not explain the reason.

It should be shown e.g. on user pages (so that sandbox pages
look like the real article) or on project pages (many policy
or help pages on Wikipedia are long and would benefit from it).

It looks like some of the CSS code already assumed that the
TOC would be shown in all namespaces (space for it was reserved
using a 'visibility: hidden;' element on all pages).

Bug: T205312
Change-Id: Id6935f5a7a3701c1c7a38fb37b48b6a3bbc80393
2018-09-25 11:49:25 +02:00
jenkins-bot 5596488f9d Merge "Minerva A/B tests are not subject to HTML caching time" 2018-09-25 09:32:35 +00:00
jenkins-bot b2f2152fb0 Merge "Remove broken remains of &campaign=leftNavSignup handling" 2018-09-25 08:49:46 +00:00
jenkins-bot db24f6cc86 Merge "Remove user page CTA edit link browser test (move to MobileFrontend)" 2018-09-24 22:55:22 +00:00
Jdlrobson abf445ec9b Revert "Minerva is responsible for turning on WikimediaEvents itself"
While harmless, this patch is not needed if we take a
different approach as discussed in
https://phabricator.wikimedia.org/T204144#4612790

This reverts commit 01dc9de92e.

Change-Id: Id2fdd8677042121142ab2663edfa0ee400b8bf22
2018-09-24 22:52:12 +00:00
jdlrobson 58c0b8131f Minerva A/B tests are not subject to HTML caching time
Config added inside SkinMinerva is subject to the rules of HTML
caching and can take several days [1]

Adding it via the onResourceLoaderGetConfigVars hook reduces the
cache time to minutes [2], giving us more control over the experiment's
enabled state.
[1] T124954
[2] https://www.mediawiki.org/wiki/ResourceLoader

Bug: T205355
Change-Id: I18cb40afe405e2f6a89a7ce5a924eb855aed5430
2018-09-24 22:49:34 +00:00
Bartosz Dziewoński 6daf19dfb5 Remove user page CTA edit link browser test (move to MobileFrontend)
This is a MobileFrontend feature, implemented
in ExtMobileFrontend::getUserPageContent().
Having the test for it in the Minerva repo made
it harder to make changes to it. Adding it there
in I7cac24cf64422212196439bf49598ed749d5fafa.

Depends-On I7cac24cf64422212196439bf49598ed749d5fafa
Change-Id: I93e0f195b3cad1ae83ee2ae3b5b4c5f08944882e
2018-09-24 22:37:20 +00:00
jenkins-bot 98ebba5bbe Merge "Buttons should be cursor pointer by default" 2018-09-24 21:00:53 +00:00
jdlrobson 85505d6906 Buttons should be cursor pointer by default
Bug: T205321
Change-Id: I8f7f4afe22db33e16b443394fe8748dcd76ae913
2018-09-24 20:41:26 +00:00
Bartosz Dziewoński 992630c705 Remove broken remains of &campaign=leftNavSignup handling
This code could never be used under normal circumstances since
a crucial bit of it was removed from MobileFrontend in 2015:
(I65e943b6dad8bfea994020f9f555bd095da1a171)

    // Allow us to distinguish sign ups from the left nav to logins.
    // This allows us to show them an edit tutorial when they return to the page.
    if ( $query['returntoquery'] === 'welcome=yes' ) {
    	$query['returntoquery'] = 'campaign=leftNavSignup';
    }

…and honestly, that's for good, because it fails horribly
when triggered by adding &campaign=leftNavSignup to the URL
manually: clicking "Start editing" in the callout navigates
you to an article called "Undefined/leftNavSignup".

Bug: T205325
Change-Id: I0e385488be5b2eaa7d489029b91e18b336c0d133
2018-09-24 19:30:03 +00:00
Translation updater bot 08b8685f61 Localisation updates from https://translatewiki.net.
Change-Id: I49997bdce606347f4451fa1b4b4fa1ca3aff4af7
2018-09-22 09:37:45 +02:00
Bartosz Dziewoński 786ec45c30 SkinMinerva: Remove incorrect comment
'returnto' is, in fact, set a few lines above this comment,
since 2013 (I1553ee71f4f9ffec8462e3f9b85de9f39d921204).

Change-Id: I20ab084b3ddf59d338268f00a7f2306c9e2bd2b3
2018-09-21 19:57:15 +00:00
jenkins-bot ee5959a6fb Merge "Get rid of ICustomizableSkin" 2018-09-21 16:03:47 +00:00
jenkins-bot 1ad76e7d13 Merge "Users can request new treatment via query string" 2018-09-20 19:02:59 +00:00
jdlrobson 2f3fed5f4a Users can request new treatment via query string
Bug: T204746
Change-Id: Icea989a401a5de8772fdcd9f25f100899bc1c6f3
2018-09-19 15:21:32 -07:00
jdlrobson 01dc9de92e Minerva is responsible for turning on WikimediaEvents itself
Unlike other skins, Minerva wants to be in charge of when WikimediaEvents
is loaded, so that it can guarantee load order happens at a time that
suits it.

WikimediaEvents will be loaded after initialisation of the interface.
This allows Minerva to enable schemas such as ReadingDepth conditionally.

Upon merging this patch, Ibb45f40ea301727c0c6480043760bd9426106845 can
be merged which will revoke WikimediaEvent's ownership.
Merging in this order will ensure that ReadingDepth  is never
removed from production.

Bug: T204144
Change-Id: If8395033f31485aca0ca3b38fda1be985369b481
2018-09-19 22:09:26 +00:00
Jan Drewniak 2163d5f965 Rename QUnit test files from "test_" to "test.js"
Updates QUnit test files from starting with "test_" to ending with
"test.js" in accordance with the Readers Wed coding conventions.

https://www.mediawiki.org/wiki/Reading/Web/Coding_conventions

Bug: T197884
Change-Id: I98877e3fc432b6edd0c53d834ef23b3ef8fb7d6a
2018-09-19 08:01:31 -06:00
jdlrobson 03bc2518d4 Red links are linked separately
In I1a471f81cc9390fc9e8665a7a336cf2dd7a063ab we excluded
edit events that led to the creation of a new page.

This restores them by providing a dedicated home for this data
in the schema.

Additional changes:
* Address some line length warnings

Bug: T204073
Change-Id: Ie7eb95f15737e94b7926d38ed6411bc0e5df2404
2018-09-18 13:43:56 -06:00
T. Bayer 287a2aafe9 Exclude redlink clicks from modalEditClicked event
This event is meant to track attempts to edit the page we are on,
but also happened to catch clicks on "see talk page" links, in
case that talk page doesn't exist yet.

Bug: T204073
Change-Id: I1a471f81cc9390fc9e8665a7a336cf2dd7a063ab
2018-09-18 13:37:34 -06:00
Stephen Niedzielski 8ac5b9c663 Hygiene: remove unused pre-commit script
dev-scripts/pre-commit is unused since 5037568 which added the
pre-commit NPM package. Remove the script.

Change-Id: I7b7e11415dc6ada17a5fe6bc1a390cc5de80851a
2018-09-18 17:01:31 +00:00
jenkins-bot 1e246029fa Merge "Remove 'mobile.editor.ve' styles (move to MobileFrontend)" 2018-09-18 16:45:40 +00:00
jenkins-bot dcfef034a4 Merge "Move Parsoid output overrides to 'mediawiki.skinning.content.parsoid' skinStyles" 2018-09-18 15:40:13 +00:00
jenkins-bot c37c98d309 Merge "mobile.editor.ve: Simplify left/right border of toolbar on >1000px screens" 2018-09-18 15:38:36 +00:00
jenkins-bot 975e956166 Merge "mobile.editor.ve: Simplify margin/padding for debug bar" 2018-09-18 12:17:54 +00:00
jenkins-bot 2e4d8eefee Merge "Hygiene: improve ESLint config" 2018-09-17 23:44:14 +00:00
Stephen Niedzielski eead7c9382 Hygiene: improve ESLint config
- Enable ESLint caching with `--cache` which presumably improves
  performance.

- Forbid warnings by setting `--max-warnings` to zero. Code containing
  warnings should not be committed. However, warnings are still an
  exceptionally useful distinction to make from errors during
  development. When hacking, we do not care if a comment exceeds the
  maximum line length or if a trailing space is present but we do oh so
  very much care if the linter detects a likely programming error such
  as forgetting to initialize a constant. The former is a warning and
  the latter is an error.

- Forbid unused lint directives by enabling
  `--report-unused-disable-directives`. This setting prevents outdated
  ESLint error waivers from littering the code.

There is a related pull request to move these settings to defaults in
eslint-config-wikimedia itself:

https://github.com/wikimedia/eslint-config-wikimedia/pull/82/files#diff-46af3d30ba7affc4adf37ef4c5382c39

Change-Id: If3c99ff7309eafb1ebefa4c4b451299b45db4e60
2018-09-17 23:35:24 +00:00
Reedy 5d5d4a7691 Remove php entry point
Bug: T140007
Change-Id: I1079012b1a63dbc46857486b88b4d6dbc0793fec
2018-09-17 23:31:30 +00:00
Bartosz Dziewoński c6960ce8a7 Remove 'mobile.editor.ve' styles (move to MobileFrontend)
They no longer depend on Minerva's variables and can be moved there.
See I964b23bf9363233e5fc927cfaf1e8bdbc3435de1.

Bug: T202978
Change-Id: I6ce2156c29dcf8a95015ffdf59d02ecc5a03b74f
2018-09-17 21:55:39 +00:00
Bartosz Dziewoński 5e7b3994fd Move Parsoid output overrides to 'mediawiki.skinning.content.parsoid' skinStyles
We need to load these only when VisualEditor is loaded. This is
the best way to ensure that. They have been haphazardly placed
in different files.

The goal of this change is to move content styling for Minerva out of
mobile.editor.ve/minerva.less, and thus to be able to move this file
to mediawiki/extensions/MobileFrontend (T202978). But I spotted the
other places while working on that.

Moved as-is:
* skins.minerva.content.styles/links.less
* mobile.editor.ve/minerva.less

No longer needed:
* skins.minerva.content.styles/text.less
  Parsoid now uses <sup> tags for references rather than <span>,
  so the existing rules for <sup> tags are enough. See T45094,
  <https://www.mediawiki.org/wiki/Specs/HTML/1.6.0/Extensions/Cite>.

Was never needed:
* skins.minerva.content.styles/thumbnails.less
  The styles from the core module 'mediawiki.skinning.content.parsoid'
  are never loaded, so we don't need to override them.

Bug: T202978
Change-Id: I45e1cb89b65a41a29d2b1a361a79199745ccec14
2018-09-17 21:55:32 +00:00
Bartosz Dziewoński 73d724a72f mobile.editor.ve: Simplify left/right border of toolbar on >1000px screens
There should be no visual changes in this commit.

The goal of this change is to stop using variables from
minerva.variables, and thus to be able to move this file
to mediawiki/extensions/MobileFrontend (T202978).

Bug: T202978
Change-Id: Ib4b3206f724c3e6f089e626b704dc8ff790a76ae
2018-09-17 21:55:18 +00:00