Commit graph

2926 commits

Author SHA1 Message Date
Roan Kattouw 7f079b7d4f Fix duplicate impression logging
We have a wrapper around logInteraction() called logNotificationImpressions()
that logs impressions uniquely (i.e. logs each notification impression only once),
but in addition to calling that (from NotificationsWidget), we were also manually
calling logInteraction() to log impressions from NotificationBadgeWidget
and NotificationGroupItemWidget. This resulted in two impression events
for every notification, each with different data, one of which is logged
only once and one of which can be logged multiple times.

Remove the manual logImpression() calls and route everything through
logNotificationImpressions(), which is called from only one place:
NotificationsWidget. Add support for logging foreign wikis to
logNotificationImpressions(), as it was previously missing.

This causes us to lose the notification type information in these
events, but that can also be derived after the fact by looking
up the event_id in the echo_event table.

Whether impression logging is even useful is another question,
but it certainly isn't useful if we log duplicate impression
events with different data.

Change-Id: I19b76a4ce796b21e9347dd9392af24918db82e18
2016-03-09 10:21:09 -08:00
Kunal Mehta 51dd4fd109 thank-you-edit: Only call User::getEditCount() once
And rename $editCount to $thresholdCount for clarity.

Change-Id: I115b2dfabf472c855c186d05fa4e31aa7c9c3d6c
2016-03-08 17:05:05 -08:00
jenkins-bot acdcb5c895 Merge "Revert "Defer onPersonalUrls() DB writes to post-send"" 2016-03-09 00:11:50 +00:00
Catrope e372f3ce6f Revert "Defer onPersonalUrls() DB writes to post-send"
Causes fatals in production for some reason.

This reverts commit 93387806c2.

Bug: T129299
Change-Id: Ie90aa493e2940fae9d6f380b95f87a4cc7e04622
2016-03-09 00:00:11 +00:00
Kunal Mehta 210f3a1d4a Clean up some code in EchoEmailBatch
* Address TODO to use a constant instead of hardcoding
* Only call User::getOption() once

Change-Id: I52d8c3698f8d915ec9d96de0976d242009b3df39
2016-03-08 15:37:34 -08:00
Translation updater bot e56b5d00ab Localisation updates from https://translatewiki.net.
Change-Id: Ie693000718f7b0c4d7e99002c1fcec72ba2473c7
2016-03-08 22:40:38 +01:00
Roan Kattouw e85c3832bb Add debug logging for when the thank-you-edit code detects a race condition
We seem to be discarding *all* thank-you-edit notifications as
race conditions now.

Bug: T128249
Change-Id: I1f284bd13e89fe2205c4c87a6c0f4a7dfe1c8bd1
2016-03-08 12:04:45 -08:00
jenkins-bot d1d8955825 Merge "Fix EchoAttributeManager::getNotificationSection() php doc" 2016-03-08 01:56:58 +00:00
Kunal Mehta b2961ccb0c EchoTargetPage: Don't call Title::newFromId() repeatedly
Title::newFromId() can return null, and if this were the case the
instance caching would never work, so it would continually make useless
database queries.

Initialize the $title member variable as false to begin with, and use
that to check whether we've already checked Title::newFromId().

Change-Id: Id07c2c963ffcd03e212bed0a666735bcb68b92e0
2016-03-08 01:43:08 +00:00
Kunal Mehta d02b28d99c Fix EchoAttributeManager::getNotificationSection() php doc
Change-Id: I5a82e4618907e7a58a61d10ecb93c76d9772de53
2016-03-08 01:42:50 +00:00
Aaron Schulz 93387806c2 Defer onPersonalUrls() DB writes to post-send
We calculate how many messages and alerts are being marked as read, and
subtract them from the count since the database and caches won't be
updated until the end of the request.

For performance, we also get the event_type while doing the
EchoTargetPage lookup query to avoid having to query it individually
later on.

Bug: T117531
Change-Id: I0d9302adf1b4b07a4ff26a04b00d4498aa3fe7ee
2016-03-08 01:41:52 +00:00
Translation updater bot 3343f5ac0a Localisation updates from https://translatewiki.net.
Change-Id: Ied09869807cc9b7dab33d615e8f51bfbfa761faa
2016-03-07 22:24:07 +01:00
Ricordisamoa 4107a4a495 build: Enable jscs jsDoc rule 'requireNewlineAfterDescription' and make pass
Change-Id: I264fafad95ddb4a4cc925815a62af83744f122e4
2016-03-07 14:29:15 +01:00
Ricordisamoa 9c83e14c59 build: Enable jscs rule 'requireVarDeclFirst' and make pass
Change-Id: Id1581858e59ea5f49804b6cf753b0c2860fb9855
2016-03-07 11:57:31 +00:00
Translation updater bot 4f04f1dd91 Localisation updates from https://translatewiki.net.
Change-Id: I2e0f59ceff873369ce4eda2dab4489e160a973ca
2016-03-06 22:12:49 +01:00
Translation updater bot 89cb1f636c Localisation updates from https://translatewiki.net.
Change-Id: I75bca369a7f2f5e8c5e45517487088628212d012
2016-03-05 22:57:10 +01:00
jenkins-bot 8556b8037e Merge "Remove resolved TODO about adding wiki field to Schema:EditInteraction" 2016-03-04 23:06:07 +00:00
jenkins-bot a8909f44dd Merge "Styling adjustments for notifications" 2016-03-04 22:55:41 +00:00
Translation updater bot 9709b26979 Localisation updates from https://translatewiki.net.
Change-Id: I01f2a9bf37c90b1ca922a70db0972780d272cf88
2016-03-04 22:50:56 +01:00
jenkins-bot bbd68492b9 Merge "Try and avoid race conditions with thank-you-edit notifications" 2016-03-04 07:28:58 +00:00
Kunal Mehta 8d99490108 Try and avoid race conditions with thank-you-edit notifications
Wait until after the main transaction has been committed before checking
whether they have the right number of edits.

Bug: T128249
Change-Id: I38cc0f96e97fda3692340cc8906144a002594ef2
2016-03-03 21:48:01 -08:00
jenkins-bot ff41a87105 Merge "Add a short abbreviation for timestamps in notifications" 2016-03-04 02:52:22 +00:00
jenkins-bot b06ec6b42a Merge "Mark all as read should not apply to cross-wiki bundles" 2016-03-04 01:02:16 +00:00
jenkins-bot 3fd75c41a4 Merge "Echo API layer" 2016-03-04 01:00:55 +00:00
Roan Kattouw e239d4c256 Use padding instead of margin to separate cross-wiki sections from each other
So that margin collapsing doesn't eat up the extra space we wanted to create.

Bug: T128069
Change-Id: Ib3b96c54c2ace52cf28047a5f9f012fcc56ccb9c
2016-03-03 16:19:45 -08:00
Moriel Schottlender 36866532c6 Mark all as read should not apply to cross-wiki bundles
Skip foreign bundles on 'mark all as read' operation, and mark as
read the items available in the popup.

Bug: T128621
Change-Id: I431b1ea94ab1c4942bd3de38753f113a4e2ae22f
2016-03-04 00:02:50 +00:00
jenkins-bot 81cc6d1674 Merge "Change "Expand N alerts/messages" to "View N alerts/messages"" 2016-03-04 00:00:56 +00:00
Moriel Schottlender 0834b91f56 Echo API layer
Split and refactor Echo network handling and create a proper API
layer for the UI to use consistently. Split Echo's API methods into
its own module so they can be loaded along with the initialization
script and manage the API requests.

Change-Id: I0526a14bb8cc0d9729a303e24ab6e43259cc86bb
2016-03-03 23:40:12 +00:00
Moriel Schottlender 541335d90f Styling adjustments for notifications
Bug: T125969
Bug: T128444
Change-Id: I3dba4fcddf5262450cce4ba384abfdc3518b7cb8
2016-03-03 23:11:19 +00:00
Catrope f808909c67 Revert "Compress PNGs with zopflipng"
Changed icons to different ones: Generic.png became a heart.

This reverts commit 3f36dfab56.

Change-Id: I5aa4711e254590ba824c86867f705b950a48e2de
2016-03-03 19:57:02 +00:00
jenkins-bot b919080d1e Merge "Allow mark as read for a cross-wiki bundle" 2016-03-03 19:45:15 +00:00
Moriel Schottlender 0fc63bde36 Add a short abbreviation for timestamps in notifications
Use 'm' instead of 'minutes', 's' instead of 'seconds', etc, for
shorter timestamp rendering in the notification list.

Bug: T125970
Change-Id: I9479c5406a4bf44ef560bef2c8f204a9f60cafc6
2016-03-03 11:37:05 -08:00
Roan Kattouw 1c21a60fc0 Change "Expand N alerts/messages" to "View N alerts/messages"
Bug: T121936
Change-Id: I1a550d1ed12287ee148689255374d7d5edd00765
2016-03-03 18:30:31 +00:00
Stephane Bisson ac556cf7c7 Notifications: truncate without adjust length
When $adjustLength is false, truncation will only happen
when the string is longer than the limit + the length of
the ellipsis to avoid the case where the ellipsis make
the string longer than the original.

Bug: T121822
Change-Id: I731a3c38b96ede6c6510f64771be0b9662dcba43
2016-03-03 09:08:10 -05:00
Moriel Schottlender ae04c0e4e6 Allow mark as read for a cross-wiki bundle
Bug: T128562
Change-Id: I14b4885569d9d78072ae76bc9cdefd41741a435b
2016-03-02 16:04:04 -08:00
jenkins-bot 2010c435e6 Merge "Support generating sample notifications by types" 2016-03-02 23:45:55 +00:00
Translation updater bot 6fc64392ea Localisation updates from https://translatewiki.net.
Change-Id: Ic0717b54e89b448e15bc34adb7ec790f4995482a
2016-03-02 23:36:15 +01:00
Stephane Bisson 9d6e6528ba Support generating sample notifications by types
Also added the force (-f) option to
bypass the confirmation. Very useful
when using the script in a loop.

Change-Id: I98c3e0408033903f8e2fb0afab773d4952a4e6d3
2016-03-02 15:04:56 -05:00
jenkins-bot 44902f0cb7 Merge "Add unreadfirst parameter that works in non-groupbysection mode" 2016-03-02 13:11:18 +00:00
jenkins-bot d596fe88e1 Merge "Move list of wiki names from header to body in cross-wiki notification item" 2016-03-02 08:56:39 +00:00
Roan Kattouw b6625f38af Add unreadfirst parameter that works in non-groupbysection mode
It's terrible that in groupbysection mode, you still have to pass
messageunreadfirst and alertunreadfirst separately, but at least
this way the unreadfirst feature is available at all in the
non-grouped mode.

Change-Id: Ifb0707be484bda8e33810c888bae1d008cac2d9f
2016-03-02 09:51:16 +01:00
Roan Kattouw e96bdb6da5 Remove resolved TODO about adding wiki field to Schema:EditInteraction
Change-Id: I80cc41b31b6d49182f7ea11e5cd07192f1710663
2016-03-01 23:32:47 -08:00
Roan Kattouw 20f091982c Don't list foreign notifications for both sections when not using groupbysection
API requests with notgroupbysection disabled but notsection set
to 'alert' would return foreign notification bundles for both
alerts and messages, separately.

The frontend always pasess notgroupbysection=1 in practice because
notmessageunreadfirst=1 doesn't work without it; but regardless of
that, the API module shouldn't return a foreign notification bundle
for messages when only alerts are requested.

Change-Id: I9fa6d1411a8c121591ce6dd75ee8052bcdcb478b
2016-03-01 16:45:37 -08:00
Translation updater bot 22fa76dabe Localisation updates from https://translatewiki.net.
Change-Id: I7c205fbb3e19d8cd070ae8d3ae47b125c728e053
2016-03-01 21:55:01 +01:00
Roan Kattouw c466a5ef5c Move list of wiki names from header to body in cross-wiki notification item
Using wiki names in the header is problematic because the messages
we were using weren't designed to be used in a sentence, only in headings.
This removes the wiki names from the sentence in the header, and
instead puts a comma-separated list (with "and") of wikis in the body.

The messages keep $3 and $4 for backwards compatibility, so translations
of the form "from Commons and 2 other wikis" will keep working.

Bug: T121936
Change-Id: Ideeba794e260b3c388fa29226b53197c050162ef
2016-03-01 10:10:29 -08:00
jenkins-bot e08d3e604c Merge "ActionMenuPopupWidget: Prevent ClippableElement from overwriting our width hack" 2016-03-01 03:18:34 +00:00
Roan Kattouw a7537e9465 ActionMenuPopupWidget: Prevent ClippableElement from overwriting our width hack
This whole class is a terrible hack, and we should instead implement
a proper facility for what we need in OOUI.

Bug: T128436
Change-Id: I8777a6e36d238dc13c9060b74b7a72c6933082f6
2016-02-29 18:47:43 -08:00
Roan Kattouw dc48dfa022 Follow-up 07c5850b: unbreak "mark as read" menu item
07c5850b changed the widget used for the "mark as read"
menu item from OO.ui.ButtonOptionWidget to mw.echo.ui.MenuItemWidget.
While this makes sense, it also broke its functionality, because
mw.echo.ui.MenuItemWidgets are unselectable so if you click them
the 'choose' event isn't emitted.

However, we also can't make these widgets selectable, because
that breaks the links inside these widgets (the containing MenuSelectWidget
intercepts mouse events and prevents default). So instead,
make mw.echo.ui.MenuItemWidgets only be unselectable if they are
links (have config.url set), so that both use cases work.

Bug: T128432
Change-Id: I8374e3ae61a005ec7d25c2eb95b1391cbb191d60
2016-02-29 18:34:02 -08:00
jenkins-bot 48a08b7343 Merge "build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass" 2016-02-29 22:59:50 +00:00
jenkins-bot b301ae9a0c Merge "Include cross-wiki notifications in unread count" 2016-02-29 22:39:42 +00:00