The overlay will load instantly, the spinner will show for
the talkBoard inside the overlay.
id is always set as it will be undefined if not present and also
ignored by talkOverlay
Bug: T215370
Depends-On: I791b22ac8b5060c4620168a3bf8db81a96f3d022
Change-Id: I01f2bbc32ad6d81e7b15f510f0a91cbf2df750ce
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
When merged with I629245100f4ca430a88e450939b90d075e7021f1, the need to
use rlModuleLoader.js (white screen loader) with LanguageOverlay is
eliminated. When calling the language factory function, an Overlay is
now synchronously returned with a spinner shown in its content area
while the lazy load request + xhr request are executing. PromisedView
will replace this spinner with the LanguageSearcher component when the
promise resolves (rejects continue to be unhandled).
* The getDeviceLanguage function was moved into languageFactory.js
inside MobileFrontend
* the lazy load code and gateway.getPageLanguages code was also moved
into languageFactory.
Bug: T215657
Depends-On: I629245100f4ca430a88e450939b90d075e7021f1
Change-Id: Ie6dad4bd3c80e6cfcc1d7f9ad38941a323ba3cc6
Defines the z-index value of the "fade-out" below the read-more text
as a variable instead of a hard-coded value. The variable is essentially
1 value below the z-index of the parent element.
The output of this change remains the same, the parent z-index value
is 0 so the "fade-out" z-index value still remains -1.
Bug: T214550
Change-Id: Ib1fa53cbb83e995c3c7b0320ba177ea087a8931b
Per discussion in humans of the web,
this causes problems with lists with items >= 100. Reverting (and
later SWATing) with this new information.
This reverts commit abf223da58.
Bug: T150377
Change-Id: I962824dae8c855bb3d01ba346ae08aa3f6234073
Even though on most pages the tagline is empty, it still
has a bottom margin associated with it. This patch moves
that bottom margin into a container element that wraps
both the h1 and tagline.
This approach allows us to remove the bottom-margin from the tagline
as well as the top-margin from the AMC tabs in favour of just
one bottom margin on the .page-heading element.
Bug: T214195
Change-Id: I67d3938ab4a75f994acc28a8eefdf19e531c1f3d
This is no longer needed when Varnish cache has cleared (About a
week from I7e989a3d4553eb3357598a5cad3ccebf51dc9fae being deployed
Bug: T212216
Change-Id: I1afb68f68cc90d89c442907426bd046ddc68f488
Remove getAllIssuesSections(). This is no longer in use and does not
appear to be sufficiently general purpose to want to maintain.
Bug: T212371
Change-Id: I7ed73408705cba64b26dd318e78ae415b707e687
In pageIssues.js:
- Consistently use the KEYWORD_ALL_SECTIONS symbol instead of hardcoding
the string, "all".
- Improve typing for allIssues.
- Wrap a long line.
Bug: T212371
Change-Id: I429fe37f88311c787e91946bb1438c6961eeeb5b
- 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
- Revise M.require( 'mobile.categories.overlays/CategoryOverlay' ) to
'mobile.categories.overlays/categoryOverlay' (lowercase c).
- The category overlay is a factory function not a class. Replace new
operator with function invocation. This only looked strange and didn't
break anything since the new operator uses the returned value if
specified, not `this`, which was the result of the factory function
and the OverlayManager understands both Overlays and functions that
return Overlays.
Bug: T208915
Change-Id: Ife098ee5ed1a8a164a4e31013a490076658f4147
Previously they had an extra few pixels caused by line-height.
This makes some heading levels slightly shorter, but heading
heights more predictable.
Change-Id: I25cb1f39ab6c80bf9f318de18339e716156c9a2b
- Revise M.require( 'mobile.talk.overlays/TalkOverlay' ) to
'mobile.talk.overlays/talkOverlay' (lowercase t).
- The category overlay is a factory function not a class. Replace new
operator with function invocation. This only looked strange and didn't
break anything since the new operator uses the returned value if
specified, not `this`, which was the result of the factory function
and the OverlayManager understands both Overlays and functions that
return Overlays.
Bug: T208915
Change-Id: I496f78c24c485d88b046bac6889c7ff09267b250
We talked about this in standup today and given Sam's comment
in T212970#4943448 and a potential loss of data, we've considered
this a little risky and would like to revert and discuss this.
We can reapply the patch later if necessary.
This reverts commit a486bde329.
Bug: T212970
Change-Id: I0aad3937dde92bf7a46df8c1cf892bf5ce257e17
Use the mobile.startup module mfExtend export directly instead of
OO. This will allow MobileFrontend to reduce its exposed API.
Bug: T208915
Depends-On: Idededf132f724176c38c5e0a7c9327f00489a09d
Change-Id: Id582325c830c229240b88cf4e151afea48fea750
Rename `client` to `mobile` in search.js. This was the only deviation in
naming when persisting `M.require( 'mobile.startup' )`.
Bug: T208915
Change-Id: I46f8a7a560cbb78fdec970cc0d2eff32238bf59e
Move synchronous import to the top of the file next to other
mobile.startup imports to make it easier to find.
Bug: T215648
Depends-On: I6393e4403034cce51c01003bdf5bcaf3b76ae9f1
Change-Id: Icf52160b84f05a4ac3e069112460cf0bc97a0b4b
See design rationale on T150377.
Furthermore, 'inside' lists cause rendering issues inside VisualEditor
(tested with Chrome 71 and Firefox 65 on desktop), as seen on T208102.
Bug: T150377
Bug: T208102
Change-Id: Ia8e47ab98226a78cb5a3a4ef5f09d729ea3c8791
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
Changes z-index from 1 to 0 on page-issues link to avoid showing
white background when navigation menu slides over.
Also changing z-index value on SpecialNotificationsOverlay.less
from the hard-coded value of 2 to @z-indexOverOverlay
(which is set to 2).
Bug: T214550
Change-Id: If033755115f2a266869fb87c4314798c422d88ed
To minimize the traffic sent to the stats endpoint we should
track errors only once after request is done, not on every
error occurence.
Bug: T212970
Change-Id: I64f101159aa1f2179e612effa850851fffcf39c6
Replace all occurrences of `M.require( 'mobile.startup/pathToModule' )`
with `M.require( 'mobile.startup' ).pathToModule`. Where multiple
requires existed, add an intermediate variable,
`var mobile = M.require( 'mobile.startup' )`, and dot off that.
This changes improves the consistency of MinervaNeue which currently
contains a mix of require styles and eliminates any deprecated requires.
Bug: T208915
Change-Id: If14f280672d914d07275197100b12421bb217b67
This was causing lots of problems with the AMC design and seems
unnecessary. It dates back to tablet support added in
I14c8182473c9508ffc38a8d5baf114bcb016a35f in 2014. This no longer
appears to be needed for tablet.
Changing the HTML means we need to be careful about Varnish cached
HTML with new styles. To avoid UI regressions we use a new temporary
class heading-holding--new which will be removed as soon as possible.
The no-page-actions modifier is no longer needed given the new heading
holder doesn't care what's inside it.
Bug: T212216
Change-Id: I7e989a3d4553eb3357598a5cad3ccebf51dc9fae
Migrate View.events to constructor property. MobileFrontend supports
both the deprecated View.prototype.events and recently passing events as
an argument at construction (see dependent patch).
As a client, Minerva doesn't provide nearly so many extensible classes
as MobileFrontend. The classes changed in this patch are no different so
events are not expected to be extended.
Bug: T208915
Depends-On: Ic193e97b4cd6f72d226bd9768e904bdec168ba39
Change-Id: I68923e2dfd4b2f3e3f3de5185e9b65ab0b665ab7
Many languages have no concept of capitalisation so messing with
user input is problematic. Trust editors to do the right thing and
if not, fix it on wiki.
Bug: T131013
Change-Id: Iebdb7b78fdaa31a6daf8f52077c079672ef4ff5a
There is no longer a need to pass in a jQuery dependency.
Don't use the stateful skin to query image placeholders. Use the lazy
image loader instead.
Depends-On: I3d023b3d96bf278666abb956142e5cee12b68b1f
Bug: T214658
Change-Id: I2bf42366c0e27462c32162124d07761b91d66166
* Add inline exceptions for global selectors
* Exception for $.animate in scrolling code
* Fix $ prefixing in search.js
* Fix repeated selectors in search.js & toc.js
* Disable no-parse-html-literal in tests
Change-Id: Id58fe11d1e09714501a378e4ca7ed9588f02f32d
A `.content-header` is often placed inside a `.content` div,
so this selector causes a 90% width on a container element as well as
it's child element, which is probably undesirable.
Bug: T210745
Change-Id: Ib559db66a513537127ad543cb54a119af8ebf8df
Main pages do not have page actions, yet the header always adds
bottom padding to compensate for the fact that page actions are
absolutely positioned.
a new class is added adopting BEM notation that informs the client
that no page actions are going to be visible. In conjuction to this
we strip the relevant HTML from the DOM.
Bug: T212216
Change-Id: Ib69991e91160ba7e2ca3beca4475c2a06c4b9cd3
Update the API usage for lazily loaded images. This is still clumsy and
may be further revised in future patches.
Bug: T211724
Depends-On: Ic73f78825eaab561e8ed694aa6cc102ccb471f95
Change-Id: Ia708cda688e6bdb12074d85d98f7e98fdf7b0ca8
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
Improve the comments and APIs provided by AB.js:
- Control becomes unsampled.
- A becomes control.
- B becomes treatment.
This code does not appear to be in use presently, so it's a great time
to change it.
Change-Id: I31d619f889ee45102a4aed774a6ec41f0d95ba7d
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
Remove the unnecessary helper object in favor of making
functions standalone.
The function bodies are left intact but a level of indent is removed
Change-Id: If4ee79df096bf386584dba8d971a0858e70e166f
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
Use CtaDrawer.options.events when available instead of CtaDrawer.events.
Change-Id: I7cf5d97bef9179dfa148fa4d5ca447d128031b57
Related: I4a4129b2cac7c7c49559beef0b8780f3211edf9c
Bug: T210870
Links without hypertext references are still functionally links and
should be presented in the same way. This patch forces the hand cursor
to be used for such links which affects the red links drawer's "no
thanks" link.
Change-Id: Iabfef03f6726bb8a5e3a2bc90f2a7f63c8a10c02
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
Instead of having one large `createBanner` function, breaks down
that responsibility into three smaller functions:
- createPageIssueBanner
- createPageIssueBannerMultiple
- createPageIssueNotice
These functions represent issues in the new treatment, the
multiple-issues template, and the old treatment.
createBanner now delegates the creation of these banner types to these
new functions.
A new property to PageSummary, $el, has also been added. This allows us
to manipulate the issues DOM via the PageSummary object, instead of using
the `$metadata` variable in createBanner.
This approach to the page-issues DOM also solves the problem of
wrong or missing icons in T202349.
Bug: T211257, T202349
Change-Id: I50a2d8e3ae94913dc060ceedaaf1fa7e1756617f
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
This patch removes the remaining usages of M.on/M.off/M.emit
(functionality derived from moduleLoader.js in MobileFrontend) in
Minerva and continues the work of
Id990b0e1a53221d5c1cb3e3012aed0e27d801fc2 (patch for MobileFrontend).
This patch and the patch for MobileFrontend should be merged together as
they both depend on eachother.
Depends-On: Id990b0e1a53221d5c1cb3e3012aed0e27d801fc2
Bug: T156186
Change-Id: I005d2fcdbf91c2f1ac98178dfa388aa8174e7530
This patch removes usages of M.on (functionality derived from
moduleLoader.js in MobileFrontend) in skins.minerva.talk/init.js and
continues the work of I0e35776114ffa137b219eff0a900a0a0c52a27bb (patch
for MobileFrontend).
This patch and the patch for MobileFrontend should be merged together as
they both depend on eachother.
Depends-On: I0e35776114ffa137b219eff0a900a0a0c52a27bb
Bug: T156186
Change-Id: Ic766d0bbf2746df898038115e2e4bc791ac10359
You can test this against the beta cluster using
$wgMFMwApiContentProviderBaseUri = "https://en.wikipedia.beta.wmflabs.org/w/api.php";
Bug: T206177
Change-Id: Ic2e6859443ed5aa2a3f97218f4c89df2a46000f9
We are deprecating the MobileFrontend user module. Use the
mw.user module in core instead which supports the same methods.
Bug: T204866
Change-Id: I3d068198ab79fe85823a9d82ef4bd7ca07013d3b
* 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
This replicates the behavior of the MultimediaViewer on the
desktop when using the mobile page with a desktop browser.
But we have to be careful that this change don't break
other extensions or functions of the skin.
Bug: T206348
Change-Id: Ib4b928eae136d781782dc96e82d653806587292b
Seems like one of the selectors in this group has been removed.
Found with `"block-opening-brace-space-before": "always"` added in
.stylelintrc.json – It's going to be part of next
stylelint-config-wikimedia release. This issue here has caused an
invalid selector though, therefore fixing immediately.
Change-Id: If9603f12b9ad236b1517eb8861d220e991fa0a8d