Invoking encodeURI on the imageFileTitle makes sure that a "%" character is properly URL-escaped.
Bug: T337540
Change-Id: I538b7f813b546134848e93cea4744de8f4da9e90
The latest update of 'svgo' dependency includes three optimizations on
converting path commands, which
- improves closing paths and how we determine if to use absolute or
relative commands.
- round arc or convert to lines based on the geometric sagitta
- convert cubic Bézier curves to quadratic Bézier curves where possible
Also
- removing obsolete 'grayscale.svg' which was introduced in
I0f2c2b24aece3b but seems to have not been in use. It itself is not
reasonable, as an SVG filter needs an element to be applied to, which
this SVG didn't feature.
- unifying npm command to qua standard notation `minify:svg` and add
“parent” command `minify` as well.
Bug: T354875
Change-Id: Ie4d8ef85b9b9d28943a7216f0b5ed6392592a43e
* The file page has a button that does not match the font size of
the page. This is also the case for the overlay.
* The icons are too big on the file page. This reduces their size.
Bug: T345749
Change-Id: I4f4edc0aa7adc0c72773a939c43108019bc4295b
Use the eslint rule
"no-var": "error"
in resources/.eslintrc.json and in .eslintrc.json
to require the use of `const` and `let` instead of `var`.
Bug: T337102
Change-Id: I3b3d6d426966a97c13f62494443f62bd5b790920
Skip thumbs found by the newly added selector (from 4d4e86ec) to skip
when also matched for the parsoid part of the multimedia viewer.
Bug: T348275
Bug: T349448
Follow-Up: I5ec67accab4e1cbfa90544087750016e1baab85d
Change-Id: I0c45b877565fd54b3e1cc766e4ee745a48cdea27
This was used internally by `jquery.fullscreen` but now that we
have all the logic inside this file, we don't need to store this
information two places with a copy in `this.$main.data()`. We can
use this.isFullscreen directly as they are always the same.
Change-Id: Ie15729a038bc9c1f6278c0b068c0706620d95e93
a.thumb is no longer outputted when $wgParserEnableLegacyMediaDOM is
false (fdd8f864 ), use the new class from 350721cc
Bug: T348275
Change-Id: I5ec67accab4e1cbfa90544087750016e1baab85d
Dots needs escaping
resources\mmv\model\mmv.model.Repo.js
129:11 warning Unsafe Regular Expression
security/detect-unsafe-regex
169:11 warning Unsafe Regular Expression
security/detect-unsafe-regex
The plugin does not like the backtracking for "https?", but that does
not looks like a performance problem when given long strings here.
Change-Id: Iac4c88b591c2e8ebb2ce037bbd99b774319a261c
Use localstorage to store MMV preference for anon and temp users,
use regular user preference for non-temp accounts only
For embed default to wikitext for temp and regular users, html
for anon users
Bug: T340534
Change-Id: Ic19e8a6b6fbdeb2c86be14a33a306dd0f3088b1b
This replaces the jsduck implementation that we recently removed.
Changes:
* Document events on Document element.
Bug: T337039
Change-Id: Iaa9f54c7838159a75a38eec0d49f203803aadee7
Tipsy was added in I993bf60909024453a14de85af6239bded02eb8a6 however
has since been deprecated and usage is discourage.
Falling back to standard HTML `title` attribute display seems fine. Some
buttons (such as previous/next arrow) have not had a tipsy tooltip.
To be done separately: TipsyDialog which is used for StatusInfo
Bug: T77402
Change-Id: I2f7ae189734ba6d6e67ca703a42ae899ec56729d
- mediawiki.router is available inside mmv.bootstrap so move
the handlers into the bootstrap file
- Remove direct loading of images from mmv.js instead modify
event handlers to modify the location which will trigger the loading of
the image
- Copy what we previously did in MobileFrontend (Bartosz's idea)
to allow page refreshing and escaping overlay on page load.
- Remove some no longer relevant tests
Bug: T236591
Change-Id: Ie5d33fca5174db58380a63f5cf97f44e5df10d42
The response of prop=imageinfo is now an array instead of an object.
Therefor it is not needed to interate over the elements anymore.
The array contains exact one element if one title is used in the query.
The function getNormalizedTitle not needed anymore because the
requested title is always the first element of the array.
Change-Id: I7a226d3950615a2152c3f55127b218cac2d21fcc
Replacing 'mediawiki.ui/variables.less' `@import`
with new skin-aware 'mediawiki.skin.variables.less' standard.
Also replacing and removing scattered WikimediaUI Base variables
with new skin variables.
Also
- replacing several static values with new Codex design tokens featuring
skin variables for following properties:
- `background-color`
- `color`
- `border*`
- `border-radius`
- replacing local variables with new skin variables where applicable.
Bump required MediaWiki core version to >= v1.41.0.
Bug: T319381
Bug: T332541
Co-Authored-by: Volker E. <volker.e@wikimedia.org>
Depends-On: I04f9e48a1cf9dee915cf51e1e12b17ff0a595a06
Change-Id: Ie834b3f652bd22d9bf96c112166a5b7fcc3ecf2d
This is in preparation for merging the two modules in core and not
exposing oojs-router directly. mediawiki.router is merely 1 line
of code to hold a singleton, and indeed it appears there is no need
for multiple instances to exist given it communicates exclusively to
and from the 'window' object, which is also a global singleton.
Change-Id: Ice09b523dfbefd67493175554eeb525771e8f29d
Follow up to Ic652576f84e07c9fc8ef8be216a6fc94466198a6 where this was
hinted at.
The comment about active formatting elements is removed due to
I7b4e9df8490357f44d31d6a869fa9b7a15f029ea.
Bug: T321440
Change-Id: Ifb12dac64bd7a7fb8444ac2ada557868502cf213
None of the browsers we send JS to don't support the '*'
selector, so we can remove the fallback for monobook.
Change-Id: I691a71fc8bf4cfa62e8056fdf1021f6513517f75
The MediaViewer and MultimediaViewer* instruments were disabled circa
October 2021 in Ie7dd8739efc.
This patch removes those instruments and any supporting code and data.
Notably, this patch does not remove the mw.mmv.logging.ViewLogger
instrument, which is responsible for logging image views.
Bug: T310890
Change-Id: I97d41be93849b2ae9d1adba6660546ea716657fd
jQuery object gets converted to "[object Object]" which results in an ununique array key in HUP.htmlToTextWithTags cache.textWithTags, instead pass HTML string.
Bug: T308958
Change-Id: If6fc934d263107a0d3346ccea8e91cade72db666
* Declare variables inline, as per the current code conventions.
* Use `assert.true()` or `assert.false()` in a few places.
* Clarify some test names and simplify some surrounding code.
Change-Id: Id0bca942e34564b9c011e89c0b2298cbb4f8a582
My browser is configured with en-GB as its locale. This meant that
when qqx was passed down, it fell back to my browser's default locale
and thus made the tests fail, as the expected data was set against
lang=en.
Ironically, MMV actually prefers the en-GB date format, and outside
tests even replaces 'en' with 'en-GB' when formatting dates in the
user interface. It was only in the tests that it asserted the 'en'
format that would otherwise never be used by MMV.
Ironically, the reason my locale is affecting the test is because
we switched from hardcoded lang=en to hardcoded lang=qqx which is
meant to disable any influence from localisation. However, when
passed to browser-native Intl API, qqx is not valid and thus
caused us to not have a hardcoded 'en' but a completely variable
UI language based on the developer's browser settings.
Bug: T250045
Change-Id: I94ad25cc7060ac5e9db41c6b6767aa9fd687a0db
image-links section may overflow if file has a long filename,
and a horizontal scroll bar may appear. Add a
"word-break: break-word" rule to prevent it from happening.
Bug: T305328
Change-Id: Ief395b66525b686fdcd7dec0909775065240a724
Take advantage of the regularity of the structure.
Limit selection to .mw-description links, which serves an equivalent
purpose to .image in the legacy output.
Bug: T292657
Change-Id: Ic652576f84e07c9fc8ef8be216a6fc94466198a6
In the next iteration of the MediaWiki UI icon styles, it will
not be possible to mix button classes with icons.
The change will result in a slight increase in height for
the settings cog which will be fixed as soon
as Ibc136a17662ae839f90babb21e0f7e8f27b7a7d5 is applied.
Bug: T191021
Change-Id: Ic976ba8cddde1515db260973b00d501f8fc7b901
Currently for files from foreign repositories, the "More details"
button always points to the foreign description page, regardless of
whether a local description page exists. That is a bit unintuitive,
as the local description page often contains additional info (like
categories) that may be useful for the user.
This patch changes the behavior of the button to link to a local
description page if available.
Change-Id: I7db609a4dda42f28ef913ad6d4256fb5adabeb89
When new content is added to a page ( like images LazyLoading ) the
MultimediaViewer reacts mostly correctly, except that is does not
rebuild images indexes for a viewer hence breaking next/prev order.
The patch solves this by resetting the viewer state at MMVB.processThumbs()
letting the viewer to be correctly re-initialized at later stages.
Change-Id: Ib1e3ba05f5bc84d477302e365ad7984de1a84272
Replacing 'grunt-svgmin' with 'svgo' v2.3.0.
Also
- replacing all Grunt based tasks with npm equivalents. 'build' has
before just been for SVG minification and that's the same now in npm.
- changing to JS based '.svgo.config.js'
- re-crushing all SVGs. Note that 'link-hover.svg' and 'link.svg' have
been optimized with reduced precision. All other changes are resulting
from updated SVGO.
Bug: T278656
Change-Id: Ie895edb4e88336ffc56f570b8f80bf7d1e331894
Malformed URIs are difficult to filter due a lack of normalization
across browsers. This is our top error message with over 300 instances.
Catching this would reduce logspam and make our client error logging
much more usable.
Bug: T268060
Change-Id: If1c345af704df82f16c7ef1ecbf63862c1fbee77
Follows-up Id4df92b0ebed3 where a direct call was added into
the OO.Router.prototype which is invalid.
It also didn't add much value as it literally contains just
one line of trivial code that was already used without any
shared state with the actual instance of OO.Router used.
Use location.href directly.
Bug: T77258
Change-Id: I00c018f97d6569a532e51f817a1faa2df4f2fb1a
Amending Base10 to slightly darker `#202122` to fulfill WCAG
requirements in connection to Accent50.
Also adding it as WikimediaUI Base equivalent variable for
future replacement.
Also removing variables not in use any more.
Bug: T248393
Change-Id: I6fb5c288cfeb2bd3c786c2f5ab771074203b8fc0
Renaming 'mmv.globals.less' to 'mmv.variables.less' following naming
pattern of other extensions like MobileFrontend, Echo or Flow.
Change-Id: I376c3fd1463ed225e214f165943576f3e3c7df39
As MDN says, new Date( dateString ) is strongly discouraged, for
exactly this reason. Oy.
Bug: T243160
Change-Id: Ib71b16185f5bd1cd522535716b6e36d2699678cd
This avoids a bug with Firefox's automatic scroll restoration logic,
which seems to always jump to the top of the page upon closing MMV.
Bug: T229484
Change-Id: Ia4261ce268df4d8fb07b4813a6ae72ad88728e91
At the moment, the blur effect is shown all the time when flipping back
and forth between images that have already been loaded. I believe the
code just does not have enough time to get it's job done. Even if it was
a cache hit, the very low limit of only 10ms results in all actions being
considered "long running", and the blur effect been shown.
Given the animation takes 300ms, using a very low threshold like 10ms
seems unfair. Something like 1/2 of the animation time seems more
appropriate.
Change-Id: I8d655be3830fef3f363a0942ac64c932c1e8f7f7
Removing obsolete color, the list items needs to inherit WikimediaUI
palette color `#222` from `.mw-mmv-post-image` instead.
Change-Id: I70354470e0571b6eb8276a3e47167c507b4d717c
* mmv.ui.canvas / error-media-icon.svg:
Used when the media file fails to load (e.g. due to an intermittent
issue with the user's network connection). Rarely displayed,
and the space is reserved (no FOUC). Seems fine to display
slightly later within that use case (or not at all, if offline)
to make the MMV interface itself load faster overall.
Bug: T121730
Change-Id: I760f46c920c3d1f3da2cb385d8cfd81951b628e5
The issue seems to be related with the chronology of the document.title
update and the history.pushState/replaceState call.
Bug: T225387
Change-Id: Ifcd11d5efb3ba64d88b137eccb4b9c763d043004
Object.create( null ) creates an Object without predefined methods like
hasOwnProperty or constructor. This allow to use
key in object
instead of
Object.prototype.hasOwnProperty.call( object, key )
although key is 'constructor'.
Change-Id: I07ef3b97a6b2d1b2fa9f3fb746ffe93a7f325cdf
Some handlers were not correctly unregistered when performing
`unattach`. Thus, `Dialog.handleOpenCloseClick` could be fired more than
once resulting in the dialog been opened and closed immediately
afterwards.
Bug: T186461
Change-Id: I0c3c79644a10d7201ef198f4a4d381c10db4c3af
Steps to reproduce:
1. click on image, 2. press Esc, 3. click on image, 4. press Esc
Expected results: page is visible again
Actual results: navigation to previous page happens
Change-Id: Idd1b6612971b8ea258bb55982e3241986ad1a54d
Results in small UI changes, but allows us to delete a lot
of code duplication.
Depends-On: I9049f5a1c0d88680fc4a174e390dd08e27c0eee2
Change-Id: Iebe7bdc8a026b929a35e823d8107d90e7bb62b82
Before, the icons on the right all had a 24x24px click region, exactly
as big as the icon. There was no wiggle room. You had to be very precise.
This patch adds a padding that can be clicked as well, 14px left and
right, but no additional padding top and bottom (this might be an
additional change for another patch).
I made sure the positions of all icons are 100% as before.
Change-Id: I1618681b5ab714cb4cfc789dc6d501ec30643bc0
This avoids a series of issues on the "Embed" tab, for both the
"Wikitext" and the "HTML" snippet. Without this patch, the textareas
might show a resize handle that does have weird effects when used.
Sometimes the textarea contains very few text and empty space,
sometimes a long text that is barely visible. Auto-fitting it to the
content feels like the right thing to do here.
Change-Id: Ieeaf4d33fef8eb3660fb177f57dfb753b8c208f8
All other icons show the pointer (a.k.a. hand) mouse cursor, except
this one. I believe this is just a mistake.
Change-Id: Id48f65273be0ea81e7c10f0b222430cc85f815a5
What MultiMediaViewer does is re-using the small thumbnail <img> that
is already present on the page, cloning it, blowing the size up, and
using it as a "placeholder thumbnail". The moment the bigger image
finished loading, it replaces the placeholder.
The issue here is that the cloning includes class names like the
<img class="thumbimage"> on every [[File:…|thumb]] image. This shows a
gray border. The cloned DOM node in MultiMediaViewer shows this gray
border around the placeholder for a short time. This can be distracting.
Change-Id: Ie83427fab478b6568731b9a0b1f7dbbcc6d5b0fb
These modules are deprecated and will be removed, see parent task for
details and deprecation information.
Bug: T223284
Change-Id: I2532e20659a59cdd036a7d8ad5a040ae136848f5