For now this should be a NOOP as the existing "special" page tab
is removed, put it paves the way for using tabs on special pages.
Bug: T286466
Change-Id: Ic0b52b298d598c20987b172c81c732a31e409402
* Update stylelint-config-wikimedia to 0.13.0
* Ensure eslintrc.js and root files are linted
with server config
Change-Id: I59c49fedd5b0c4c5620f960b78e4f781a6bc5abb
- Remove cached HTML relating to heading change
( I2ffdedd64414ffb3c6e441391a75fd6e744847a4)
- Update invalid instruction for selector in footer (I0bfc7f977cdaf5ce8873103346c64121d704b86c)
It appears this rule cannot yet be removed.
- Update classes for contributions icon on user pages
(I6c908acd70c0dca5bcb1754d1b25d3da2389feb8)
Change-Id: I271abf3d29dfcfd19d654514fb3f6d6e257505ab
Check the messages first and only parse the Title if needed
Use local variable to avoid repeated call to functions
Change-Id: I376d06b807183fb23cb07ad33ee54b387beea6f9
* Prefer Title::makeTitle in unit tests where the title is known,
this avoids title parsing and can improve the test performance.
* Use Title::makeTitle for the user page like done in User::getUserPage
Change-Id: I3901a6ed208a5ff90b216d01d3c4962cdcb48db1
Cached HTML friendly change which works by limiting styles to the new
HTML which is identified by the existence of the
minerva-search-form class
Bug: T301257
Change-Id: I61ba77a349a38e6a05f87f600ec31bcbf36f306a
Minerva already overrides the text label for the Home menu item.
To allow other extensions to override it again, we can also consult
the msg key.
Bug: T291568
Change-Id: I3107a6d1e6ace26c7ab9c49c49768d2adcda8792
This fix was already applied to the main menu in change
Idc603ccaeeb42f60899059ebb51226e8a20a969d
Bug: T301056
Change-Id: Id31fa76f40aab44672efc51fb981d481c27f1ff8
Rather than hardcoding the icons for all our menu items
let's use the definitions in core.
This also makes it easier for us to deprecate the
MobileMenu hook in future.
Rejoice at all the code this removed!
Bug: T291568
Change-Id: I69b5ca13aee018982a5ea28677d4a37e663235d4
Now whole area of last edited section (from edge to edge) is tappable
and linked to history page.
Bug: T163853
Depends-Onː I3d1f272a27c5c9b0b0928b5c0eaeb3f6e270532b
Change-Id: I3c35bbaafea3376cd2f9dccfd13bfe4845fd6823
There is still a lot of places that need either an Authority or still
an actual User object. This patch changes the usages that can be
changed right now (almost) without any codechange.
The only additional change is the removal of an unused constructor
argument.
Change-Id: I0fbb3c2cc4cea7fba135d92b04421b0563c0f0c8
isRegistered() is a method in the much more narrow UserIdentity
interface. This change makes it easier to move code away from the
problematic User "god" class in core.
Change-Id: I99cb72591f073568f84bd1fd436381f3f11f3140
Services shouldn't rely on global state. The service should have a
method for setting the title manually, and callers to the service should
be updated to pass in the title (or other context items) as needed. As
is, this code causes the test for MediaWikiServicesTest.php to fail; it
appears to only pass in CI accidentally due to pollution of global state
from other tests that run before it.
Bug: T297068
Change-Id: I39c780d36583deb8b2edd7b12b425e949bd09cd1
Remove using of User:getOption since this method
will be hard-deprecated. Now it is soft-deprecated.
Bug: T296083
Change-Id: I9f762cf27d7c778c8c391cde1409b510bd3e4e67
In 894364a3eb we moved the section tag for data-logos outside Logo
but did not add it to the footer
Bug: T295773
Change-Id: I52c07e95ac8166e9e9d11aba7cb3130cc6a2f8d7
Main pages usually feature a welcome message on their own, and adding
the standard <h1> is redundant at best. (Or, if there’s no welcome
message, the lack of a page title also indicates that it’s the main
page.) Also, it has ever been the case since dd00aa5a601e that no page
title is visible on the main page (before 9a39d1e492, an empty <h1>
was present, now nothing will be added).
Bug: T296109
Change-Id: I1e79dc385c4dbe8413bcb32a52b8675aabf8eea0
Follow up 7530f1c with some refactors
to remove the $pageActionsMenu and
$contentNavigationUrls properties by
calling once in getTemplateData
Bug: T293815
Change-Id: Ia7877abbecf41bbae7627ce7924d0f0871efa479
- Update SkinMinerva class to output data previously handled by MinervaTemplate.
- Update relevant templates with updated data keys.
Bug: T293815
Change-Id: I33df396b07c4d2d9c1c5743d90dc54cdbd3345af
This results in log events for clicking the following on a talk page:
* Read as wiki page
* Section headings
* the "add section" button
To test install WikimediaEvents and set
$wgWMEMobileWebUIActionsTracking = 1;
Bug: T294738
Change-Id: I8dbad7f4e72cfd081896480ba142b4e1e3029bcd
At this time, the label is the same as "portal-url". It's not allow
to localize. Use "portal" as the label.
The code is copied from insertDisclaimersItem() in the same file.
Bug: T239022
Change-Id: I1d3bc04333aabcf8c704241ca882d6b863b98968
Turns out user page is using UserNamespaceOverflowBuilder instead of
DefaultOverflowBuilder.
This change is added move, delete, and protect entries to
UserNamespaceOverflowBuilder::getGroup, so those options would appear in
overflow menu on user page.
Bug: T283549
Change-Id: I8a22b57aaa195773ae9e82bd1e01f323a2c0e6e1
After this change, in desktop Minerva the copyright
text in the footer should match desktop Minerva.
In mobile Minerva the copyright text in the footer
is shortened and doesn't contain terms of use.
It should match Vector mobile
?useskin=vector&useformat=mobile
Depends-On: I3473908e08f643b4c60aafc470dd124516955323
Change-Id: I2895975aaa1d09d228f80aff74381e88034a0137
Bug: T289401
- Remove usage/references to MinervaTemplate::getHistoryLinkHtml, html-minerva-lastmodified
- Add data key for history.mustache template.
- Update footer template to use new data key.
Bug: T292554
Change-Id: Id5fbf61ba181a0088a25e77175b808362963c63b
Follow up to I4c2e115451c0a76c742734730712814c1f1d838d.
This will allow us to load the templates directly into skin.mustache
via {{>PartialName}}
Templates partials can only be resolved relative to the folder given
to the TemplateParser.
Change-Id: I5783d49c25d2efcf4781dd912500bf8b413b8cb6
Remove code per spike outcome (T226490#7438685)
- This configuration option is never used in Wikimedia production
- isTalkAllowed content body is merged into isAllowed. Resulting code
is more readable.
- isAllowed('talk') still returns false on main page for anonymous users
which is the current behavior. Even on sv.m.wikipedia.org where talk pages
are shown to anonymous users, we do not show the talk page on the main page.
Add a comment pointing to the associated phabricator ticket
Bug: T226490
Change-Id: I9f34817c5ad654a6a66fe6156850a3e3fee881a7
This reverts commit ecd35774b1.
Reason for revert: Logo has disappeared on beta cluster.
The Logo template was using data-logos, and
the addition of the data-search-box section broke this. Given its
a Friday, probably best to revert the patch and reapply again.
Change-Id: Id517d32b20b6512b9b2e1fffab012522dfd7b618
* Move method to SkinMinerva
* Turn preparePageContent into a getter that returns the subject
page
* Use getSubjectPage in template
For mobile special pages this now means the page has two .content elements
On those pages I've disabled the initial content element. It also means
various .content <heading> and .content ul rules now apply that need to be
disabled.
While testing several other issues were taken care of - for example
the h2 in errors
Depends-On: I7761396d6a33830f279742be01240796573556a7
Bug: T291871
Change-Id: I13bc4b5dae7aed86eca31ef306212365e1759481
For skins, all templates should be in the same folder. This
is for security reasons, to limit access of templates to files
that are not templates. This also adds consistency with other skins
where templates are all in the same subdirectory. It also allows
us to reduce the creation of TemplateParser instances.
Note: All styles and scripts should be in the resources folder but this
is not rectified by this patchset. Will be done in follow ups following
more discussion.
This begins this work in the least disruptive way possible and drops
the README note to avoid this pattern growing.
Bug: T292558
Change-Id: I4c2e115451c0a76c742734730712814c1f1d838d
* Use skin registration and set skin options as and when needed
* Set link text-wrapper
* Simplify addPortletLink hook
* Update modifications to apply to items added prior to the hook
Bug: T240910
Change-Id: Ic806adf3de6490ba9da11e8968a61b3d0acd93bc
* Adds alt attribute with a value of the `mobile-frontend-sitename`
(previously called `mobile-frontend-footer-sitename`). The message was
changed because this affects both the footer and the header's logo.
* Adds a `minerva-footer-logo` class to the logo in footer.mustache in
preparation for changing that element from an h2 to a div. Given caching
issues (old CSS with new HTML; new CSS with old HTML are both
possibilities), we need to do this in two separate deploy cycles.
Bug: T288362
Change-Id: I3ecbf8fdcae72a0ded7f60c559259f312b8ef15d
For consistency with other methods, a mechanism for overriding
the home page icon is provided.
Bug: T291423
Change-Id: I7fb2e23cf10a75ed37e333f166f93111283f7f3e
Avoid indirection to QuickTemplate variable by using
SkinMinerva (SkinMustache) version.
To test:
* Create User:Admin/sandbox
* Create User:Admin
* Visit User:Admin/sandbox to see the breadcrumb "< User:Admin"
Change-Id: Icdd10bd1406ea047097309b6fcafba399170d019
Placing the text overflow on the span instead of the anchor element
prevents issues like T287522#7272991 from occurring.
Additionally:
* Uses the `text-overflow` mixin on every toggle list item label instead
of just the user link item as it simplifies the logic and presumably
we'd want any text that overflows the menu to be handled the same.
* Changes the anchor element to use flexbox/align-items to vertically
center instead of relying on `vertical-align` both the span and the
icon. Eventually, this should be put into core (see
I029f97ba9d5e7f46c8aa175d9a6bbb45ef9615df) but we have to remove all the
overrides that use vertical-align first.
Bug: T287522
Change-Id: Ie0fbff9dfaf8444c76125df52931a687730b4ad1
Follow up to 27525d0bf
During task sign off Nick raised the concern that new HTML
can be served with cached CSS for up to 5 minutes after a deploy.
We decided to restore the class for one deploy cycle.
Bug: T172626
Change-Id: Ie5a2e45f31a468bbe425a27236ad1255950807a1
Content using `header` as a CSS class was affected by skin styles
in Minerva being insufficiently specific to the skin‑specific elements.
This changes Minerva to use `class="minerva‑header"`, thus avoiding
the conflict and matching what Vector does.
Bug: T172626
Change-Id: Id8fbe61b2d1d4a89ec11ddfdf7837be797b3bd20
Accidentally via T231291, a regression was introduced such that,
in AMC mode, when a page is protected to be edited only by admins,
a corresponding unprotect action is not avaiable to reverse the
protect action.
This patch fixes that regression. Have tested locally and it works
as expected.
Bug: T285567
Change-Id: Ie20ca5d9c43fa54dff5d699eb59679585283bdb5
This could be made even simpler by not using a LESS varialbe for
hacks.less, but loading it conditionally through the moduel def.
But, as a first step we can merge the two as-is.
Given that the subject and target are always referenced together
in page views, there is no need to keep an alias around. However,
I'm keeping it anyway so as to not produce any
`/* {"skins.foo":"missing"} */` appendix to the stylesheet response
for these cached URLs.
Bug: T266361
Change-Id: I8578faab8ca32bd49be90711cbd5e182763b8065
The hook lets us hand off the decision of whether to suppress this to
DiscussionTools, which has a slightly complex set of feature-tests to do
before deciding. It seems better to leave this disabled only when DT
will actually be stepping in.
Bug: T280051
Change-Id: If6b70fb6d801ac04fa3b70c153a2136d2e302f28
User::getBoolOption() is deprecated and should be replaced with
UserOptionsLookup::getBoolOption()
Bug: T277600
Change-Id: I8219efc4429bad692e80fd2314b57a6c89a893b2
This patch removes the user page tagline (i.e. "Blocked joined 7 days ago"), updates the user page heading (i.e. "Blocked" becomes "User:Blocked") and removes user specific page actions (i.e. Contributions, User groups, the page actions submenu, etc) for certain user pages.
This patch also adds a new method to SkinUserPageHelper for use in the ToolbarBuilder.
Bug: T268961
Change-Id: I920e0770caa0a1b6d3323e2e3111e5df4f1f051d
Allow Users with the needed permissions to delete, protect or move pages in Minerva on mobile version.
Bug: T231291
Change-Id: I1e438b7d3683d288a8a6c5a9f5dcea6b3b3d9f71
Just as before styles for message boxes will be
kept off the critical path of most page views and
loaded on special pages, old revisions and action= URIs,
however unlike before the CSS will come from the definition
in core.
It must also be loaded in JavaScript for compatibility
with the use of warnings in JavaScript, for example
MobileFrontend overlays.
This change will allow us to remove the
mobile.messageBox.styles module in MobileFrontend
I8b6bdfceaf33b9527dbe6790d2a39e335fb692b2
Bug: T233160
Change-Id: I7d8d1d34621c36c26ec03a3773d4d1e67bd14f2e
Remove using of User::isIP since this method will be hard-deprecated. Now it is soft-deprecated
Bug: T275602
Change-Id: I01a0c2ef4d750cf0e81a9345ee462787d4ee28da
While dropping support of smart logout in favour of core ready.js
logout, we noticed that the logout selector is a little bit too weak.
Editors could make a link on a page that would work as a logout
button. The easiest way to prevent this (and any other possible
problems) is to add `data-mw="interface"` attribute to all generated
menu entries.
Change-Id: I22611b9641d82328623beb3f693bf7cddb2289ff
MediaWiki core added support of overrideLogoutSelector skin
config variable which allows us to define the logout button
selector. Thanks to that we do not have to ship our
custom/duplicated smart logout handler as we can use the
one shipped with ready.js.
Depends-On: Id313337c85229a5e8d0aada3a67d722048709597
Bug: T259200
Change-Id: Ie0192a176dfa8be994a544221aa71de75028d502
As of db3c8ea16b3 the mediawiki.toc.styles module is no longer
loaded by the skin, so Minerva no longer needs to remove it.
Bug: T252774
Change-Id: Ia2df978e2d0349a55620ef45f8c0827134b7c74d
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.PropertyDocumentation.WrongStyle
The following sniffs now pass and were enabled:
* MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName
Change-Id: Ib605f800c2ae0e521c034c1f49d98cbca546b720
The data already provided by SkinMustache makes the existing
Minerva code redundant.
* html-after-content functionality equivalent to dataAfterContent value
* Rename license and last modified to have html-minerva prefixes and promote
to top level data object. This allows us to distingusih Minerva values from core
values.
Note: previously the logo used srcset to ship a 1x logo but these
were dropped during the desktop improvements work.
Bug: T256083
Change-Id: I7b2cd5181eae67b345f6686e3389a76a12e3b1a1
* prebodyhtml is never defined
* isSpecialMobileMenuPage is never used and the Special:MobileMenu
page no longer exists
Change-Id: I6481ef08f9d88e9be3cb5568bfa6693b1b3f1b8f
This begins the migration of Minerva to SkinMustache with the smallest
possible change.
In future, we'll be able to eventually wean ourselves off of the
MinervaTemplate class and considerably reduce the code in Minerva
Bug: T256083
Change-Id: Id0f617cfdb698754addc79b26491b9d846513c87
This does not complete watchlist expiry support in MinervaNeue. It only
instructs the skin to show a half star instead of a full star on page
load if the page is being temporarily watched.
Bug: T251690
Change-Id: Ib5c479dcfe49041152ba662c56cc630c32eb220e
This reverts commit ae8e3ad58b.
Reason for revert: This led to T260155 as the internal class uses
isSubPage which is not available on LinkTarget
Bug: T260155
Change-Id: I783f41e70cf1cf3b91737bce9cbf9ac729a778df
SkinUserPageHelper::__construct() should be able to consume a LinkTarget
too as NamespaceInfo::getSubjectPage() method returns a LinkTarget and
the Title::getSubjectPage() is deprecated.
Change-Id: I08bfc9bb21772b450798b6354bee2ab09d5dba4d
Hooks are global, hence any and all skin-specific OutputPageBodyAttributes hooks need to check first that the correct skin (or skins) is used, otherwise the class or classes get applied for *all* skins when only one skin is supposed to be targeted.
Also fixed a tiny code style issue in the same hook subscriber while at it.
Change-Id: I626b0e050c614687b31f1ffbaea92e371dee4574
I6e69b482cdbc adds a viewport with the same value as defined by Minerva.
Bug: T258290
Depends-On: I6e69b482cdbc49c09adc6f7cee54f5e17b7c92c4
Change-Id: Ie8ed80f734b20a16bc1c70a94d40290909180c3b
Disable sortable and collapsible during mediawiki.page.ready initialisation
Add onSkinPageReadyConfig hook that overrides sortable and collapsible values.
Adds 1.74kb of JS to all page loads.
Bug: T257265
Bug: T250851
Depends-On: I0dc38e74052027f26a70d58b5f520e5830e0d55d
Change-Id: I81ff55d080c8c4a40f425ca7d0fc4fda322055dd
OutputPage has similar method and they are being used
interchangeably here. Let's stick with one.
Bug: T257992
Change-Id: Ia5a0fbf114f6a1fec6fb85e01a408edae8a5badb
This means dropping usage of Skin::addToBodyAttributes method from
parent Skin class to pave way for its deprecation/removal.
Bug: T255698
Change-Id: Idab13c37002ac5663f292e4f4b4ff51eb7573fda
This reverts commit 33e5c1eb79.
I talked to Gergo (tgr) about this and he's convinced me
that probably I want to be more conservative
and incremently roll the sitenotices
out first. With that in mind I'm going to revert this change
and do a config flag instead.
Bug: T254391
Change-Id: If0f214d23a012fb4ae3e1dff1728f746a22f142a
This will make site notices display across the site as intended. The config
flag doesn't seem warranted - site notices should display across all skins
as they may contain important information.
This is preventing wikidata page banners from displaying in Minerva.
If this is controversial I can do a config-only change for Wikivoyages
Bug: T254391
Change-Id: I34c5e762b967ea94e33025e87f3446e8e029bc91
The implicit in Mesage::__toString, as called when the object
is accepted by a method that needs a string, is to format
with parse(). Call that explicitly instead, or use escaped()
in places where it seems like elaborate wikitext isn't expected.
Change-Id: I9f1de3a0047d1f26d30c8607a0a79543d166176f
Rather than rely on something being set on MinervaTemplate go
straight to the source of the license message
This change will allow us to deprecate usage of
SkinTemplateOutputPageBeforeExec inside MobileFrontend
Bug: T60137
Depends-On: Id83ef2f2cba1dce940f89125b5cd26a29421ee48
Change-Id: I5317cd707418350847085d406c3749f19106d6ba
The MobileFrontend section numbers that were used here only count
top-level sections, but this value was passed to code in
MobileFrontend's TalkSectionOverlay#onSaveClick, which uses an API
expecting the standard MediaWiki section numbers.
Extract the section number from the section edit link, like we do
in mobile.init/editor.js in MobileFrontend.
Also, disable the special talk page view unless we're viewing the
latest revision of the page. That could also lead to posting in the
wrong section, as sections are often added and removed, which changes
the numbers.
Bug: T252828
Change-Id: I553a508658804dd8672f2268b7118f77458a9dba
Additional changes:
* Address a fixme relating to the overflow icon and move some AMC styles
out of the critical path for non-AMC pages
Note about ellipsis:
The class mf-mw-ui-icon-rotate-clockwise cannot be used as it's part of
MobileFrontend and loaded via JS. Minerva must work without MobileFrontend
and this rotation is needed without JS.
Bug: T244444
Change-Id: Ifd02c50305cf036dd6df640d778678668507e5eb
When enchancing the watchlist items with the "time ago"
feature, the "last-modified-bar__text" class is added
to the element, which could have unexpected consequences.
That class is removed from the watchlist and instead
of using it as a JS selector, the `modified-enhancement`
class is used for both the watchlist and last-modified
bar.
Change-Id: I4a157adf51b9ed45bcba977f4f6622c7991471ba
In Ia3bafc74a85293c2414c0ef4ccf3bb20c75135d1 this icon was renamed
but this reference was not updated.
The module will soon be removed in I181d41f60481efa904d5e951cf08480bbae82015
This will not fixed cached HTML. The damage is already done, so we'll
have to live with this bug on old cached HTML for up to 7 days.
Bug: T249864
Change-Id: I20b838ed5ab478ae60b2cbf6abf5df448d8f4e59
The icon pack wikimedia.ui was strangely using a non-standard
icon class using empty strings as a way to disable the default behaviour
of setIcon. Instead of fighting APIs - use the methods available.
The icon pack is also renamed to reflect what it's actually used for -
providing icons for overflow menus and it is no longer loaded as a dependency
by skins.minerva.scripts
Fixes issues with:
* History icon with AMC disabled and user is logged in
* Table of contents icon
* Language icon when it appears in overflow menu on user pages
when logged in where AMC is disabled
* listBullet appears in 2 modules as it is used in 2 places - the AMC
overflow menu (log icon on user overflow menu) and for table of contents
(JS only)
Bug: T232383
Change-Id: I05220ffa56195be6a594e3a8a57ae16858088444
Renaming to WikimediaUI standard naming and adding to module
skins.minerva.icons.wikimedia which is loaded via addModuleStyles
'edit' → 'editLock'
'edit-enabled' → 'edit'
'toc' → 'listBullet' (already included in wikimedia.ui module)
'mainmenu' → 'menu'
'language-switcher' → 'language'
'clock' → 'history'
Icon `page-actions-overflow` which is only needed on AMC is moved out of the stable icon
pack and added to skins.minerva.mainMenu.advanced.icons temporarily which is loaded on AMC pages only:
'page-actions-overflow'
Additional changes:
* Renaming 'clockIconClass' to 'historyIconClass' to stay on name.
* Module `skins.minerva.icons.images` is deprecated and shipped for old
HTML markup. It will be removed in 2 weeks.
Bug: T232383
Change-Id: Ia3bafc74a85293c2414c0ef4ccf3bb20c75135d1
It was a bit of a maze trying to work out how we generate our
hamburger button. Much of this abstraction seems unnecessary when
we can rely on template partials and data instead.
Change-Id: I791640fea29f87334dcc36baf92ea9e300d8a07c
Poked around the revision history a bit and found that the usage
of this variable as removed in f5bef2e but its definition was not.
Added return type hint for the `prepareToggle()` method too.
Change-Id: I9950f4c81bb914bf2c2d3c13c60d3f0a040a0ae1
For all mainMenu icons pull from OOUI icon packs.
We make the necessary changes to Definitions.php, ToolbarBuilder
and LogoutMenuEntry to ensure to update icon glyph names.
There are caching implications for icons that show to anonymous users -
these have been fixed for grade A browsers running JS by appending the
new class to impacted elements.
Grade C browsers being served cached HTML will not benefit from this
emporary fix as available solutions are costly.
As a result these users will not see icons until the cache
expires (maximum of 4 weeks but likely 1 week) or is flushed via
action=purge.
This is acceptable given the amount of impacted users and the fact that
icons are not essential for using the main menu.
Note: The communityportal.svg icon while in the resources folder was
not referenced anywhere in the codebase so its removal is safe.
Please note the same icon in skins.minerva.mainMenu.advanced.icons which
is used for the community portal menu item.
Bug: T244444
Change-Id: I0f929f2f3b11362e02f0d02f57b90b34b5c93d24
It's called 'markup'. Since this icon only ever shows to logged in
users there are no caching implications.
Bug: T244444
Change-Id: I75f5365ccb5a41f1c0628532e81b5ec63804a2a8
This reverts commit 7b4b65a30f, which
caused a regression in the user menu part of Advanced Mobile
Contributions mode.
Bug: T244436
Change-Id: Ifce627dac35b2cd05e1c5ebe658534b6b8d0de88