Use MobileWebShareButton schema to track interactions with
Additional changes: Fix how button is injected into page actions
bar as last AMC changes broke it.
Bug: T207280
Change-Id: Ie7d7ab6bc66df5ab30aaec77e2ee8583c69b8f48
This mimics the structure we follow in MobileFrontend's mobile.startup
folder where we have a mobile.startup.js that imports all the
mobile.startup files.
Bug: T215657
Change-Id: Id7faa45adce7c5aa870d0f7c92f70d39995adac0
In I629245100f4ca430a88e450939b90d075e7021f1, languageOverlay styles and
LanguageSearcher styles were split into two different files. This commit
mimics that change in skinStyles. All languageOverlay specific styles
were moved to languageOverlay.less, while all LanguageSearcher styles
were moved to LanguageSearcher.less.
Other chagnes:
* Changed a reference in init.js
Bug: T215657
Change-Id: I395a61cd6051ad5c6b6601205f112b55f5ab8273
- Move page issue view components that do not modify the DOM during
during construction to PageIssueLearnMoreLink.js and PageIssueLink.js.
PascalCase is used optimistically for filenaming in the hopes that
these functions can become something like a JSX component. A "new"
function prefix is used in the meantime.
- Move page issue view logic that munges the existing DOM to
pageIssueFormatter.js. Substitute "create" prefixes for insert so that
clients won't forget that calling the function is a modify operation.
Alternative naming welcome but it shouldn't be confused with more
idealistic components that do not depend on DOM state for
construction.
- Consolidate createPageIssueBanner() and
createPageIssueBannerMultiple() into insertPageIssueBanner() as the
code was quite similar and were it a true component, it would probably
be a single component.
All new files appear under page/ to keep their distinction from the
overlay code clear.
Some view logic remains in pageIssues.js but it shall be difficult to
isolate.
Bug: T212376
Change-Id: Iccce709c34fa8de5a28a5a00098add5775e3dc9a
A new feature/skin option is added that is enabled safely inside
a MobileFrontend available/unavailable hook that changes the skin
to place talk tabs at the top of the page.
These new talk tabs purposely show on the main page, user page
and standard pages and do not show on special pages.
Depends-On: Ie1a583657176acc6f7046c569c2e94fa2f72ff93
Bug: T212216
Change-Id: I57b70cd325666a287678dc897159b5bf9d089b78
These modules can safely be merged.
Since skins.minerva.scripts.top is added via addModules to the HTML it must
be marked as deprecated and remain temporarily as a redirection to skins.minerva.scripts
All modules have been renamed to be in there new home - no deprecation notices are needed
as they are not used outside Minerva.
I leave skins.minerva.mainMenu.styles as it is used by Special:MobileMenu
and needs to continue to do so.
Change-Id: Ie919151630f4389f8e84e808bec003a6d3d07bd9
Remove mobile-frontend-language-change which does not appear to be used
by Minerva or other repos.
Change-Id: I3a6e3bff921a46575b1c3cc7d914ace35a321b35
This is never added to any page.
Remove it.
mobile.editor inside MobileFrontend is already added
via the onBeforePageDisplay hook there.
Bug: T213340
Change-Id: Iea025ee48ee95b6d9470ad055fa717e3e3ade54a
ConfirmEdit styles are migrated from mediawiki.special.userlogin.common.styles
to ext.confirmEdit.fancyCaptcha.styles
The text of the reload itself mirrors the progressive blue icon by being
progressive itself
A couple of tweaks to the form (padding) are made to preserve the form to
its previous glorious status, other than that the file remains the same.
Bug: T213775
Change-Id: I2322194481e4d6b7662c0f075768d5941afa98b8
No need for 2 modules that are both loaded on every page load
Provided consumers are loading skins.minerva.base.styles they will
continue to get the same CSS. If any consumers exist that load
skins.minerva.base.reset but not skins.minerva.base.styles they will
need to use their own css reset file
(e.g. https://meyerweb.com/eric/tools/css/reset/)
Change-Id: I599e6d5a84b311cb3bb2da197da1b688e0e6b9d4
This module is unnecessary - it's loaded unconditionally on a page.
Instead bundle the related CSS inside skins.minerva.content.styles
Change-Id: Ieb37d63332ff5b0cf39835b64cc9f0dcaf62c34f
The TableOfContents component is now inside mobile.startup
so is readily available.
Thus skins.minerva.tablet.scripts is removed and its code
moved inside skins.minerva.scripts
The check to whether the user is in tablet mode
now happens inside toc.js
The resize handler is dropped on the basis that this is an edge
case that is not worth supporting at the cost of an eventBus.
Depends-On: I353d6d7a6884dae03b55364150c6bb95cd4cc57f
Change-Id: Id16a64573e020b4606fc9b11456163a4cd290e0b
This experiments with making PageIssuesOverlay an Overlay with
various options.
The appending of children is a little messy and points at a need
to standardise this some way
(see https://phabricator.wikimedia.org/T209647)
TODO:
* Remove the iconString property on PageIssueSummary which is no longer
needed
Bug: T209647
Change-Id: Iadd798a820dca6bbb31edc9a8570b6db7aac237a
The DownloadIcon is reduced to a factory function that
returns an instance of Icon
Depends-On: I4d703eef68d51bbe0b03579c5cca0845e17b8c9d
Depends-On: I4a4129b2cac7c7c49559beef0b8780f3211edf9c
Bug: T205592
Change-Id: Ib87390d17bef6f50842f52cd84c9ce2b162aaff0
MinervaNeue depends on mobile.search and mobile.search.api. These
ResourceLoader modules existed in MobileFrontend but now have been
collapsed into mobile.startup.
This patch updates Minerva's ResourceLoader module and JavaScript
references.
Bug: T210207
Depends-On: I1eae36f2927a4e0f9d1e91d604d656beb8cc33ae
Change-Id: Ied6f4873bf2550564673296e9ef4fa009ca45e5b
MinervaNeue depends on mobile.search. mobile.search's LESS has been
collapsed into mobile.startup. This patch updates Minerva's references
and revises the SearchOverlay's CSS selector to increase specificity to
account for the new order of CSS files. Previously:
- ...
- MobileFrontend Overlay.less
- MobileFrontend SearchOverlay.less
- ...
- Minerva Overlay.less
- Minerva SearchOverlay.less
- ...
Now:
- ...
- MobileFrontend Overlay.less
- Minerva Overlay.less
- ...
- MobileFrontend SearchOverlay.less
- Minerva SearchOverlay.less
- ...
Since SearchOverlay's selector are intended to override Overlay's, it
seems appropriate to specify that a SearchOverlay is also an Overlay and
increase specificity.
Bug: T210207
Related: Ib0316020ed10eb0c921a3300501df7634a889977
Change-Id: I5c06b13f22f530fb52f37f373e081ed55f332a07
mobile.toggle was folded into mobile.startup in
mobileFrontend, so moving references to that instead.
- Changing require statements
- moving skinStyles/mobile.toggle/minerva.less to
skinStyles/mobile.startup/toggle.less
- Replacing references to mobile.toggle in skin.json
Depends-On: Iecc1870f08532e8c7893861afdd54f069da54be2
Bug: T210208
Change-Id: Ie67cd50a2d042fbbaaef348b9b62d64193900d78
* New feature/skin option is added and value is read inside
the pageIssues setup code
* issues-group-a class is added to page on server side to remove
the flash of unstyled content
* issues-group-A class is dropped (it's not doing anything!)
* The minerva-issues flag will now accept any value to avoid confusion.
It is used to override the default setting of wgMinervaPageIssuesNewTreatment
A note has been added that this can be removed in future.
Bug: T206179
Change-Id: I3d98fd8f8e1adc818ea03589d2c8f68fe991e861
These values are never read.
In includes/MinervaHooks.php when registering the features in
onMobileFrontendFeaturesRegistration we pass the group name `skin-minerva`
Change-Id: I7e2af47daa4369d3124686de64fc197881bd3c5f
Added in MobileFrontend in Iaaed72c32b9c4f4e15c320b79e29e9af3609069a.
(The module's name is included in cached page HTML, so to avoid
breaking them, 'skins.minerva.editor' must temporarily remain as an
alias for 'mobile.editor'. It is otherwise unused and can be removed
after caches expire on Wikimedia wikis.)
Depends-On: Iaaed72c32b9c4f4e15c320b79e29e9af3609069a
Bug: T198765
Change-Id: I52c4e0941dcf8f176e3ac32d8a1f72a0f8e1d6a6
We were not using some of the code this was depending on. No idea when
it stopped being required.
'skins.minerva.scripts' was used until recently (d27a9481, 72cd31f2),
but now its only purpose was to load other dependencies. Add them
separately instead.
Removed dependencies:
* mediawiki.ui.input
* skins.minerva.icons.images.scripts
* skins.minerva.scripts
* skins.minerva.toggling
Added dependencies:
* mediawiki.api
* mediawiki.storage
* mediawiki.user
* mobile.init
Bug: T198765
Change-Id: Ic80ba016adca377cb539adf672793fa103deb150
The styles in this stylesheet match no elements in the
Special:Preferences page since the OOUI transformation.
Bug: T208340
Change-Id: I9c87f6a676186928787c130e61d3c312214e1853
Note, since the page issues code is not feature flagged,
the new treatment will only be accessible via query
string until T206179 is taken care of.
Bug: T206178
Change-Id: I5ab2f3396e642f7b973263e2bb3963e0e82721b3
The share button should go though proper testing before it hits
production. First, it should be enabled only for beta cluster,
and then when everything works properly we can enable it as a
beta feature on production.
Bug: T181195
Change-Id: I1c5330edd8b5dfe00179bf7d9c6660887208a2e6
Add a new beta feature - share icon. When user opts into beta
the share icon will be visible on supported devices (Android OS
and Chrome browser).
Bug: T181195
Change-Id: Ie4b9dd05eea9b63422bd174048d8b1251cb02bf4
It's presumed that skin options will eventually become the default or be removed from the skin.
While they are not the default, it would be helpful to package them in one single module - as ResourceLoader
modules are costly bloating the dependency graph in the MediaWiki startup module.
In T167713 we talked about grouping our entry points by page rather than feature, which this seems consistent
with. A page with special options enabled is different from a page without.
Change-Id: Id948f913d4743532ba3442d2059a03c122419ff2
All of this would only be used with the configuration setting
`$wgMFEditorOptions['anonymousEditing'] = false;`.
Removed features:
* Call-to-action popup in skins.minerva.editor (note that anonymous
editors still get a CTA from MobileFrontend's EditorOverlay code)
* Pointer towards the edit button shown after registering via the CTA
(entire skins.minerva.newusers module)
Bug: T205382
Change-Id: I66c7035f7a23581811dda87c911dea41d4a8e5da
Goal: Make skins.minerva.editor not rely on Minerva-specific markup.
SkinMinerva.php:
* Add `class="mw-editsection"` to section edit links in SkinMinerva.
This is the default behavior in SkinTemplate.
* Tweak the page "Edit" link generated in PHP to be the same as the
link we were generating in JS: add class="edit-page" and change the
message for the text.
* (Fix an unrelated code comment that was incorrect.)
skins.minerva.content.styles/hacks.less:
* Remove a hack that was hiding .mw-editsection, since we now use it.
skins.minerva.editor/init.js:
* Stop using the `data-section` attribute on links to decide which
page section to open in the editor. Instead, use the `href`
attribute and extract the `section` URL parameter from it.
* Stop using the `edit-page` class to find section edit links.
Instead, use the `mw-editsection` class.
* Remove super weird code that removed the original "Edit" link from
the page and generated an identical one to replace it, instead of
just adding event handlers to the existing one.
* Centralize event handling for all types of edit links.
Bug: T198765
Change-Id: I79639c738ff1c3ec4b48ee2e462d23060151a21b
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
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
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
They no longer depend on Minerva's variables and can be moved there.
See I964b23bf9363233e5fc927cfaf1e8bdbc3435de1.
Bug: T202978
Change-Id: I6ce2156c29dcf8a95015ffdf59d02ecc5a03b74f
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
This adds a client side error logger that will store errors
in EventLogging. We will use it to get a sense of the number
of errors inside mobile.
To enable make use of the new configuration variable
wgMinervaErrorLogSamplingRate = 1
Notes:
* the optional `meta` field will not be utilised by the generic
error handler.
* URI length is not trimmed for title. We will consider whether we need
to make any adjustments to the schema values during roll out.
** For stack trace, we limit the length by removing errorUrl (which is logged
separately)
Testing:
Add throw new Error('asasasa'); anywhere in your code and make
sure the code executes. It should trigger an Error event provided
that configuration has been updated.
Bug: T202026
Change-Id: I07f01b4c025b2e5e4cbf88ec05e7c536442c62cc
Adds logging for the sectionNumbers field in the PageIssues schema.
Additional changes:
* createBanner now requires section number to be a string - this ensures
consistency with how these are used.
* fix a bug which meant createBanner was being called with undefined
section number (due to table of contents)
* Fix some indents in some JSDoc blocks
* Change parameter in function signature from mixed type (int or string)
to explicit string
* update schema number
Depends-On: Ia2696b86c6855d7b46a3f668585377d106d7af23
Bug: T202098
Change-Id: I20511a77258ea245f3d6fe93ade238e5df397a71
The CleanupOverlay is moved to Minerva and renamed the
IssuesOverlay to be consistent with current terminology
The new IssuesOverlay is defined inside the module
skins.minerva.scripts to which it now belongs.
Additional changes:
* various file renames
* overlay-cleanup renames overlay-issues
* cleanuptemplates renamed issues.js
* Add a test stub file to avoid the need to load templates inside
the test environment
After this change, I75f47622d94e504688e04dfb2892540473817053
should be merged to avoid confusion.
Change-Id: I08945a324a6b878abe56efed1e988466085b3018
T196150 disabled the fallback editor when JavaScript is available.
As a result the code for page issues on the editor screen is redundant.
This simplifies our code.
The css rules relating to editor
issues are retained, given they simplify the editor screen for mobile
devices.
Bug: T196150
Change-Id: I76d586414cdd8de533bb891b87d1e0b7efc20a68
When a wiki is in read-only mode, the edit icon on articles should
not open an editor. Instead, it should be in a "disabled" state and
inform the user that the wiki is in read-only mode
( i.e. show the "apierror-readonly" message).
Bug: T197497
Change-Id: Iee1414c20bea3ca936fb807820e58e5ed566d008
Refactor the page issues A/B test logging implementation to a distinct
new file that only has the responsibility of tracking.
T191528 is referenced in this commit as I was having difficulty
answering the feedback and bugs reported in the current implementation
without working through and restructuring the flow as I understood it.
This refactor is merely a byproduct artifact of that effort to focus on
the parsing and presentation responsibilities.
Bug: T191528
Change-Id: If547a0a67fbc9a532f834fe374abf668309e73df
Uses `mw.trackSubscribe` to create an intermediary data handler
named `wikimedia.PageIssuesAB` which extends event-logging data
before passing it to the eventLogging through `wikimedia.event.PageIssues`.
Event hooks are placed where appropriate and the `CleanupOverlay`
class is extended to capture events from within the page issues
modal.
Additional changes:
* Merge two identical on click event handlers for
.edit-page, .edit-link elements
* change pageIssueParser.maxSeverity to accept an array of severity levels
instead of an array of pageIssues objects
Depends-On: Ic84e4a3286220407863167e0f57cef1b13a72964
Bug: T191532
Change-Id: I67fb6e448f6ecc97c89c1187e491ee05f7a312ef
In order to write tests, we'd like to separate code without side
effects from code that executes it as part of setup.
This shuffles dependencies and makes page and overlayManager
parameters to the init function (injected dependencies)
Change-Id: I96808541d48be7869fed3bc30babb80866e139ec
mw.Uri is being used in resources/skins.minerva.editor/init.js but was
not listed as a dependency for this module. Adding this as a dependency
will ensure mw.Uri is loaded before this script is executed and tries to
use mw.Uri.
Change-Id: Ib34ca9eb9ba91d4b446a164fde42eec7f8e92000
We only used them for registered users, but MobileFrontend's
EditorOverlay code can use them for anonymous users as well.
Remove code for looking up block details in wgMinervaUserBlockInfo,
now we only care whether the user is blocked at all to display a
different icon. MobileFrontend looks up the same information via API
already.
Remove unused message 'mobile-frontend-editor-blocked-info-loggedin',
it was only used by non-fancy popups, which were removed in favor of
the new ones in f51cf7db7b.
Bug: T193754
Bug: T198765
Depends-On: I80564c3e6e2d0f4d7eae754f206780fb4054f254
Change-Id: I64be24845b4fee76d6b4a8e481a218f2160fced6
* truncated-text is only used in MainMenu, last modified bar,
a few special pages
Making this a mixin and limiting it to mobile.startup skinStyles
and mobile.special.styles thus makes sense
* cloaked-element is only ever added by Skin.js in mobile.startup
* position-fixed is only ever added by Skin.js
Change-Id: Iaf7061e9dda87eb25c963f8a281175af08f358e5
We already make use of the images 'name' key inside
skins.minerva.content.styles.images to define the full
CSS selector. We can use this approach to ship a single version of
the magnifying glass icon, rather than having 2 defined in both
skins.minerva.base.styles and skins.minerva.icons.images
Change-Id: Ie5ec06152c418c4aa1b620b3d0a904cc9517e5d0
Apologies in advance if any unintentional hurt feelings!
This is based on a git blame of the skins directory in
I985c4e3a88b59461d471945ccf74cd291db45a61 before the Minerva move
and consulting the extension.json of MobileFrontend.
I've listed anyone with over 100 commits to the MobileFrontend resources/
skins folder as an author.
The Readers Web Team as the current maintainers are listed first.
If you feel you should be listed as an author of this skin
as someone who has contributed more than 100 commits to the skin code
(not MobileFrontend code), apologies and please add yourself.
Change-Id: Ifffb07d1decb47a5e08b9c45c88ccf106f0797a1
- Fix a bug where the all issues endpoint would incorrectly collect
issues from all sections.
- Update the page issue iconography. This increases the size of the
delivered code and images by 1743 B minified uncompressed according to
mw.inspect() (from 16.4 KiB to 18.1 KiB).
- Add support for identifying page issue severity based on template CSS
classes.
- For multiple issues templates, show the highest priority icon.
Bug: T191528
Change-Id: Ie0a4c83ec7cfb856ec581d058797109746e3cb99
Per https://phabricator.wikimedia.org/T197932#4417319
Note that given talk/category overlay does not use or
display section issues, to simplify things any section other
than 0 or all will use this heading.
Bug: T197932
Change-Id: I737fb07aaadcea7772d0b08f8b0652dcf2f4623d
All of the uses are unnecessary or harmful:
* 'skins.minerva.toggling'
This module has no messages, parsed or otherwise.
* 'skins.minerva.editor'
* 'mobile-frontend-editor-redlink-explain'
This message has no formatting to be parsed. In the past, it
included the '{{SITENAME}}' magic word, which is still present
in some translations, but it is supported by the client-side
jqueryMsg parser anyway.
* 'mobile-frontend-editor-blocked-info-loggedin'
This message only uses '{{GENDER}}', which is supported by
the client-side jqueryMsg parser. More importantly, it uses
a parameter for it, which is actually not supported by
MinervaResourceLoaderParsedMessageModule. The message would
always use the default gender, regardless of the parameter.
Change-Id: I0c597febf9051670228dd144b53521a121f3a220
The previous lot of link icons look great on high DPI displays but not
as nice as they could on standard resolution displays. According to
Volker, this is because the SVG paths must appear on integer coordinates
and scale up instead of down. The new assets have been designed with
this consideration in mind.
Also, workaround redundant CSS by adding commenting out the "unvaried"
black SVG background-image selector, selectorWithoutVariant.
Bug: T190549
Bug: T197909
Change-Id: Id341d383018a436401541e82cc75d826688eaaae
Changes:
* Introduce Jan's beautifully documented $wgMinervaABSamplingRate
Set to 1 to A/B test 50% of the population
* Split out ambox template styles into a separate file referenced
by hacks.less
* Update cleanuptemplates setup script to consider two buckets
Test pages:
* Shqiponja_Partizane
* World_War_II_in_Albania
* Liberation_of_Tirana
* French_Consulate
* Abd_ar-Rahman_IV
* M109_howitzer
* Aimoin
* Transport_in_Brazil
* Transport_in_Cape_Verde
Bug: T191303
Change-Id: I8d11e655ccb847b7999e64dda57b225ad8b1c23a
wfGetLangObj() is not necessary anymore.
This change increases the requirement to MediaWiki 1.32 or higher.
Depends-On: Id49201957e716ef8a2ea930b3616ca4fe6e35633
Change-Id: I18adeebe476b321546ceda43eb12b6cf7e8081b3
As I6c7e3443756fd72749964d1eda37e3d123b201b3 gives full-page editing on
action=edit, suppress the display of the original wikitext editor so there's
not a flash of a different editor before the overlay appears. Provide a
fallback so that in cases of no-JS the wikitext editor can still be reached.
Bug: T196915
Change-Id: I7dd3de984ead4d70e977e5607bb07606d341db54
Provides a class that initiates AB-test bucketing and registers
as a MF module. Activates the reading depth test for users who are bucketed
in either buckets "A" or "B".
Does not add event-logging or visual style changes for page issues AB test.
Bug: T193584
Change-Id: If8504a35059c6d1b056cef063a595b1c2ffd351a
Use local imports instead given all relevant files are within the
same repository, and don't vary by configuraion.
Bug: T140807
Depends-On: If3edac9a35b346af0320c12f70c0d978a6346201
Change-Id: Ife3cc345a63aff452e93accbe0a593fbaa358732
Both are the same but different variants - so use the variants
ResourceLoader module to keep this modules consistent in color
and form.
Change-Id: Ib75e1ff741fa46ad9698e89c4433b6edbad4d376
When a user is blocked, the toast message provides insufficent information to
the user. To provide more information, as well as a better design, the block
message will be moved into a drawer.
Bug: T165535
Change-Id: Ib025db3a8a4d1fd7bd05b69f9b5326943288372f
Depends-On: I926918d0bd7f2176f188a2154dc5e99f6a8a7ad1
The keys that form the credits (name/description/url/etc.) are usually
on top, and manifest_version is typically on the bottom.
Change-Id: I1767b1e176c9cf892c1f627db4f5891fa6aade18