Commit graph

1689 commits

Author SHA1 Message Date
jdlrobson 02c43249cd partly correct the transitions between talk overlays
Tapping browser back button now does not show the underlying article
However clicking the back icon does (which can be fixed by a hack
see I80328b388b2e2da105bd670a3679b4ed3061b33a )

This works because displaying the talk overlay triggers a load
to mobile.talk.overlays (for talk topic board) so the other overlays
are guaranteed to be ready by the time you want to transition to them.

Bug: T221978
Change-Id: Ic3b448169d52880b38408da47af9e4576c585e16
2019-07-31 23:40:34 +00:00
Piotr Miazga 9ece509c99 Hygiene: SkinOptions should validate options
Changes:
 - when trying to set unknown option, throw exception
 - added unit tests

Bug: T221012
Change-Id: I0d1a43fb5a7179b8e9cd578e3e33bab12ddfd61c
2019-07-31 22:24:29 +00:00
jenkins-bot 3dd8ce4822 Merge "[UI] [menu] remove menu height resizing" 2019-07-31 20:42:53 +00:00
Translation updater bot 89d60596db Localisation updates from https://translatewiki.net.
Change-Id: I71560a9d5a294bc87c5a5a733b07555c722db875
2019-07-31 22:12:04 +02:00
Stephen Niedzielski 93f930ce3e [UI] [menu] remove menu height resizing
Remove the page action overflow and user menu height sizing. Previously,
a maximum menu height was set so that the menu itself would scroll. A
minimum height was also used so that the menu couldn't be shrunk down to
a silly size. Both the minimum height LESS and maximum height JS are now
removed.

Bug: T225959
Change-Id: I201374ab8b249272ee5dbb1401b844ffe034ea66
2019-07-31 20:05:54 +00:00
jenkins-bot e030193ced Merge "Limit Recent Changes disable-table mode to Minerva skin" 2019-07-31 19:01:41 +00:00
jdlrobson c4c0254963 Limit Recent Changes disable-table mode to Minerva skin
Bug: T228280
Change-Id: I6e2298d3721ec0d09f8867af89f22d26210ed6bb
2019-07-31 11:39:40 -07:00
jenkins-bot eb157118f0 Merge "[UI] [main menu] make menu scrollable" 2019-07-31 18:30:26 +00:00
jenkins-bot bff670e545 Merge "Show warning when user tries to use enhanced RecentChanges view" 2019-07-31 17:34:52 +00:00
Stephen Niedzielski 2c070409f4 [UI] [main menu] make menu scrollable
Adds a scrollbar as needed to the main menu.

Bug: T218206
Change-Id: I71f75128939eba56dea10a8092b67820736934ce
2019-07-31 11:15:27 -06:00
Piotr Miazga 7b5e210ed8 Show warning when user tries to use enhanced RecentChanges view
Bug: T228516
Change-Id: I16e3d69b410f20a3f70f4bb213a279664613f725
2019-07-31 15:32:58 +00:00
Roan Kattouw ec17da76c1 Improve tab scrolling logic
* If the leftmost tab is selected, scroll all the way to the left
* If the rightmost tab is selected, scroll all the way to the right
* If a tab in the middle is selected, scroll to center it
* If the selected tab is wider than the tab container, make sure its
  start (left edge in LTR, right edge in RTL) is always made visible.

As Bartosz reminded me, .scrollLeft in RTL is a cross-browser nightmare
(see https://github.com/othree/jquery.rtl-scroll-type), so add a bunch
of code working around this. Some of this logic is in OOUI already, but
what's there is not enough for what we need here, and we also don't want
to load OOUI for this.

Bug: T223142
Change-Id: Ica298954b42f9daa4819043ec24bc0266290a927
2019-07-30 18:35:14 -07:00
jenkins-bot e919258047 Merge "Restore MobileWebMainMenuClickTracking logging (old way)" 2019-07-30 23:26:15 +00:00
jdlrobson dfb3e0b8c7 Restore MobileWebMainMenuClickTracking logging (old way)
menu/schema is never imported so it never executed.
Move it into initLogging which seems to the be the logic place
for this code to execute

Change-Id: Iec85548cf96fcc7ea96977d0aa89f601dbd8599f
2019-07-30 15:41:35 -07:00
jenkins-bot d37eed1a48 Merge "Fix "Compare selected revisions" button padding" 2019-07-30 21:24:43 +00:00
jenkins-bot 531fed3ea1 Merge "Set correct action for watchstar link" 2019-07-30 21:21:34 +00:00
edderso 08a49e450c Fix "Compare selected revisions" button padding
Applies the .mw-ui-button() mixin to the button.

Bug: T225768
Change-Id: If12db58c640ac6deb970e81eed55ef8290443a71
2019-07-30 21:59:17 +01:00
jenkins-bot 31e3931034 Merge "💩 Avoid usage of deprecated isFeatureAvailableInContext() method" 2019-07-30 20:51:25 +00:00
jenkins-bot fd38627869 Merge "Subtitle appear below page actions" 2019-07-30 20:26:32 +00:00
Piotr Miazga 4f01ff9e23 Set correct action for watchstar link
Does exactly what it says on the tin

Bug: T229228
Change-Id: I87a4b8c0aa529b2494e67f1a97e95819fc2cf87e
2019-07-30 22:10:34 +02:00
jenkins-bot 13475413e7 Merge "Dev: Simplify red link drawer" 2019-07-30 20:06:37 +00:00
jenkins-bot 2ca195c98f Merge "[UI] [AMC] add recent changes to the AMC menu" 2019-07-30 19:58:40 +00:00
jenkins-bot 0ef40e5bbb Merge "[AMC] [dev] enable page actions overflow menu in AMC by default" 2019-07-30 19:57:28 +00:00
jenkins-bot a2a4dc462f Merge "Adding skin styles for the changeslist module." 2019-07-30 19:39:19 +00:00
Stephen Niedzielski 805cc92e73 [UI] [AMC] add recent changes to the AMC menu
This mostly reverts commit 692309090d and
updates the icon.

Bug: T224216
Change-Id: I7200aaef5a15479afb4bc99f5195e900351a055a
2019-07-30 11:27:34 -06:00
Jan Drewniak 5e7a35946c Adding skin styles for the changeslist module.
The changeslist module is the list of results on special
pages such as recent changes, watchlist, and parts of action history.

Adds a skin style to special.changeslist module.

Bug: T228419
Change-Id: I324b1f136f5314cb6acdba3155b07136bbde363a
2019-07-30 19:00:09 +02:00
jdlrobson 87a0795ed8 Subtitle appear below page actions
Bug: T217197
Change-Id: I6582db82ac750783dffa5612c9a0b3ccc86749a1
2019-07-30 09:59:58 -07:00
Stephen Niedzielski ab6cbd9fef [AMC] [dev] enable page actions overflow menu in AMC by default
The AMC overflow menu is now being deployed everywhere AMC is. Default
it to true in AMC mode like all the other AMC features.

Change-Id: I671cc5d2bfc046026c83d077e78cb57b87c55246
2019-07-30 10:22:39 -06:00
jdlrobson 0443f9936f Dev: Simplify red link drawer
* Remove event and add class .hide so that it uses event defined in
Drawer class
* Use actionAnchor - it achieves the same purpose

Change-Id: I2570de1e692a22c9383a850460eabb75b3d8eaf5
2019-07-30 08:29:29 -07:00
Derick Alangi ddf6dece1a 💩 Avoid usage of deprecated isFeatureAvailableInContext() method
Change-Id: Ic7459fc7630ee6add20415ce632d39c118913645
2019-07-30 12:45:04 +00:00
Translation updater bot 0c5c84f0ad Localisation updates from https://translatewiki.net.
Change-Id: Ife8e0556b697c6524ba43626f27f4007f0d32ab5
2019-07-30 08:27:41 +02:00
jdlrobson afecb58a88 Restore desktop MMV
Changes in the MultimediaViewer extension mean Minerva's onClick event
is preventing the default of the click handler in MultimediaViewer.

Explicitly do not setup our multimedia viewer version when the desktop
MMV is present!

Bug: T227034
Change-Id: I94e22d045346d53bb2c50035281398799fb6c7ac
2019-07-29 23:36:16 +00:00
Stephen Niedzielski 8dbd511e88 [fix] [AMC] load main menu icons on desktop Minerva
The main menu icons are needed in the user menu by the no-JavaScript
desktop Minerva experience which does not have an active
SkinOptions::OPTION_OVERFLOW_SUBMENU option. This was introduced in
Ic6a2490fbd3903c5d34ff8267d745fdd93c73fd2.

Bug: T214540
Change-Id: I780e5639057f236d6ff91675f82cf4682520021a
2019-07-29 12:23:28 -06:00
Translation updater bot 725383771e Localisation updates from https://translatewiki.net.
Change-Id: Ie6d4d8ae1b4b58410d584c1104704b6f3582e160
2019-07-29 08:32:20 +02:00
Translation updater bot 6bf480c5a3 Localisation updates from https://translatewiki.net.
Change-Id: Iad66e696b050aa6f19f832f104529d9aeebb019b
2019-07-27 08:49:21 +02:00
jenkins-bot e9a879e635 Merge "Drop lazy loading references feature usage" 2019-07-26 19:58:47 +00:00
jdlrobson d1cd558821 Drop lazy loading references feature usage
This temporarily and quietly breaks references display in beta
on the assumption
that I2dcf9b0cbfe2f46eb6763e0add4ed892d1fbecd9 will be merged swiftly
afterwards.

Bug: T123328
Change-Id: I2dcf9b0cbfe2f46eb6763e0add4ed892d1fbecd9
2019-07-26 19:04:46 +00:00
jdlrobson 406f211be1 Enable AMC styles if only one of the AMC properties is enabled
Bug: T229024
Change-Id: I46f4d6ef4529cea2953e3edde3a3e5eb579f24ec
2019-07-25 22:11:52 +00:00
Translation updater bot 61cf3b3328 Localisation updates from https://translatewiki.net.
Change-Id: Idb5ccc0369ca2c688bf7216f70929aa7091f22e0
2019-07-25 22:42:19 +02:00
jdlrobson 0311e8ed1c Disable diff test due to issue with RunJobs
Bug: T229031
Change-Id: I9bf37b796ba9ddafdc3be559e74d2b511c3e78b1
2019-07-25 18:38:05 +00:00
jdlrobson f0503a52d0 Refresh the user, bell and search icon
* New module skins.minerva.icons.wikimedia provides icons
from Wikimedia UI in Minerva
* search selector in skins.minerva.content.styles.images is
retained for cached HTML
* skins.minerva.icons.loggedin now a
ResourceLoaderOOUIIconPackModule and bell removed from repo.
* userAvatar replaced with userAvatarOutline

Bug: T224070
Change-Id: Ibed609371060acc4b69e5cd4cd4f20edc871b3ba
2019-07-25 16:35:01 +00:00
Piotr Miazga ad04f31441 Follow-up: User menu improvements
Changes:
 - We should limit the interfaces we pass around,
  AdvancedUserMenuBuilder doesn't need whole IContextSource as it
  uses only msg() method. It's better to define that this methods
  needs only MessageLocalizer
 - move UserMenuDirector into ServiceWiring to be consistent with
 other Directors/Builders
 - pass PersonalTools as a dependency to UserMenuDirector, which
 will pass to each Builder. The personalTools is set of links
 that can/should be used when rendering user menu (which in the
 fact has almost same subset of tools as the personal toolbox)

Bug: T214540
Change-Id: I7f744651b0665452a5a9d1ce661f20547e80812d
2019-07-25 08:41:22 -06:00
Piotr Miazga e117ee433a Follow-up: clean up old Advanced Menu builder and add hook support
Old MainMenuAdvancedBulder doesn't require the personal section
any more as that section is handled by new UserMenu.

Additionally we should add hook support in the new UserMenu so
different extensions can add their own menu entries.

Bug: T214540
Change-Id: Ibbfbee9d13d58c92d90a22d2b6dcf124b1313c23
2019-07-25 13:50:01 +02:00
Translation updater bot a2521d7d6a Localisation updates from https://translatewiki.net.
Change-Id: I270b3bd9ae40e31f6f467ba537624ed785b7d50b
2019-07-24 22:05:48 +02:00
jenkins-bot 84b950da58 Merge "[UI] [new] add user menu" 2019-07-24 18:41:46 +00:00
Stephen Niedzielski 0a4f5b6126 [UI] [new] add user menu
Add new user menu. The changes required include:

- Break up AuthMenuEntry into reusable components. They're now simple,
  independent, static functions in AuthUtil that are easy to reason
  about and compose.

  There's lots of verbose code because of the builder and director
  patterns. That is, most of the code is for building the thing we
  actually want to build instead of just building it. It's easy to write
  but no fun to read--even simple configurations are extremely verbose
  expressions that must be threaded through the system.

  These builders are also single purpose and unlikely to be reusable
  unlike a URI builder, for example. As objects, they're not especially
  composable either.

- Similarly, break up Menu/DefaultBuilder into BuilderUtil and ban
  inheritance. Inheritance has not worked well on the frontend of
  MobileFrontend. I don't think it's going to work well here. E.g., I
  could have made changes to the base class' getPersonalTools() method
  such that the client passes a parameter for the advanced config or
  maybe I just override it in the subclass. In either case, I think it
  makes the whole hierarchy nuanced and harder to reason about for
  something that should be simple.

- Add ProfileMenuEntry and LogOutMenuEntry for the user menu.

- Rename insertLogInOutMenuItem() to insertAuthMenuItem() which matches
  the entry name, AuthMenuEntry.

- Extension:SandboxLink is needed to display the sandbox link in the
  user menu.

- Performance note: the toolbar is now processed in MinervaTemplate,
  which corresponds to removing the buildPersonalUrls() override.

- To mimic the design of main menu, the following steps would be
  necessary:

  1. Create a user/Default and user/Advanced user menu builder and also
     a user/IBuilder interface.
  2. Create a user/Director.
  3. Create a service entry for Minerva.Menu.UserDirector in
     ServiceWiring. The Director is actually powerless and doesn't get
     to make any decisions--the appropriate builder is passed in from
     ServiceWiring which checks the mode.
  4. Access the service in SkinMinerva to set a userMenuHTML data member
     on the Minerva QuickTemplate.
  5. In MinervaTemplate, access the userMenuHTML QuickTemplate member
     and do the usual song and dance of inflating a Mustache template.

  This patch does everything except add a service, which was agreed to
  be unnecessary, so that logic is now in SkinMinerva.

- Wrap the existing echo user notifications button and new user menu
  button in a nav element. This seems like a semantic improvement.

- The existing styling and logic for the search bar and search overlay
  are pretty messy and delicate. Changes made to that LESS endeavored to
  be surgical. There's lots of room for improvement in the toolbar but
  it's out of scope.

- Rename logout icon to logOut.

Bug: T214540
Change-Id: Ib517864fcf4e4d611e05525a6358ee6662fe4e05
2019-07-24 18:24:07 +00:00
jdlrobson 0c5ca96031 Drop mobile.init dependency
Depends-On: If0de2d74139131be592d8edc2dbf063e9b98860c
Bug: T216537
Change-Id: I4b8011f5b73000a01d9cea032a6287b24b10f6ec
2019-07-24 15:28:49 +00:00
Stephen Niedzielski 933dc0e370 [dev] Replace menu entry inheritance with functions
Break up Menu/DefaultBuilder into functions that are reusable without
inheritance. The functions do not need much state to produce their
outputs and a weighty inheritance hierarchy makes the code difficult to
reason about. The functions are used in a following patch for the user
menu. They're now simple, independent, static functions in BuilderUtil
that are easy to reason about and compose.

Also, ban inheritance via `final` in a few places nearby. Inheritance
has not worked well in MobileFrontend and enabling it should be a
special deliberate case, not a default. E.g., in the user menu, the
changes could have been to the base class' getPersonalTools() method
such that the client passes a parameter for the advanced config or maybe
just override it in the subclass. In either case, it makes the whole
hierarchy nuanced and harder to reason about for something that should
be dead simple.

Bug: T214540
Change-Id: I6e9a2b36a1bff387eb3b33ea65b0a6806962810a
2019-07-23 18:07:02 -06:00
Stephen Niedzielski f068dc7af5 [dev] split AuthMenuEntry
- Separate AuthMenuEntry into reusable parts.

- Add some missed finals in nearby classes.

Bug: T214540
Change-Id: Icf285bf8d2b791dd1aa4ee37ae90d27afe42bd91
2019-07-23 18:07:00 -06:00
Stephen Niedzielski ff57ba7cd9 [dev] make interface for overriding menu profile URL
Make an interface for changing the URL of the menu profile item. This
functionality is needed by Growth and a subsequent patch will provide a
second profile implementation that should implement this interface.

Bug: T214540
Change-Id: Ie3647ac52a83b4cc34f3582a41c5d5524343965c
2019-07-23 12:23:45 -06:00