The code would repeatedly read primary, always getting
the same result. Let's avoid this and do the query
at most once.
Change-Id: I4c09b92cac5e4dc7fd8d36f9751be4f9149181cb
MediaWiki does not use foreign keys in the database schema
Additional changes to the schema:
- Mysql and sqlite creates index for each foreign keys, keep the index
to allow fast joins with this columns by explicit statement on new
wikis
- Explicit create statement for the UNIQUE index on column
eps_token_sha256 to make the index more visible on the sql file
- Rename existing index to match the prefix for existing indexes
Bug: T306473
Change-Id: I4bd29a6d0f9515e1a678c2a967799b90ef22f7b9
When Echo moved to packageFiles it broke the mobile
unread counter behaviour
Follow up to I03f9a3953aa97ead1a29c13a992a02404a6d0b68
which presumably happened when Minerva's Echo code was
in a different code repository.
Bug: T310358
Change-Id: Ife6705d69d248bcd4efde1a996dbcc0353c7f40d
Replaced WikiPage::newFromID with newFromTitle,
because a Title object exists and could be reused
Bug: T297688
Change-Id: Ide30f259477ed8e0b48df31f5a23cafeb38d7316
Dot reporter provides no information on which tests suites and tests are
executed. Spec reporter is more verbose but it also provides much more
information that is useful in general, but especially when debugging.
For example, which tests are executed and which tests are skipped.
Bug: T280331
Change-Id: Ib1746654a4844f26e060b4e687337de2d8c4928a
Extensions using Phan need to be updated simultaneously with core due
to T308443.
Bug: T308718
Depends-On: Id08a220e1d6085e2b33f3f6c9d0e3935a4204659
Change-Id: I08d1a4122d1c8052d1cdfc6f8249abdaa80067a7
The notification icon was previously server rendered without the
`mw-ui-button` and `mw-ui-quiet` classes and then these classes were
added when the JS kicked in which resulted in a 1px layout shift as
`mw-ui-button` applied a 1px border. `mw-ui-quiet` is needed to make the
border transparent.
Change-Id: If44919798815eb6959e6dd9873db5f0bc533d742
* Declare variables inline, as per the current code conventions.
* Convert ad-hoc cases objects into native QUnit.test.each().
This makes for shorter and cleaner code, as well as for more
detailed test reporting, and removes the need to manually construct
assertion messages based on test case prefix string etc.
* Start adopting ES5 Array.forEach in a few places where otherwise
ESLint would complain about variable name clashes.
* Future proof the test module names, by stripping the global variable
namespace that some classes still use, matching packageFiles convention
as used for NotificationBadge.js and its tests already, by specifying
only the bundle name and the exported class name. Note that the
QUnit UI does fuzzy matching so filtering works the same either
way, e.g. "echodmfilter" will match "ext.echo.dm - FilterModel".
Change-Id: I49858dd2c95d0869f2cd15693f05c38312a9f710