Commit graph

73 commits

Author SHA1 Message Date
jenkins-bot 041eaadcb5 Merge "Mobile page issues - visual styling changes" 2018-06-19 22:13:31 +00:00
jdlrobson a231525112 Mobile page issues - visual styling changes
Changes:
* Introduce Jan's beautifully documented $wgMinervaABSamplingRate
Set to 1 to A/B test 50% of the population
* Split out ambox template styles into a separate file referenced
by hacks.less
* Update cleanuptemplates setup script to consider two buckets

Test pages:
* Shqiponja_Partizane
* World_War_II_in_Albania
* Liberation_of_Tirana
* French_Consulate
* Abd_ar-Rahman_IV
* M109_howitzer
* Aimoin
* Transport_in_Brazil
* Transport_in_Cape_Verde

Bug: T191303
Change-Id: I8d11e655ccb847b7999e64dda57b225ad8b1c23a
2018-06-19 14:11:19 -07:00
Legoktm b56e82c8a8 Revert "Allow type Language for $lang of doEditSectionLink"
This reverts commit 648491015c.

Parent patch is being reverted since it didn't follow the
deprecation policy.

Change-Id: Id0e80bf23593d6fc7c986df7b42ff836cc24d867
2018-06-19 01:35:19 +02:00
Fomafix 72a4f7cf4c Add missing return in doEditSectionLink
Change-Id: If2bfae229c2d12090276a5f8dea00a45746349a6
2018-06-18 21:33:03 +02:00
jenkins-bot 927b1bddd2 Merge "Force type Language for $lang of doEditSectionLink" 2018-06-18 01:14:35 +00:00
Stephen Niedzielski 3485269be1 Update: add internal and revise external link icons
Bug: T190549
Change-Id: Iad7fdc2f2a730fa8874487c0d83355f21a0bf7ea
2018-06-15 12:31:42 -05:00
Fomafix 152f48b846 Force type Language for $lang of doEditSectionLink
wfGetLangObj() is not necessary anymore.

This change increases the requirement to MediaWiki 1.32 or higher.

Depends-On: Id49201957e716ef8a2ea930b3616ca4fe6e35633
Change-Id: I18adeebe476b321546ceda43eb12b6cf7e8081b3
2018-06-14 23:36:39 +00:00
jenkins-bot 92a6e01791 Merge "Provide gender parameter" 2018-06-06 08:22:36 +00:00
Piotr Miazga 52e8e93020 Provide gender parameter
Bug: T194868
Change-Id: I20fb6aee13c6bf7bc66bf3cae9560548a336e04d
2018-06-05 16:40:11 +02:00
Fomafix 648491015c Allow type Language for $lang of doEditSectionLink
wfGetLangObj() allows type Language already.

Change-Id: Ibe295e7020e995eea52e319feaf59c635f8bb4dc
2018-05-30 14:40:25 +00:00
jdlrobson f7e8df65b2 Merge profile icon with user-avatar icon
Both are the same but different variants - so use the variants
ResourceLoader module to keep this modules consistent in color
and form.

Change-Id: Ib75e1ff741fa46ad9698e89c4433b6edbad4d376
2018-05-08 23:35:44 +00:00
David Barratt f51cf7db7b
Use a Drawer for Block Notices
When a user is blocked, the toast message provides insufficent information to
the user. To provide more information, as well as a better design, the block
message will be moved into a drawer.

Bug: T165535
Change-Id: Ib025db3a8a4d1fd7bd05b69f9b5326943288372f
Depends-On: I926918d0bd7f2176f188a2154dc5e99f6a8a7ad1
2018-05-08 13:20:00 -04:00
jdlrobson 6267ac8ca0 Override 'core' styles for Minerva
Minerva purposely does not load mediawiki.legacy.shared
This should still be the same when setupSkinUserCss is
deprecated.

Change-Id: Ib2b19ba165a9d646a770702cdf1724509156b93e
2018-05-04 23:41:56 +00:00
jdlrobson e2d72f4ba1 Dequeue render blocking styles
The change in If9c8f0974e3a4b08e4a66d37f7f5adf67d73054e
will introduce styles that are incompatible with Minerva due
to the blanking of the content array. The styles content
array should also be blanked.

Bug: T42812
Change-Id: I3388c3c4f91cdbab11e89cdc95973b688d3f1ce7
2018-04-26 13:04:04 -07:00
jenkins-bot 9007208281 Merge "Hygiene: Document that insertWatchlistMenuItem doesnt work for anons" 2018-04-20 20:32:47 +00:00
Kunal Mehta f5b9a5d64c Let special pages redirect to the login page themselves
SkinMinerva::getPersonalUrl() is supposed to link to the login page if the
user isn't logged in, building a URL that will redirect them back to the
proper special page. Except the two special pages that use this function
will already automatically redirect to the login page if you're not logged
in.

Manually handling the redirect requries additional complexity, and
duplication of things like message keys.

Change-Id: Id5bfca1049f84e52476b179b8fdda50d030d7c1c
2018-04-20 01:11:40 +00:00
jdlrobson c4b28af2c3 Hygiene: Document that insertWatchlistMenuItem doesnt work for anons
Follow up to Ic729992db4db459044a239ec34d95e56b013841d
Change-Id: I1de8f8f527fb5f84d7f080eb5d81298bae3b48b3
2018-04-19 17:40:19 -07:00
Kunal Mehta 892adf0ea7 getUser() will always return a User object
Change-Id: Ic729992db4db459044a239ec34d95e56b013841d
2018-04-20 00:37:06 +00:00
Kunal Mehta 3917d74778 Use ExtensionRegistry to detect whether Echo is installed
Change-Id: I7816983c132c45653666b294fec2ee64fac94944
2018-04-19 23:59:45 +00:00
Kunal Mehta 4da5567bd9 Simplify SkinUserPageHelper constructor
Instead of requiring a full IContextSource object and only using the
Title, only ask for the Title in the first place.

Change-Id: I33034193140ca53919f29f847a03caf26250ce54
2018-04-15 16:38:50 -07:00
Kunal Mehta 04e61303c2 Add GPL file header to PHP classes
Change-Id: I2333507372c67ffb8e83777ca6f554aed690de9c
2018-04-15 16:23:10 -07:00
jdlrobson 2e453edd23 Only load notification icon (bell) CSS for logged in users
* The notification-count style is only needed if you are logged
in. Given a small percentage of our users are logged in, we
load a lot of render blocking css unnecessarily.
* The bell icon is not needed for anonymous users so pull that
out from skins.minerva.icons.images which is loaded for all users
into a module only used by logged in users (skins.minerva.icons.loggedin)
* Simplify the user-button rule - it is overly specific - probably for
historic reasons.

Additional changes:
* Simplify isAuthenticated helper

Change-Id: Ia72e7e45d276e8aac1ff5471bf6158705c7b5f99
2018-04-12 09:27:01 -07:00
Jdlrobson 4335114fca Revert "Fix: check if user is blocked to show edit button"
The merged patch hid the edit icon completely for blocked users.
It should not do this but should show. I've updated the task
description to explain this behaviour better.

This reverts commit cb6bde03dd.

Bug: T190834
Change-Id: I28b2a6bfb1d0501668752faaf4cbd2ea8bf3398a
2018-04-05 22:23:58 +00:00
Stephen Niedzielski cb6bde03dd Fix: check if user is blocked to show edit button
Before showing an edit button, check that the user isn't blocked from
editing everywhere. Note: User.isBlockedFrom() internally checks whether
that includes user talk pages or not.

Bug: T190834
Change-Id: I9126dfef04333e15baa67e1d080b09f35548d58d
2018-04-05 22:02:40 +00:00
Stephen Niedzielski e8b4559f5b Fix: always show table of contents
Do not conditionally render the table of contents. Note: the underlying
condition, MFTOC, appears to still be used by MobileFormatter so it was
unchanged.

Bug: T189699
Change-Id: I7088ccad75c2a8504bf435418d7dd62238b2135d
2018-03-28 13:36:17 -05:00
Zoranzoki21 441f5ac89d Remove unused $useHeadElement property from skins
Bug: T190575
Change-Id: I1ff60f683ba7186343408579d72303fc693b5a87
2018-03-27 17:18:53 +02:00
jdlrobson 196fb20836 Restore Minerva specific userpage styles for all user pages
In T182162 these were removed incorrectly. They should only have
been partially removed.

Bug: T187222
Change-Id: Ia3fb34250714fe4ccb10c32a7027fda167e06a16
2018-02-13 16:14:54 -08:00
jdlrobson 3047f3e0fa Merge remote-tracking branch 'gerrit/master' into specialpages
Change-Id: I1bc48ac546865f515df65e9d7f0c75e7f5c6d684
2018-02-01 11:35:11 -08:00
Timo Tijhof 08985b2229 Remove use of QuickTemplate::setRef
Follows-up 2c01147c13be, 429f557cc7f68a46.

The array is already copied by value once returned from getLanguages().
Setting it by reference within the QuickTemplate instance doens't
have any effect, but does logically break the concept of pushing
data in a single direction through the skin.

Remove use of setRef in preparation for restricting skins only
consuming data as given, without the ability to change data
in other parts of the system.

Bug: T140664
Change-Id: I0978dd5c123fda57f45534a8d2e51b7e65e55223
2018-01-27 13:11:37 +00:00
jdlrobson c5d09c0288 Prefix icons in Minerva
Changes:
* MinervaUI will now prefix any icons with `minerva`
* Update definitions in skin.json, retaining selectors for cached
HTML for icons that are rendered via PHP.
* In I9021c53c2c04bdd7ce395eed33d89986acbfea6d watch and watched
and arrow are moved to MobileFrontend so are removed from the RL module
skins.minerva.icons.images.scripts as they are not
used directly in this repo. user and anonymous are no longer used
so also removed.
* Presentation of userpage now belongs to MobileFrontend. Icons
are styles were moved there in depends on. They are retained in
skin.json to support cached HTML as user pages are subject to
cache. They can be removed in a week.
* In code review we noticed the anonymous icon was badly named. We
rename to login. No caching implications.
* Main menu icons are now prefixed with minerva rather than mf to
reflect where they come from.

Depends-On: I9021c53c2c04bdd7ce395eed33d89986acbfea6d
Bug: T182162
Change-Id: I93264024f4915fc910c792b1905b89cdc6b8b546
2018-01-19 15:30:03 -08:00
jdlrobson fe3ac29fe7 Merge branch 'master' into 'specialpages'
Change-Id: I167f03477fd79e5ea0c7fa5cdf5df71bb8da31c2
2018-01-19 11:00:55 -08:00
petarpetkovic 413fcc12f6 Fix seen notifications appearing as unseen on mobile
Important note: Make sure to distinguish unseen from unread

One way to reproduce minerva and non-minerva notification inconsistencies:
- Have all your alerts and notices seen. This is displayed with grayed out
number on vector skin or no number at all, if you have (marked as) read.
- Generate new alert or notice (one is enough) in your preferred way.
- You can check minerva and non-minerva at this step. Both should be in sync.
But don't perform any additional action.
- Open the notification popup in some non-minerva skin (I have tried with
vector and monobook), marking it as seen.
- Check the notification icon in minerva. At this point, you should see
notification displayed as unseen.

The reason bug appeared in the first place is that alert/notice timestamps
were mixed up when seen time is obtained. We get seen time from
EchoSeenTime class, where we get smaller of the two timestamps,
using PHP method `min()`. See I27109ee6a248. Then, we get last unread
notification timestamp (which can be either alert or notice), and compare
that to seen time. That leads to the situation when you have only one of
alerts or notices with unread items, smaller timestamp is used for seen,
and most recent for unread, at which point we compare timestamps for
two separate things.

Previous behavior of getting seen timestamps (using max instead of min) would
probably solve the problem, but some other inconsistencies might arrise.
This should prevent any weird and unpredictable behavior to happen.

Bug: T183076
Change-Id: I20bbd6c590086b1c3eccf82983aad59eb3144a7a
2018-01-18 14:18:56 +01:00
jdlrobson 09a1f98ab3 Merge remote-tracking branch 'origin/master' into HEAD
Change-Id: Ia1a520d983be096e29cfe725f619be0423f9d110
2018-01-08 16:37:44 -08:00
petarpetkovic c8195e37ef Fix notifications always appearing as unseen
After Ie92b223a48 removed $flags parameter from EchoSeenTime::getTime(),
we got 0 as $format passed to the method, which caused mismatch in
timestamp string formats when comparing to $notifLastUnreadTime timestamp,
which caused notifications to appear always as unseen (although that's
unpredictable, because of wrong format used).

Bug: T183076
Change-Id: Ia4ff0bc4c3b7ed80b5a22a9ca0052f1909469180
2018-01-03 18:21:40 +01:00
jdlrobson 6598c1e7c3 Merge branch 'master' into HEAD
Change-Id: I220fbc57ee20d2a6717b39dba809401de2207ce0
2018-01-02 13:21:27 -08:00
David Sn 90f324a5b7 Use preg_replace instead of str_replace for replacing extension
Bug: T166684
Change-Id: I233be410486276f30b08034180eb54cb08e04076
2017-12-07 16:05:48 +00:00
jdlrobson c986db6c0e Always render taglines unconditionally and update styles
Adjust tagline margin per Nirzar:
https://phabricator.wikimedia.org/T180095#3801719

Note, this will  enable the tagline everywhere.

Change-Id: I3bce2a3472ab2e53261965c953572f35cc740eed
Bug: T180095
2017-12-05 00:27:11 +00:00
David Sn 8a19c0cb33 Use png as fallback for svg on non-supported browsers
This will use the srcset attrribute which was introduced with HTML5,
in order to load the svg image on supported browsers.

Should fix the bug after merging change 394820.

Bug: T166684
Change-Id: I2337b750c80e79c816dc817dfe230e063eed0345
2017-12-04 22:13:23 +00:00
jdlrobson eaa4dae5af Disable download button in all namespaces except main
The MinervaDownloadIcon config option is replaced with a
more specific wgMinervaDownloadNamespaces config option.
If the list is empty then the download button will not be
shown.

Since the download icon is enabled everywhere in production now
this is good as it means Minerva reflects the production value.

Bug: T181152
Change-Id: Id78c1de9e8e9013530106bc0d45d3cf0297897b5
2017-11-29 20:29:12 +00:00
jdlrobson ed5e9dd1d5 Hygiene: Refactor Minerva history link generation
* Create several sub functions to manage complexity of the history link
* Clean up MinervaTemplate to use data directly and remove isMainPage
template variable which is no longer being used.

Change-Id: I124aec9637f3635a335c58e559e578b2a56eb4c5
2017-11-27 14:27:11 -08:00
jdlrobson b72c10e06f Show last modified bar without relative time for old revisions
If FlaggedRevisions is being used then older revisions will be
shown as if they are the current revision of the page. This causes
problems as it makes it hard to give a true indication of when
something was last modified - do you show the last time someone
made an edit or the last time someone approved an edit?

The same issue applies on revisions and we attempted to fix this
earlier in T153125 but in doing so caused this problem.

Bug: T180116
Change-Id: I6d47adf272c99791d4af9f97afa02799d495887e
2017-11-22 10:29:51 -08:00
jdlrobson 8eb65b264d If timestamp is null load revision time
Passing null to wfTimestamp will result in the current time.
Protect against that happening

Bug: T180103
Change-Id: I6ef9577bf52609bf387b0146f1d8a4a53be58cd7
2017-11-16 23:23:25 +00:00
jdlrobson e422eb9a81 Do not try to add edit links to the HTML in contexts without a Title
Title may be null when accessed via this->getTitle()
If this is the case we should assume the skin is being used by someone
who is not a reader and in these circumstances, not try to render any
page actions.

Bug: T179833
Change-Id: Ia47fd9b059101bf22b5d31be7df3a332b35d6b24
2017-11-09 21:23:48 +00:00
Kunal Mehta 74b3faf580 Move class_alias out of skin initialization
Use the standard way of doing it by adding an autoloader entry, and putting
the class_alias() call into the same file as the class.

Change-Id: I93e19ebcf3dd7d9815623de5e24861949fd0269a
2017-11-08 00:20:00 +00:00
jdlrobson dfabc67d95 Hygiene: Remove dead call to addModuleStyles
This is adding an empty array and not necessary

Change-Id: I232dd9b0fe7343a6531582ad66a62d3babe275e3
2017-11-01 11:20:17 -07:00
jdlrobson d3318a9f85 Remove MobileFrontend's font changing code from Minerva
Fontchanger code now runs on all skins under the `mobile` target.
All the code will now live in MobileFrontend meaning developers
can operate inside one code base.

Depends-On: I857cfe2d9be9fe49c04c860bc234384c787239b2
Change-Id: I2759455cb6d7ddf13798e94452cb74baf502bafe
2017-10-30 19:11:16 +00:00
jdlrobson 12b49a70ad Notification icon should not show NaN for persian Wikipedia
Bug: T172755
Change-Id: I2884c8daed3fe0e0d05c746ec6319956b7426957
2017-10-26 20:27:12 +00:00
jdlrobson 45a1b3b423 Add feature flagged DownloadIcon
Shortcut for print. Disabled by default and controlled by
wgMinervaDownloadIcon

Note that with lazy images enabled, images will not appear
in the printed article. This can be easily addressed inside
the onClick function in a later patchset with a few modifications
to the Skin class.

Currently the flag when enabled will show on all browsers. There
are some open questions on the ticket about how we want to limit
the feature. This shouldn't block review or merging.

Bug: T177215
Change-Id: I49f1736870c743990b3fb9916247e07a597b2f59
2017-10-23 18:12:20 +00:00
jdlrobson b93b7eda7c Render add discussion button in PHP not JS
The talk page JavaScript progressively enhances an
existing button in the page.

Remove the frontend logic and rely entirely on whether
the button is in the page or not.

Additional change:
* The browser tests incorrectly suggest a user needs
5 edits to be able to use the talk feature. This is not
true. They just need to be logged in. Update that logic.

Bug: T167728
Change-Id: Iacedea30bdd0775b3d785db5b143abafd7a18b39
2017-10-16 22:35:11 +00:00
Umherirrender 8e8c9d0654 Improve some parameter docs
Change-Id: I239d4aa0023978b27bc04a7ff7d55892f3bb7feb
2017-10-05 19:17:38 +02:00