Commit graph

1137 commits

Author SHA1 Message Date
Simon Legner 07ba0e43a9 Don't use mw.Map(), use a native Map() instead
Bug: T353076
Change-Id: I91a556becc1093e0db4c4b13e4685f2c0e084031
2024-02-08 20:21:20 +00:00
Simon Legner 1ab8d0d899 Public API to Check Wikimedia Media Viewer Extension Status
mw.mmv.isMediaViewerEnabledOnClick()

Bug: T348026
Change-Id: Ibc34e370e6bf631d9f861b9f6baa75d3f227123e
2024-02-07 20:38:01 +01:00
Simon Legner ef53ab0834 File with percentage sign in file name does not open
Invoking encodeURI on the imageFileTitle makes sure that a "%" character is properly URL-escaped.

Bug: T337540
Change-Id: I538b7f813b546134848e93cea4744de8f4da9e90
2024-02-07 20:13:35 +01:00
Simon Legner 254ec713cc formatDate: handle year, handle <div>
Bug: T58794
Change-Id: Ie05241c8db18773d0eb84421813db69b425e0784
2024-02-05 22:25:39 +01:00
Volker E cfcb8d4755 build: Update 'svgo' to latest v3.2.0 and re-crush SVGs
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
2024-01-18 12:04:02 +01:00
Jon Robson f3f86d6081 Fixes button sizes on file page and overlay
* 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
2023-12-13 18:34:16 +00:00
Timo Tijhof b619d47f79 mmv.bootstrap: Avoid code duplication
Follows-up a0ce33226d (ref T348275, T349448).

Change-Id: I18bebf524686cac9e00e5d250eddd0c73c950893
2023-11-30 15:51:05 -06:00
jenkins-bot e0c48c1331 Merge "Skip thumbs from a.mw-file-description with typeof attribute" 2023-11-13 16:39:38 +00:00
Fomafix 3481080251 Improve variable declarations in JavaScript
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
2023-11-06 23:11:23 +00:00
Umherirrender a0ce33226d Skip thumbs from a.mw-file-description with typeof attribute
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
2023-11-03 20:53:05 +01:00
Fomafix c37c64875b Improve variable declarations in JavaScript
Change-Id: Ibb3f99a98e019204b4def19af957511ef32e9dd4
2023-10-23 19:52:02 +00:00
jenkins-bot 8161b14ea0 Merge "Use a.mw-file-description to find thumbs" 2023-10-12 02:04:49 +00:00
Timo Tijhof 1a25711033 mmv.lightboxinterface: remove 'isFullscreened' data
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
2023-10-06 03:03:00 +00:00
jenkins-bot 01652054b3 Merge "Remove unused core JavaScript modules that ship with MediaWiki core" 2023-10-05 23:58:00 +00:00
Hannah Okwelum c9eed0a3b5 Remove unused core JavaScript modules that ship with MediaWiki core
Bug: T335723
Change-Id: I89e389b532cd80af488255ebe88e403a10ae3a38
2023-10-05 16:53:45 -07:00
Umherirrender 4d4e86ecb2 Use a.mw-file-description to find thumbs
a.thumb is no longer outputted when $wgParserEnableLegacyMediaDOM is
false (fdd8f864 ), use the new class from 350721cc

Bug: T348275
Change-Id: I5ec67accab4e1cbfa90544087750016e1baab85d
2023-10-05 21:16:50 +02:00
jenkins-bot e804f87b89 Merge "Add mw-no-invert class to MMV overlay" 2023-10-05 14:38:49 +00:00
Simon Legner 6ee3f05104 Use Codex styles for buttons in mmv.ui.download.pane
Bug: T340258
Change-Id: I30a7ab4a6732fd87a68c67593d322be2347b2ff8
2023-09-28 10:02:57 -07:00
Ed Sanders 2212255fe2 Add mw-no-invert class to MMV overlay
Bug: T345281
Change-Id: I2f2659809ef8e4fc2e1c752d8fd0eb3533c3cb78
2023-09-12 14:02:36 +01:00
Umherirrender b4e7477150 Escape use of commons.wikimedia.org in regular expression
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
2023-08-10 00:30:27 +02:00
Simon Legner de2349a509 Use Codex styles for buttons in mmv.bootstrap
Bug: T340258
Change-Id: I11fdbabae0ed996ed2e830259ccd3e02c3f035fc
2023-07-17 20:19:05 +00:00
Cormac Parle 6bb1cbaddb IP masking update
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
2023-07-04 11:52:40 +01:00
Ed Sanders 67188f8c31 eslint: Enforce max-statements-per-line
Change-Id: I416d0c951d18f2fb3b477695ab0913f75fb60a68
2023-06-28 19:12:48 +01:00
Ed Sanders a33f7e5c57 Update linters and fix issues
Change-Id: Ib562131bbb3a9940d56602e0c4dbbe810ce7358c
2023-06-28 19:12:48 +01:00
jenkins-bot b2c7f6747d Merge "Add mw-parser-output to file captions" 2023-06-21 23:33:13 +00:00
Simon Legner 9215d30471 Add shortcuts Home/End to jump to first/last image
Switch keydown handler to use KeyboardEvent.key
Ref: https://caniuse.com/?search=KeyboardEvent.key

Bug: T163976
Change-Id: Ia0d5b2b8d28324c89b0fa11916de9cdd6d16434a
2023-06-21 22:09:24 +00:00
Saint Johann fc42f2c39b Add mw-parser-output to file captions
Bug: T284857
Change-Id: I1c18ece776d615e58f3d694ef475c2a8b586f18f
2023-06-21 22:09:19 +00:00
jenkins-bot a397dc6062 Merge "Add jsdoc to MMV" 2023-06-16 19:24:59 +00:00
Simon Legner 5f781b7a9b Add jsdoc to MMV
This replaces the jsduck implementation that we recently removed.

Changes:
* Document events on Document element.

Bug: T337039
Change-Id: Iaa9f54c7838159a75a38eec0d49f203803aadee7
2023-06-12 22:08:14 +02:00
Simon Legner 48b6c76601 Notify user and close MMV if image from route not present on page
Fixes: only a black screen without any controls or messages is shown

Bug: T77327
Bug: T336619
Change-Id: I53687fce2c767ff6681707da424b974ecf51675a
2023-06-12 19:13:48 +00:00
Simon Legner 30fad6b8b8 Use ES6 features
* classes
* arrow functions
* const/let
* string templates
* Object.assign

Bug: T337102
Change-Id: I757b9993a2feeed707fb4ad213944001498f3f6a
2023-06-12 16:45:08 +00:00
Simon Legner 0683f3ecc8 Remove global mw.mmv
Bug: T337030
Change-Id: I90e8507cb1b7c30f6ba29dbdec8966e84b46aff2
2023-05-21 08:02:54 +00:00
Simon Legner 74a76718d7 Use packageFiles in mmv.test
Bug: T337030
Change-Id: Iaea2deec35003e306a8e1f12f890879c80cd8289
2023-05-21 06:41:31 +00:00
Simon Legner d82910fbb3 Use packageFiles in mmv
Bug: T337030
Change-Id: I833c7e91230272b82a2512fd55f1c7c0f61233b4
2023-05-20 10:04:41 +03:00
Simon Legner 35cd0f18c0 Use packageFiles in mmv
Bug: T337030
Change-Id: I90cdfb626c176b27b59db6b92b9edd6b2fe49b68
2023-05-20 09:34:56 +03:00
jenkins-bot 91bb566fec Merge "Use packageFiles in mmv.ui.ondemandshareddependencies" 2023-05-19 16:45:57 +00:00
Simon Legner 4709abae0a Use packageFiles in mmv.ui.ondemandshareddependencies
Bug: T337030
Change-Id: I09b4d1fecd1940a1a767d2033c4449b5002a88a8
2023-05-19 18:08:39 +03:00
Simon Legner 26f4c60495 Use packageFiles in mmv.ui.reuse.shareembed
Bug: T337030
Change-Id: Ic54d1a1a40ee5318f65ee1245e261db7059583ba
2023-05-19 18:05:56 +03:00
Simon Legner d0066039ac Deep-link to the license section of a file page
The necessary anchor link depends on the language used on Wikimedia Commons:

* https://commons.wikimedia.org/wiki/File:GATEWAY_(Moon_Space_Station).png?uselang=en#Licensing
* https://commons.wikimedia.org/wiki/File:GATEWAY_(Moon_Space_Station).png?uselang=de#Lizenz
* Ref: https://commons.wikimedia.org/wiki/Template:License-header

Remove jsduck due to lacking support for ES6 string templates.

Bug: T336708
Change-Id: Ib71e647682835baa71bd375ae3098966ae01f26c
2023-05-19 13:57:54 +00:00
Volker E b64642a527 styles: Remove obsolete mixin
Duplicated in core mixins with `.user-select()` since v1.38.0.

Change-Id: Ia0d36bbd2fd417a7195c235854ddd81ac76e51c1
2023-05-09 18:56:17 -07:00
Volker E 132763dd70 styles: Remove deprecated .background-image() mixin call
Deprecated since v1.38.0.

Change-Id: I5723bddcf4ffa529a5a89118ec4a7d36b480408d
2023-05-09 18:24:39 -07:00
Jon Robson 00b65d02cd Remove jquery.tipsy and use OO.ui instead
Bug: T77402
Change-Id: I63328cf86872019fc9832162b26ffa8075382acd
2023-05-05 16:32:00 +00:00
Jon Robson d41884b8e5 Fix file page integration
Bug: T335997
Change-Id: I1c7b6a9b8f0903670d1ac40e3d29239674f5365f
2023-05-04 11:39:23 -07:00
jenkins-bot acd340b5de Merge "Remove most uses of jquery.tipsy in MediaViewer" 2023-05-02 19:27:10 +00:00
Simon Legner d2ab19fdac Remove most uses of jquery.tipsy in MediaViewer
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
2023-05-02 18:21:57 +00:00
Bartosz Dziewoński 3bca077968 Remove some IE 11 support code
No longer supported by MediaWiki.

Change-Id: Ib16ecd8fc2ca8060deabf39142d5294a7b8f316f
2023-05-02 15:54:46 +02:00
Jon Robson d556e73a00 Router handling code should be centralized into mmv.bootstrap
- 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
2023-05-01 17:22:39 -07:00
jenkins-bot e5f9cb140a Merge "Use .text( '\u00A0' ) instead of .html( '&nbsp;' )" 2023-05-01 18:54:17 +00:00
Fomafix 90a1949444 Use .text( '\u00A0' ) instead of .html( '&nbsp;' )
On reading the HTML by .html() in the tests the content is still
'&nbsp;'.

Bug: T154300
Change-Id: I2f43909c5539a5882af354fc8f64b03e43697647
2023-05-01 18:41:48 +00:00
jenkins-bot d23984ac52 Merge "Avoid HTML in jQuery constructor" 2023-04-29 16:46:05 +00:00
Fomafix 412765d8b5 Avoid HTML in jQuery constructor
See: https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Creating_elements

Change-Id: I6e037eb03d932bb50edecbfbbd56a06f24c287f8
2023-04-28 16:57:24 -07:00
Fomafix 8013fde051 Use formatversion=2 in API requests
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
2023-04-24 20:32:11 +00:00
jenkins-bot 7ce1741121 Merge "styles: Replace old variables calls with skin variables" 2023-04-19 14:25:23 +00:00
Fomafix a8ccfb4092 Remove .join( '|' ) for API parameters
mw.Api automatically joins parameters which are from type array.

Change-Id: I17d7ba6f2fdc36963e984062827d69ff45656a93
2023-04-17 11:50:01 +00:00
Volker E bee73f7520 styles: Replace old variables calls with skin variables
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
2023-04-16 03:32:27 -07:00
Taavi Väänänen fb4ad597a0
Refresh Geohack URL
Change-Id: I86719937bca606f757f6f144bc287a0e61b09915
2023-04-10 17:58:25 +03:00
Umherirrender a9dad10f32 stylelint: Enable selector-pseudo-element-colon-notation
Via stylelint --fix

Change-Id: I9ea62e799573164a37181bc9b991c817a3786732
2023-04-04 08:18:59 +02:00
Timo Tijhof cd4da296c2 mmv: Use mediawiki.router instead of underlying oojs-router module
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
2023-03-06 02:34:13 +00:00
Gergő Tisza 298f1f77d2
Use checkered background for transparent WebP images
Bug: T327019
Change-Id: I445f1fdd562100f5788d31ec8dd506f8242a29c2
2023-01-15 21:57:04 -08:00
Arlo Breault b0f83b39fb Use Parsoid's regularity to find caption
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
2022-10-27 20:17:05 +00:00
jenkins-bot 3519a635a8 Merge "Fix credit fallback not updating when switching image" 2022-07-11 23:34:35 +00:00
Ed Sanders bf04f98306 MMV lightbox: Allow notifications to appear on top of the lightbox
Bug: T312778
Change-Id: I1e4a32325b36721b51ffb199df3471fc75e9498e
2022-07-11 16:01:14 +01:00
Ed Sanders f08e51741c Remove monobook selectors that assumed the '*' selector might not be available
None of the browsers we send JS to don't support the '*'
selector, so we can remove the fallback for monobook.

Change-Id: I691a71fc8bf4cfa62e8056fdf1021f6513517f75
2022-07-11 16:00:24 +01:00
Sam Smith 34e4968b2c Remove instrumentation
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
2022-07-05 17:41:24 +00:00
dylsss 9d265ee1d0 Fix credit fallback not updating when switching image
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
2022-06-07 23:29:49 +01:00
jenkins-bot 67035ba546 Merge "Support mw:File as well as mw:Image" 2022-05-26 20:40:21 +00:00
Ed Sanders e131da48f9 build: Update eslint-config-wikimedia to 0.22.1
Change-Id: I275ecfa03b3df8554b30f2a0f6d94d4b66da8088
2022-05-20 00:05:49 +01:00
Ed Sanders 3a61a45a53 build: Update stylelint-config-wikimedia to 0.13.0
Change-Id: I1b6de87b8a1b48220104af42a4e43d81a289438c
2022-05-19 23:58:01 +01:00
Ed Sanders 73e59d396d style: Remove vendor-prefixes no longer required
Change-Id: Ide19cd0decb8a6ef26ccb94bfc89376b3a886748
2022-05-19 23:48:51 +01:00
Arlo Breault 65cba344ad Support mw:File as well as mw:Image
Bug: T273505
Change-Id: I5734593936e620b4c74789080263ef1ea3b99c9d
2022-05-19 17:46:46 -04:00
Timo Tijhof 0f092b6cb3 tests: Minor clean up of mmv.ui.metadataPanel.js and other tests
* 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
2022-05-13 22:13:01 +01:00
Timo Tijhof 5e1dece304 tests: Make mmv.ui.metadataPanel.js pass with non-English locale
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
2022-05-13 21:49:51 +01:00
stang 52f2d40c8e Add word-break rule for mw-mmv-image-links to prevent overflow
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
2022-04-03 15:55:52 +00:00
Arlo Breault ae5a7aeac1 Separate processing for Parsoid thumbs
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
2022-03-04 18:36:26 -05:00
Arlo Breault 681e1afe36 s/thumbContain/thumbContainer/
Change-Id: I57738c705b3be7aade3e5ba64c879eecc1727383
2022-03-04 18:34:06 -05:00
Sébastien Beyou a10359e6e6 Replace deprecated jQuery.throttle/debounce
This requires MediaWiki 1.38 for mw.util.throttle.

Bug: T213426
Change-Id: I3f689eea837ef72de9ab7afb68578093eab8db20
2022-02-10 13:22:52 +01:00
Ed Sanders b03af20581 eslint: Lint Gruntile.js using server rules
Change-Id: I6f6f7391668412b2bb572a8d77da8e137fa169bb
2022-02-07 16:38:38 +00:00
Iniquity 5803ea79eb Remove discussion and help links from footer
Bug: T133899
Change-Id: Ide631cd8bd98ff5084a8c406515c53b8a0cb033a
2022-02-06 01:15:02 +00:00
James D. Forrester 7dbee90cce Avoid ableist language in comments and test names
Change-Id: I55047f95da7c05f631f4009cbe25d8515dd937f1
2021-12-09 19:48:17 -05:00
Volker E f074ab467b Replace obsolete LESS box-shadow() mixin
With unprefixed property.

Change-Id: I2b4117e6dd7082d544e09969441e5a5f912f7d1d
2021-09-11 02:31:19 -07:00
seddon b007aaa741 Err: param required cant be empty/0 ThumbnailWidth
Bug: T277893
Change-Id: I5b440be10aa30527270515f6921596b8000a9f83
2021-08-25 20:34:32 +00:00
seddon a397ce8f88 Lightweight fix to FF Nightly/Fission scroll issue
Bug: T229484
Change-Id: Id1624e8822b81deedf8c58a3df83bd992946869b
2021-08-04 09:49:30 +00:00
jdlrobson 933d370ecf Prepare for MediaWiki UI version 2
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
2021-07-19 15:42:21 -07:00
DannyS712 5c0ef64a73 Typo fix: "the the" -> "the"
Bug: T201491
Change-Id: Ie0139401ea5826546219fc86f5efefbb76159027
2021-07-17 02:58:49 +00:00
Ostrzyciel c38a65410a Link to local description page if present
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
2021-06-20 07:24:00 +00:00
Vedmaka ca57e8eda0 Adds viewer state invalidation into wikipage.content hook callback
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
2021-06-02 11:14:45 +00:00
Volker E 3205e72ad8 build: Replace 'grunt-svgmin' with npm based 'svgo' & re-crush SVGs
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
2021-04-12 13:01:59 -07:00
Volker E 1a5aa67c08 styles: Remove obsolete vendor prefixed properties
Bug: T278670
Change-Id: I5640e4539598de8e9ae2d4e5172a5ae41b570ce3
2021-03-29 02:19:27 -07:00
jdlrobson d9925de6d5 Catch malformed URIs
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
2021-03-04 09:12:47 -08:00
Cormac Parle ecbb6856cf url-encode page uri before starting the view duration timer
Bug: T268060
Change-Id: I956f745786fe41b2c62c8ee6d13d91d9dc89bda5
2020-12-10 12:22:15 +00:00
AronDemian 72636057d8 [cleanup] Fix eslint (new version) warnings
Bug: T245930
Change-Id: I7a62e5a0a90ce0f4e4385afdae1e57722bc9ac82
2020-11-02 02:58:31 +01:00
diwanshu885 5271e7a08d Wrap the mw.Uri creation in a try-catch block
Bug: T261799
Change-Id: Ibaf027917f34d0591b7ebc669d9fbaff2f0bb442
2020-10-20 00:21:07 +05:30
Ed Sanders bfdcd8dbf1 eslint: Update eslint-config-wikimedia to 0.16.2
Change-Id: I0c35ed9b5ab00952124cb0e5c6c48fbc0d734f60
2020-06-26 12:14:27 +01:00
Ed Sanders d554d7f426 Docs: Fix whitespace
Change-Id: I98dc12787f68bd8db60e5a5bcb9366daf9f2f6b8
2020-06-26 11:21:04 +01:00
Timo Tijhof caa11531b1 mmv.bootstrap: Remove direct static call to OO.Router.prototype
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
2020-06-12 10:07:40 +00:00
Volker E 9d2f7de650 Amend Base10 color from #222 to #202122
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
2020-04-20 13:50:10 -07:00
Volker E d5aad3a260 Add file extension to LESS imports
Similar to how other extensions have been amended.

Change-Id: Ic9905fe166507739cd687f5aa2f44a0625b9746b
2020-04-17 21:13:01 -07:00
Volker E 02c0fd738f Rename 'mmv.globals.less' to 'mmv.variables.less' following naming pattern
Renaming 'mmv.globals.less' to 'mmv.variables.less' following naming
pattern of other extensions like MobileFrontend, Echo or Flow.

Change-Id: I376c3fd1463ed225e214f165943576f3e3c7df39
2020-04-17 21:05:58 -07:00
jenkins-bot 7b3e5b5093 Merge "Maintenance: npm -s run lint:fix caught some missed empty lines and spaces." 2020-02-27 18:48:55 +00:00
AronDemian c73a73a203 Maintenance: npm -s run lint:fix caught some missed empty lines and spaces.
Bug: T245930
Change-Id: I338069768111963a25531fc3996f6031b76dc4ee
2020-02-27 06:50:49 +01:00
James D. Forrester cf26ef2e1a metadataPanel.formatDate: Account for timezoneness
As MDN says, new Date( dateString ) is strongly discouraged, for
exactly this reason. Oy.

Bug: T243160
Change-Id: Ib71b16185f5bd1cd522535716b6e36d2699678cd
2020-02-24 15:16:00 -08:00
Matthias Mullie ca1364928c Move mmv-close event trigger higher up in lightboxinterface/unattach
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
2020-01-15 00:50:13 +00:00
Umherirrender 6a6d17b999 build: Remove unneeded exclude from .eslintrc.json
This reverts parts of commit bb26bc47b4.

Change-Id: I108e2f39713fb95f4b00dabd495e27f4bd5af90a
2020-01-08 19:51:42 +00:00
jenkins-bot 5c931b5d2e Merge "Increase timout for browser cache hits from 10ms to 100ms" 2019-11-28 18:13:34 +00:00
Thiemo Kreuz 550d01d231 Increase timout for browser cache hits from 10ms to 100ms
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
2019-11-28 03:44:31 +00:00
Volker E 44d39ad807 Remove obsolete color
Removing obsolete color, the list items needs to inherit WikimediaUI
palette color `#222` from `.mw-mmv-post-image` instead.

Change-Id: I70354470e0571b6eb8276a3e47167c507b4d717c
2019-10-13 09:40:55 -07:00
jenkins-bot 7178e76d37 Merge "eslint: Enable no-proxy rule" 2019-09-28 21:37:15 +00:00
Krinkle bfc93418c8 Merge "Remove @embed where it needlessly delays loading of the UI" 2019-09-27 16:19:42 +00:00
jenkins-bot dd4f996ae4 Merge "Revert "Clicking on the black wrapper should close MVV"" 2019-09-23 19:16:59 +00:00
Esanders 24fcde2546 Revert "Clicking on the black wrapper should close MVV"
This reverts commit c7c8059a0a.

Bug: T133900
Bug: T231895
Change-Id: I0583487249ca4bb29bf68fb218a3ddf2251893e7
2019-09-23 18:51:33 +00:00
Ed Sanders 5da05073f1 eslint: Enable no-proxy rule
Change-Id: I54e0073c0f35db110add7518e888081af19cd069
2019-09-20 13:25:10 +01:00
James D. Forrester e75c8f3fb4 mmv: Don't try to use internal (now removed) ext property of mw.Title
Bug: T232521
Change-Id: I8af85efc2b7ff84f81a72b39986ce3eb356eac69
2019-09-10 12:57:33 -07:00
Timo Tijhof 70b0cbb727 Remove @embed where it needlessly delays loading of the UI
* 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
2019-09-02 01:24:56 +00:00
libraryupgrader 5410aa9150 build: Updating eslint-utils to 1.4.2
* https://npmjs.com/advisories/1118

Additional changes:
* Added .eslintcache to .gitignore.

Change-Id: I9b6420e70ec7f4568b707371c731a8db56f6e34a
2019-08-24 12:16:21 +00:00
jenkins-bot b351d1b5fc Merge "build: Update devDependencies" 2019-08-01 02:15:32 +00:00
Ed Sanders 18a154b989 build: Update devDependencies
Change-Id: I46f5317976ef9f818e30b0c81018e83800535389
2019-07-31 22:59:13 +01:00
Ed Sanders f4d6c9f37e Remove useless .opacity mixin
Change-Id: Icff7c01aba4a647d23bae1925b725bddc555c762
2019-07-29 17:56:43 +01:00
Ed Sanders 0cda0f8706 Drop CSS hacks for unsupported browsers (IE<11, ancient Firefox)
Bug: T184543
Change-Id: Ibd07ecd545f9b69f4dd3adb2b371b4d87ca4098b
2019-07-29 15:33:58 +01:00
jenkins-bot ec72d6284d Merge "Chrome does not revert title to article title" 2019-07-29 14:20:14 +00:00
Simon Legner c7c8059a0a Clicking on the black wrapper should close MVV
Bug: T133900
Change-Id: I0f05a3b16cdbef9a64a3d5cb4982525460e3b002
2019-07-09 17:21:10 +00:00
jenkins-bot 989af50dcf Merge "Make the download/share buttons actual links for right/middle click" 2019-06-15 22:09:38 +00:00
jenkins-bot e19944e67d Merge "Use Object.create( null )" 2019-06-14 18:31:26 +00:00
Simon Legner a663d2884c Chrome does not revert title to article title
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
2019-06-11 11:50:44 +02:00
Fomafix 08d5eaeb20 Use Object.create( null )
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
2019-06-10 15:03:00 +02:00
Fomafix f89d7dc878 Remove "window." for location and setTimeout
The JavaScript in core also don't use "window." for these browser
properties and methods.

Change-Id: I344573fd7ef0e73c252779b4e59a53168d16574f
2019-06-10 12:46:58 +02:00
Fomafix 7e03aa58a5 Use mw.log.error instead of window.console.error
mw.log.error is always present and calls console.error if available.

Change-Id: I6337ce7f0b6fef2933b067cda7097037cf757d7b
2019-06-10 12:22:19 +02:00
jenkins-bot 0d4d5096b1 Merge "Replace moment.js with Date.toLocaleString" 2019-05-31 21:14:00 +00:00
Simon Legner 682873dd2d Replace moment.js with Date.toLocaleString
Bug: T224626
Change-Id: Ib312821d2c72c2570cec29153557fd44e4db2bf7
2019-05-31 21:56:45 +02:00
jenkins-bot c7e33d0f5e Merge "Download sizes: 480p, 720p, 1080p, 2160p" 2019-05-31 16:54:00 +00:00
jenkins-bot 1e704eec51 Merge "Fix unresponsive download button" 2019-05-31 16:52:51 +00:00
Simon Legner 1a00347c49 Fix unresponsive download button
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
2019-05-28 23:11:18 +02:00
Simon Legner e77393744d Fix routing after repeatedly opening/closing
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
2019-05-28 22:37:00 +02:00
jenkins-bot a4e63f623c Merge "Adopt mediawiki.router" 2019-05-28 15:14:50 +00:00
Simon Legner b1ade19388 Adopt mediawiki.router
Bug: T77258
Change-Id: Id4df92b0ebed3fb4f4b9269862c952f3968bf957
2019-05-26 19:46:38 +02:00
Simon Legner 2fbf2c06a9 Download sizes: 480p, 720p, 1080p, 2160p
Bug: T77642
Change-Id: I41b7d59d14342345fc060085b755ce28f3e9cf98
2019-05-26 19:15:09 +02:00
Ed Sanders 394b893c7d Use upstream CopyTextLayout in share/embed/download panels
Results in small UI changes, but allows us to delete a lot
of code duplication.

Depends-On: I9049f5a1c0d88680fc4a174e390dd08e27c0eee2
Change-Id: Iebe7bdc8a026b929a35e823d8107d90e7bb62b82
2019-05-23 20:01:36 +01:00
jenkins-bot 4f9b3eff8a Merge "Enlarge click regions of all icons in the main UI" 2019-05-20 11:08:08 +00:00
jenkins-bot a3bd1df9b9 Merge "Make multiline text fields auto-size depending on the value" 2019-05-20 10:46:17 +00:00
jenkins-bot bc666cb1e7 Merge "Show the hand mouse cursor on all "copy to clipboard" icons" 2019-05-20 10:07:48 +00:00
Thiemo Mättig 8b647c09e7 Make the download/share buttons actual links for right/middle click
Bug: T71469
Change-Id: Ib9dca98a70a056e93e252ba1d08479be509e7a18
2019-05-20 09:05:10 +00:00
Thiemo Kreuz 873a88e654 Enlarge click regions of all icons in the main UI
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
2019-05-19 19:00:27 +00:00
jenkins-bot fb40e5b09f Merge "Do not clone CSS class names as well" 2019-05-19 13:12:18 +00:00
Thiemo Kreuz 646d871eee Make multiline text fields auto-size depending on the value
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
2019-05-19 14:59:43 +02:00
Thiemo Kreuz 6d042d7fa6 Show the hand mouse cursor on all "copy to clipboard" icons
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
2019-05-19 14:57:56 +02:00
Thiemo Kreuz 26fbcd6095 Do not clone CSS class names as well
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
2019-05-19 10:44:21 +00:00
Simon Legner e1caa0f65e Fix typos in code/comments
No functional change.

Change-Id: I6447aefe8fdd39642d613f55ad0a5537f64dcb9d
2019-05-19 10:17:44 +00:00
jenkins-bot 870735c0e9 Merge "Fix copy share URL to clipboard" 2019-05-18 17:29:25 +00:00
Simon Legner 5be5afe0a7 Fix copy share URL to clipboard
Typo in method.

Bug: T223729
Change-Id: I45ffeea5d9837fcdf63df7ee72d8b9a6298415df
2019-05-18 17:16:21 +00:00
Simon Legner b23a32a413 Remove SVG checks
Bug: T223649
Change-Id: I252ca1cbba3e67921a4db82358d22bf02c20dc63
2019-05-18 17:46:20 +02:00
Dan Andreescu 51b31545ab Remove mentions of schema.* ResourceLoader modules
These modules are deprecated and will be removed, see parent task for
details and deprecation information.

Bug: T223284
Change-Id: I2532e20659a59cdd036a7d8ad5a040ae136848f5
2019-05-14 21:22:28 -04:00