Commit graph

47 commits

Author SHA1 Message Date
Fomafix 8a78d01763 Add a tag to mw.notify
This prevent multiple notifications for the same message.

Change-Id: I6487852350497a48e1710fb04d3af01fc5c18116
2024-08-27 13:03:10 +00:00
Ed Sanders a6ab8d6da3 Prefer arrow callbacks (ESLint autofix)
Change-Id: I52b2feacd6216e99e04f193ba963e897b3e1a771
2024-06-04 08:01:54 -07:00
Jan Drewniak f9183cbc81 Follow-up to cf723c00 - Guard against undefined $container
Since `initMediaViewer()` can be invoked via
`mw.hook( 'wikipage.content' ).fire($container)` it's better
to validate that $container is in fact an HTMLElement and not
an empty jQuery collection.

Bug: T360781
Change-Id: Ib43327dd70c35918e3079c7b6b23a161383654b5
2024-04-02 14:37:23 -04:00
Fomafix effd4fe133 Use eslint rule "no-var": "error" and replace all var
Change-Id: I67acf88e1b8de55054248d7cf8ca622d5772ea6f
2024-03-29 07:40:22 +00:00
Jan Drewniak cf723c00c3 Guard against undefined $container element in initMobile.js
In order to prevent spikes in JS errors, ensure that the $container
element exists before initializing the mobile media viewer.

Bug: T360781
Change-Id: I48a57e8008e7bd90e9fcfc783f3720f6f75520a7
2024-03-25 09:38:11 -04:00
Jon Robson 5e2e2142ef Diffs: Localize number in timeago
Bug: T357079
Change-Id: I6c877baa82ac88e50ae0c5e932665bda9122da70
2024-02-09 16:51:30 +00:00
Ed Sanders 8ef144f936 build: Update linters
Change-Id: I5aa3ab891890b52057a5fc855315e5b1b2203037
2024-01-24 22:02:12 +00:00
Jdlrobson ca28efc9c7 Drop mw.mobileFrontend references
This restores the previously reverted patchset
If5b76245bf60bfa9cf977cdbf37ee0d6bb65f9d9

Changes since original:
* Added Depends-On to MobileFrontend
* Uses OOUI classes for page issues rather than es6 classes - ES6
classes do not support modifications to class prior to running
super so MobileFrontend's View class is not compatible without
significant refactors.

Depends-On: I24ad75adf8519102ca356d64d99d765ab69180cc
Bug: T348807
Change-Id: I4ff82af0251254c846f2caee330af5af738f6029
2023-11-10 01:30:52 +00:00
Jdlrobson 2ee3e27406 Revert "Drop mw.mobileFrontend references"
This reverts commit 19ea6328b0.

Reason for revert: Breaks page issues and image overlay. I
will break this up into smaller less risky patches.

Change-Id: If5b76245bf60bfa9cf977cdbf37ee0d6bb65f9d9
2023-11-03 19:26:16 +00:00
Jon Robson 19ea6328b0 Drop mw.mobileFrontend references
Bug: T348807
Change-Id: Ib71b43005e5788d0e29917a165281faa84926414
2023-10-31 21:54:26 +00:00
Jon Robson db8e3b09af Document messages and add hours and minute units
Follow up to I5a4a2588da3d701be87690038c2c9b2bc1aa0365

Change-Id: I6ea2b98bd3d03e586cc58307d3f2f0f1119059e3
2023-10-30 23:37:12 +00:00
jenkins-bot 3a4b1f1082 Merge "Style the desktop diff and history page of Minerva to look like mobile pages" 2023-10-30 14:53:32 +00:00
Jon Robson a3f03245fd Style the desktop diff and history page of Minerva to look like mobile pages
Depends-On: Ie8ac1aab6d2fe5f4575a6891c36efe497458e093
Bug: T305113
Bug: T240624
Change-Id: I5a4a2588da3d701be87690038c2c9b2bc1aa0365
2023-10-20 18:35:10 +00:00
Ed Sanders a8aecda711 Udate jsdoc and use jsdoc-wmf-theme
Depends-On: Ic3861870c10f64d7f5414669a9d25b8ffb4c79a4
Change-Id: I6750e9bb6d5409e497b5605e3a4660734f5677ab
2023-10-20 13:42:19 +00:00
Jon Robson c53f69f36a Fixes notification overlay: Change URL using location
Partial revert of I192c6d4235c57f69cf48dcd67aa6c4810df62dfa
The deprecation notice seems incomplete. The two functions are not
equivalent and we have various usages elsewhere in the codebase.

Bug: T346685
Change-Id: I063daa217708c3bebac97af7be9eedab01f5217b
2023-09-18 14:15:12 -07:00
jenkins-bot 18451d4f94 Merge "Fixes console warnings" 2023-09-13 23:37:11 +00:00
Jon Robson 52de5fd597 Fixes console warnings
Fixes "[1.40] Use of PageGateway is a NOOP and deprecated. Please remove this call."
Fixes Use of "navigate" is deprecated. use navigateTo instead

Change-Id: I192c6d4235c57f69cf48dcd67aa6c4810df62dfa
2023-09-07 11:22:49 -07:00
bwang 269bd5bdaf Remove old :before icon selectors and update selectors to not use minerva and wikimedia prefixes
Bug: T344022
Change-Id: I573d7b36513cd0b74f62621cc246f719bcb94256
2023-09-06 13:53:22 -05:00
Martin Urbanec 0109b17483 watchlist: Don't assume only named users have watchlist access
In I1ccda3878a658d4251429ae65ebee04c09d81243, core decided
to technically allow temp. users to have watchlist access,
but have it disabled on permission level
(viewmywatchlist / editmywatchlist) instead of by isNamed() checks.

Minerva expects the watchlist permissions to be assigned to everyone,
but actual watchlist access to be available only to named user.
This is an incorrect assumption. Make a clear difference between
"page is watchable" concept (watch icon should show) and "user has
permission to watch" (if not, CTA to log in should show).

There is one additional step to fix, which is ensure
temp users receive the T330518 drawer. That is not a bug
in MinervaNeue, but in core -- mediawiki.page.watch.ajax.js uses
e.stopPropagating(), which means Minerva's CtaDrawer doesn't get
a say. Ideally, mediawiki.page.watch.ajax.js would know whether
the user has permissions to edit their watchlist. Alternatively,
it could have an interface to allow extensions to add their own
error handling. See T344925 for details.

Bug: T344870
Change-Id: Id1757fb4fb433fe39cf4d5c6e1e9c65ab5abae14
2023-08-24 14:12:43 +00:00
Jon Robson ded6430b47 Echo uses Button template
Changes
* Update FIXME in userMenu.less to merge selectors
* We replace minerva-user-notifications class with minerva-notifications
to short-circuit Echo's code so that it no longer replaces the Minerva
notification badge with its own.
* We update resources/skins.minerva.scripts/initMobile.js to introduce
our own wire up code - this is responsible for opening Echo overlay
and reseting the counter. The code in Echo will be removed in a follow
up (see <I2f923e509d24524a2375ffbe6b3ef336487574bb>)
* We update skinStyles/ext.echo.styles.badge.less with styles from Vector 2022
so that Minerva desktop remains consistent with desktop Vector 2022 experience.
* We clearly mark technical debt relating to the special mobile version.

Testing:
* Pixel.js has a group echo that covers all the different variants.
Make sure to update to latest main branch before running these.
* Desktop should behave the same for Minerva as Echo.
* On mobile only when a user has unseen notifications a red circle
is shown. Otherwise a bell icon is shown, never with number.
* On mobile a single button is visible that combines alert and count
numbers.
* With Echo disabled a bell shows that links to the user talk page

Visual changes:
* Previously the red circle became a transparent/gray circle on click. Now
it will always be red.
* Minor aligment changes to red circle and bell icon are expected as
the change prevents MobileFrontend/Echo updating the icon to use
Codex.

Bug: T342907
Change-Id: I55c18cf723a32f80b93a01dd0687e005162c4e93
2023-08-08 15:44:38 +00:00
Jan Drewniak 11e09ea7b3 [Icons] Convert history/next status bar icons to Codex
Creates a new Icon.mustache file in favour of using
MinervaUI::iconClass.

Add a new icons.less file and the following icons:
- history
- expand (next) arrow.

These icons are used exclusively in the history
status bar at the bottom of most pages.

Bug: T319260
Change-Id: If81186418fe758d7be9c3e57cf5d2aa889517f2d
2023-07-28 16:56:24 -07:00
bwang 6635693826 [Icons] Update usage of MobileFrontend Icon code
Visual change:
* Improves vertical alignment of TOC

Technical change:
* Remove dependency on MobileFrontend

Bug: T319260
Change-Id: I0526293c6a99dfe078b9e32aa247522a63b6d0fd
2023-07-25 17:55:02 +00:00
Jon Robson 868120946b Prompt IP masked users to login/create account when watchstar clicked
Bug: T330518
Change-Id: I08c4f10216be0d020772a600d490e29465ce2689
2023-06-14 23:39:46 +00:00
Nicholas Ray 2179d08a8e Replace slow thumbnail init code with event delegation
Previously, page load executed code that iterated through each image on the
page, attached a click listener, and "attached" a Thumbnail object to the
element.

This execution took 90ms on my low-end phone and seems like it can be replaced
with event delegation instead. This will result in less work on the main thread
during page load and a more responsive user experience.

Additionally:

* Remove redundant check of the primary mouse button. Per the "click" event spec
[1], this click event "should only be fired for the primary pointer button
(i.e. when button value is 0)."

* Move initMediaViewer, initRedLinks, initRedLinksCta into same wikipage.content callback as the TOC mutation.

[1] https://w3c.github.io/uievents/#event-type-click

Depends-On: Ica3e0448e3d687e9c4cf563542dbe44432d196d5
Bug: T241139
Change-Id: Iebb18dfb225b474402c0d8ab5e39c5e9e71d3ad7
2023-04-19 21:13:55 +00:00
Bartosz Dziewoński 8c0f0c578e Remove talk page tools
Bug: T319145
Change-Id: Ib432564e1049f18334653e5eb3981f0f051582b3
2023-03-13 18:21:52 +00:00
Ed Sanders f876accf9a Disable "page issues" feature when DiscussionTools is handling talk page
Bug: T312309
Change-Id: I9c3035c9dbe7545a05efb2286dffe0145d3557b4
2022-10-25 16:36:15 +01:00
Fomafix a574b2e3df Use shortcut mw.msg( ... ) instead of mw.message( ... ).text()
Change-Id: Ia0e867034a0c7f334376bbc74d426018e6764c25
2022-08-26 08:34:27 +00:00
Ed Sanders 8899efd4b9 Move TOC button fixes to wikipage.content hook
The content area can be updated, after which these changes
need to be re-applied.

Bug: T219420
Change-Id: I3cd89fe98f74be70bf1e58cf606b2c19be8db2cf
2022-03-22 21:05:03 +00:00
jenkins-bot 9a9f3a72df Merge "Move the form element in Minerva's header and apply core checkbox hack consistently to toggle lists" 2022-01-04 22:16:04 +00:00
bwang 0bee6a1eb6 Move the form element in Minerva's header and apply core checkbox hack consistently to toggle lists
- Factors out Header and SearchBox partials

Bug: T294164
Depends-on: I16d1dfba1b6d0745afff14f1b79586bb17ecdd69
Change-Id: I997f3c2de5cf813db63220580e7cb3fe09aa6932
2022-01-04 11:01:17 -06:00
Gagah Pangeran Rosfatiputra e49dd310e8 Make whole area of last edited section to be tappable
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
2021-12-20 16:31:42 +00:00
Ed Sanders 2ec4b950e2 build: Update eslint-config-wikimedia to 0.21.0
Change-Id: I0185de7ec62c54ee733de94622e0c41a65e86731
2021-11-09 14:48:40 +00:00
jdlrobson d4039f9240 Fix last modified bar icon change and search unStar-progressive
In b4fd1498bc we set a variant, which dropped the default global
progressive and invert variants. This is turn, made the mobile
watchstar on search disappear when selected.

Here we restore those icon variants, and take the time to refactor
the code so its more resilient against future icon changes.

Change-Id: I1423fbf69dce87715c159877b5f536b4e8e13390
2021-11-01 22:27:43 +00:00
jdlrobson 17968826fa Move components files up one level into Skins directory
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
2021-10-22 18:45:38 +00:00
jdlrobson aba173efc6 Remove non-standard components folder
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
2021-10-06 20:13:48 +00:00
Piotr Miazga (polishdeveloper) 5a2527d71d Drop smart logout handling in favor of core ready.js
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
2021-02-11 17:26:47 +00:00
jdlrobson 99a78e6fae Avoid errors on malformed URIs when loading media viewer
Previously overlay manager required an Overlay or Deferred return
type, now it must be an Overlay.

On top of this, the media viewer must consider URIs that cannot
be decoded, so a try/catch is required.

Bug: T262703
Change-Id: Iac4bcfedba87c61021d7887155612c451f8e83b4
2020-12-04 19:34:51 +00:00
jdlrobson ed0222b0d0 Remove client side error counting
Bug: T266359
Change-Id: I5350c801e7ecb7b8b28e54410cc57fd3b548b2ef
2020-10-23 11:09:22 -07:00
Kosta Harlan a061d4062f Add route for excluding language suggestions
In MobileFrontend, we have code that provides the ability to load the
language info overlay without suggestions.

Currently /languages/all shows all languages without suggestions.
This patch will show suggestions on /languages/all but omit them
inside a new route: /languages/all/no-suggestions

Bug: T232410
Depends-On: Icce2631b2d5d80defc2287fb83f58f97a82a1b1e
Change-Id: Ide8e39b167f09842dd05eae7c26aeb741c29cd64
2020-08-26 19:12:56 +00:00
Kosta Harlan f915d69872 Add languages/all route for LanguageInfo overlay
Depends-On: Ic0f1613e8fd27788f67ed6235386491f0fe077c3
Bug: T232410
Change-Id: Ib558dc7c46cc56ff667957f9126bbe0471d25b8e
2020-07-27 12:39:50 +02:00
Ed Sanders a32999e641 build: Update eslint-config-wikimedia to 0.16.0
Change-Id: Icabf6e065ed5685207731262db72faf848a0a04d
2020-06-04 08:39:32 -07:00
Sohom Datta 312b52cfb5 Replacing instances of toast.show() with mw.notify()
Replacing toast.show() with mw.notify() as per change 594766

Bug: T212542
Change-Id: Ibb2bb28a8898979754a924305e67e23bc019f663
2020-05-13 16:59:07 +05:30
Jan Drewniak 5144e73313 Remove "last-modified-bar__text" as a JS selector
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
2020-04-30 16:17:23 +02:00
jdlrobson 2e32f41fd3 Drop skins.minerva.icons.image module now cache has cleared
Bug: T244444
Change-Id: I181d41f60481efa904d5e951cf08480bbae82015
2020-04-10 17:36:46 +00:00
jdlrobson 276ae636fe Use standardized icon classes and fix some missing icons
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
2020-04-02 01:37:33 +00:00
Volker E 98d3225fc8 Rename several icons to WikimediaUI naming
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
2020-03-31 11:48:57 -07:00
jdlrobson db29aa53bd Make MobileFrontend dependency a soft one
This extends the work in Ie29a1eb7746d56f7d8c99b74e5e3c213c30fdcf2

Bug: T171000
Change-Id: Ib125e1bdaace1893804892909c27a9f328445835
2020-01-17 14:02:23 -08:00
Renamed from resources/skins.minerva.scripts/init.js (Browse further)