Commit graph

3060 commits

Author SHA1 Message Date
jenkins-bot 4331c30993 Merge "Add mark-as-read button to notifications in Special:Notifications" 2016-05-11 18:42:46 +00:00
jenkins-bot 89791927c9 Merge "Use new OutputPage parameter in OutputPageCheckLastModified hook" 2016-05-11 18:36:22 +00:00
jenkins-bot 69967ae13a Merge "Don't cache pages with outdated global notification counts" 2016-05-11 18:08:53 +00:00
Roan Kattouw b5bec3ad24 Use new OutputPage parameter in OutputPageCheckLastModified hook
Depends-On: I044a5920b703a2d61a74c2d83d184b77caebb8f3
Change-Id: I6c4290baaf1f2d9e5ec098bc4ea2b23762b4f70f
2016-05-11 17:58:44 +00:00
Roan Kattouw d2d420a3c4 Don't cache pages with outdated global notification counts
When updating notification counts, we already called User::invalidateCache(),
which bumps the local user's touched timestamp, which is taken into
account by OutputPage when computing the last-modified timestamp of the response.

However, this only works for one wiki, while the changed global count
needs to be displayed on every wiki. To accomplish this, track the
timestamp of the last update in NotifUser, and hook it into
OutputPageCheckLastModified.

Change-Id: I22c88a017f18a28179906049ee423c2d7e81c939
2016-05-11 10:53:13 -07:00
jenkins-bot 45a5c43e78 Merge "Reset the TitleParser service without messing up the database" 2016-05-11 17:47:01 +00:00
Moriel Schottlender 15a44768f4 Add mark-as-read button to notifications in Special:Notifications
Bug: T115528
Change-Id: I54dba5f86d28a069659d66dede5b7ab9981213aa
2016-05-11 10:41:32 -07:00
Kunal Mehta 1a189964bc Reset the TitleParser service without messing up the database
Calling MediaWikiTestCase::setService() appears to mess up the database,
so just reset it directly with MediaWikiServices, and tear it down to
avoid leaking any state.

Change-Id: Ibfd0a7f98f50506cd8402f966682f320bf715c8a
2016-05-11 10:13:01 -07:00
jenkins-bot 403270f55f Merge "Reset TitleParser service after modifying $wgContLang" 2016-05-11 16:35:29 +00:00
Kunal Mehta 1baa72cf08 Reset TitleParser service after modifying $wgContLang
Needed by I81d48616afd1ab2bde1a5f1d12f4aefb1c866d43

Change-Id: Ic64b0c45b7e6b8420874385f952a0dc4a93e0149
2016-05-11 09:04:33 -07:00
Translation updater bot 6e5c2a2826 Localisation updates from https://translatewiki.net.
Change-Id: Id5b46e4562ae21920c5f0f639555c7d47db8054a
2016-05-10 22:26:44 +02:00
jenkins-bot ad68c688b0 Merge "Avoid invalid API response when server-side cross-wiki requests fail" 2016-05-10 18:19:10 +00:00
jenkins-bot 14d4c67ee7 Merge "Don't apply margin to dotdotdot menu items" 2016-05-10 14:23:49 +00:00
Roan Kattouw 351297caf1 Don't apply margin to dotdotdot menu items
Otherwise the background color on hover doesn't cover the entire item.

Bug: T130677
Change-Id: I7c0a4cd7a77e3ae333e1ea0161bfc909e246c6e6
2016-05-09 15:00:18 -07:00
Translation updater bot 7b4b3463ed Localisation updates from https://translatewiki.net.
Change-Id: I337786ea94e683d333022f0a0748bd982e1dd62e
2016-05-09 22:12:41 +02:00
Roan Kattouw cd4194bd40 Avoid invalid API response when server-side cross-wiki requests fail
If all server-side cross-wiki requests fail, we'd return an empty API response.
This is invalid, the frontend expects things like list:[] to still be there.

Change-Id: I72fc5a017647ca28abbc061992fa4868ca5737f4
2016-05-09 11:08:00 -07:00
Translation updater bot f034a35e33 Localisation updates from https://translatewiki.net.
Change-Id: I4cc56a3708ab7d845ee76aea1ebdaade01ccde41
2016-05-08 22:42:31 +02:00
Translation updater bot 797b8b2eb3 Localisation updates from https://translatewiki.net.
Change-Id: I9cc42250a4493406d3a293ee2335848c2f69059c
2016-05-07 10:53:02 +02:00
Stephane Bisson 6cca5b6a01 Fetch foreign notifications before marking them as read
Bug: T134579
Change-Id: I4b88bbf5e23d9fbc066e17e1af77a3874a824b04
2016-05-06 11:47:58 -04:00
Roan Kattouw ac85f28f3e Use global user ID in global cache keys
We were using the local user ID instead, which is not the
same on every wiki, which caused strange cache staleness
and pollution behavior.

Run sets through a wrapper function (gets were already wrapped)
so we can update the instance cache and deal with uncomputable
cache keys in one place. A global cache key may be uncomputable
if we fail to obtain the user's global user ID (users aren't
supposed to be unattached, but some are).

Also bump the cache version to get rid of polluted cache entries.
Bumping this version number was probably a good idea anyway,
with all the recent changes.

Bug: T134533
Change-Id: I1c4f0c2f2eded480c80f8ec7a49a04feb7c5ecfb
2016-05-05 17:21:32 -07:00
Roan Kattouw e57dbfc86b Follow-up 73ec3a331: fix fatal when no cross-wiki results are found
If we don't initialize $results, getForeignNotifications() will return
null, and this will cause a fatal when trying to += it into an array.

Change-Id: Ibb868cbf0b52ff2de41c5be82c9605801e51ffae
2016-05-05 12:58:28 -07:00
Moriel Schottlender 7055f83fe0 Use server-side cross-wiki requests in the frontend
Fetch cross-wiki notifications by asking the local API, but still
maintain the ability to send remote requests to the foreign wikis
for mark-as-read operations.

Bug: T130636
Change-Id: I48524cb9dff43257a401d7483e939edfb042b928
2016-05-04 21:21:08 +00:00
Translation updater bot 9462f0c90a Localisation updates from https://translatewiki.net.
Change-Id: Iad7b22cc1c9f1e720866c3d0cdf2b85193cd6d4c
2016-05-04 22:23:05 +02:00
Kunal Mehta b6f742bc46 Add plain text email formatter
Formatters based on presentation models for
individual event emails and digest (daily, weekly)
plain text emails.

Bug: T121067
Change-Id: I4eceaf521315adab7429a8a73ffca70ebcddab86
2016-05-04 13:35:37 -04:00
jenkins-bot 19b051164b Merge "Use MultiHttpClient for server-side cross-wiki requests" 2016-05-04 17:15:29 +00:00
jenkins-bot f4897e11b2 Merge "Server-side crosswiki requests" 2016-05-04 17:13:23 +00:00
jenkins-bot 2939093854 Merge "Clarify beta feature description" 2016-05-04 12:00:11 +00:00
jenkins-bot f08b108e2e Merge "Replace mark-as-read-on-click with ?markasread= URL parameter" 2016-05-04 01:09:27 +00:00
Roan Kattouw 73ec3a331e Use MultiHttpClient for server-side cross-wiki requests
Change-Id: I6d647f250941a671b7b63890ef115380a22d38cc
2016-05-03 17:46:59 -07:00
Matthias Mullie ae3e8a6b8c Server-side crosswiki requests
Passing a param 'wiki' with a list of wiki names will now
result in getting notifications from these wikis too.
It'll execute multi-curl calls to the given wikis to fetch
their results.

Bug: T130636
Change-Id: I89df54366501acfe3e5cf6d2f313ee32694ba387
2016-05-03 17:45:45 -07:00
Translation updater bot 40d1986e89 Localisation updates from https://translatewiki.net.
Change-Id: I1576eee5ad0f89c2cba1e68c1ee81c3a028aa912
2016-05-03 22:24:40 +02:00
jenkins-bot a966e1825f Merge "NotifUser: Reduce queries in resetNotificationCount() by hackily computing some values from others" 2016-05-03 13:43:42 +00:00
jenkins-bot f101accfe5 Merge "NotifUser: Refactor getNotificationCount() and friends, add caching for global counts" 2016-05-03 13:39:04 +00:00
Roan Kattouw 7942a2de79 Replace mark-as-read-on-click with ?markasread= URL parameter
Notifications were being marked as read in response to a click event
in JavaScript, but that causes a jarring effect in the UI, and it's
not reliable (the browser could abort the AJAX request).

Instead, add ?markasread=XYZ to the end of every primary link URL,
where XYZ is the event ID.

Bug: T133975
Depends-On: Icb99d5479836fea25a47451b5a758dd71f642f71
Change-Id: I8047d121584b43e6172463a50ad0e0de5f7fa73c
2016-05-03 00:20:03 -07:00
Roan Kattouw 1b7c2c781a NotifUser: Reduce queries in resetNotificationCount() by hackily computing some values from others
Change-Id: Id349ac91c7ed8f308fce327bbf5f5e5f088b7935
2016-05-02 23:17:18 +00:00
Roan Kattouw 0807c3c5ad NotifUser: Refactor getNotificationCount() and friends, add caching for global counts
Previously, getNotificationCount() only looked at local notifications,
and foreign notifications were added in separately by getMessageCount()
and getAlertCount(). This didn't make any sense and resulted in
counter-intuitive things like I4d49b543.

Instead, add a $global flag to getNotificationCount(). If $global=false,
the local count is returned as before, but if $global=true, the
global count (=local+foreign) is returned. If $global is omitted,
the user's cross-wiki notification preference determines which is returned.

Update getLastUnreadNotificationCount() in the same way, since it had
the same issues.

Also add caching for global counts and timestamps, using a global
memc key.

Bug: T133623
Change-Id: If78bfc710acd91a075771b565cc99f4c302a104d
2016-05-02 16:16:57 -07:00
Roan Kattouw d6aba7613e Clarify beta feature description
Bug: T134014
Change-Id: I933169e2d7a6e1cc5a4e7134748702f8efb21b85
2016-05-02 15:16:53 -07:00
Roan Kattouw 73b0a083d4 FooterNoticeWidget: Top-align the close icon
Bug: T117669
Change-Id: I70d8df95e719824c8f135d01d6d9bf63a20daf02
2016-05-02 14:36:01 -07:00
jenkins-bot 3f4e024f3a Merge "Move section methods into a trait" 2016-05-02 12:29:39 +00:00
Translation updater bot d0007081d6 Localisation updates from https://translatewiki.net.
Change-Id: I01d80d43486516e8ee44667491ee1e531eb93333
2016-05-01 23:16:51 +02:00
Translation updater bot 396dc318a2 Localisation updates from https://translatewiki.net.
Change-Id: I08da917f6231ce9867370e0d699494223ad2bc56
2016-04-29 22:34:28 +02:00
Roan Kattouw 6a626e2685 Enable emailuser notifications by default
Bug: T133927
Change-Id: I3cbbc4b5980e61fba9d71d12684db0f1be2db6af
2016-04-28 17:01:24 -07:00
Matthew Flaschen bd317224ac Have getTimestamp actually return max for all sections.
Before, it was just returning the timestamp of the messages section.

Tested by creating a message on one foreign wiki, then an alert on
another and using:

http://mobile.wiki.local.wmftest.net:8080/w/api.php?action=query&format=jsonfm&meta=notifications&notsections=message|alert&notformat=model&notlimit=25&notunreadfirst=1&notprop=list|count&uselang=en&notcrosswikisummary=1&_=1461881446668

Change-Id: I870229b09a8add08eb3542e3ab70db58352d00b8
2016-04-28 23:26:13 +00:00
Catrope 3a018f9e10 Revert "Localisation updates from https://translatewiki.net."
Removed qqq which broke banana, again.

This reverts commit 8037ff307b.

Change-Id: I9088e5de5900f833b28c203d81b935fe0d827be7
2016-04-28 22:52:04 +00:00
Translation updater bot 8037ff307b Localisation updates from https://translatewiki.net.
Change-Id: I9ff1f66950aedc768a08fb62dcdda63414b85e99
2016-04-28 23:27:52 +02:00
Roan Kattouw 33124f35a8 Move section methods into a trait
Change-Id: Ief2005918b92945ff93aea85d17e595c7c38adf2
2016-04-28 20:52:09 +00:00
Matthew Flaschen 6d6845d9e4 Display special: Add which section (curr. Alert v. Msg.) each type's in
Replace getAlertEvents and getMessageEvents with
getEventsForSection.

Also, add IDs for linking to sections

Bug: T123018
Change-Id: Ic480320a52a401609d853fc8c75c781b89bb8722
2016-04-28 20:33:52 +00:00
Roan Kattouw e864b1fc47 ForeignNotifications: Fix fatal when one section has no timestamp
Bug: T133921
Change-Id: Iab82fa9439e26832731f4f56b5be18985203f49c
2016-04-28 10:39:05 -07:00
Roan Kattouw fbf702aa7e Follow-up 1608a5e6fc: add hasOwnProperty check
To prevent crashes when wikis extend Array.prototype.

Bug: T133817
Change-Id: I40063d7997a1dfb72053eb09e48d4480dbf371a8
2016-04-28 00:34:11 +00:00
Catrope f37585b947 Revert "Localisation updates from https://translatewiki.net."
Undid changes to qqq.json, which broke banana-checker.

This reverts commit 7b4dd7d046.

Change-Id: I5ed1c8913e8e8538023c1dfd91bc2287a271c995
2016-04-28 00:09:30 +00:00