Commit graph

2250 commits

Author SHA1 Message Date
Moriel Schottlender e650df6644 Separate 'seen time' for alerts and messages
Bug: T111285
Change-Id: I277f94ae705d3323ac8612111d7fd704b36793cb
2015-09-03 13:14:15 -07:00
jenkins-bot 59a8f9096b Merge "Require a Language object in DiscussionParser::getTextSnippet()" 2015-09-03 18:56:27 +00:00
Translation updater bot e755980d24 Localisation updates from https://translatewiki.net.
Change-Id: I94fdc6620a79e51a129a4487c74485dd5193fd41
2015-09-03 20:37:40 +02:00
Moriel Schottlender f6a12f1051 Correct 'primaryLink' to 'primaryUrl' everywhere
Change-Id: Id42940460f7825541f9bc6e65ff864035591f47e
2015-09-02 16:59:55 -07:00
jenkins-bot e6e507a9ee Merge "Use db-replicated objectcache for storing last seen time" 2015-09-02 22:50:43 +00:00
jenkins-bot da6544e275 Merge "Split alerts and messages in Echo" 2015-09-02 22:50:40 +00:00
Kunal Mehta 35c4a37918 Use db-replicated objectcache for storing last seen time
So we're not abusing user preferences for the last seen time.
EchoSeenTime is a small wrapper around ObjectCache that handles the
fallback to user preferences during the transition.

All JavaScript code now needs to use mw.config.get('wgEchoSeenTime').

Bug: T95839
Change-Id: Ia45ba5e30eb4564250539d04d5886d2598ebd49a
2015-09-02 22:42:35 +00:00
Moriel Schottlender 1ac72cc01a Split alerts and messages in Echo
Split the notifications into 'alert' and 'message' badget with two
different flyouts. Also clean up styling and module behavior.

** Depends on ooui change Id4bbe14ba0bf6c for footers in popups.
** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in
   inverted icons.

** MobileFrontend must also be updated to support the new modules
   in this patch  I168f485d6e54cb4067

In this change:
* Split notifcations into alert and messages and display those in
  two different badges.
* Create two separate flyout/popups for each category with their
  notifications.
* Create a view-model to control notification state and emit events
  for both the popup and the badge to intercept and react to.
* Clean up module load and distribution:
  * Create an ext.echo.ui module for javascript-ui support and ooui
    widgets.
  * Create an ext.echo.nojs module that unifies all base classes that
    are needed for both nojs and js support, that the js version
    builds upon.
  * Create a separate ext.echo.logger module as a singleton that can
    be called to perform all logging.
* Clean up style uses
  * Move the special page LESS file into nojs module so all styles
    load properly even in nojs mode.
  * Transfer some of the styling from JS to LESS for consistency.
  * Make the 'read more' button load already with the styles it
    needs to look like a button, since its behavior is similar in
    nojs and js vesions, but before its classes were applied only
    by the js, making it inconsistent and also making its appearance
    'jump' from a link to a button.
* Delete and clean up all old and unused files.
* Moved 'Help.png' icon from modules/overlay to modules/icons for
  later use.

Bug: T108190
Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-09-02 15:36:37 -07:00
jenkins-bot 422a682395 Merge "Expose the revid of the event revision in the API" 2015-09-02 20:23:29 +00:00
Translation updater bot 56155861f6 Localisation updates from https://translatewiki.net.
Change-Id: I6f93947f163ea2751e9803878c9bf21c6ba4dd18
2015-09-02 21:35:46 +02:00
Kunal Mehta 86da8324d5 Require a Language object in DiscussionParser::getTextSnippet()
To avoid using $wgLang directly. We still have to use it in
detectSectionTitleAndText for now though.

Change-Id: Ic901ed05d4e8f6291caa55d866ce58f7300880f5
2015-09-02 11:09:26 -07:00
Kunal Mehta 5d772ad76b Expose the revid of the event revision in the API
So custom applications can generate links to the revision
the event is about

Change-Id: I21d0417b9e014ff59f26a94cbcc28f22044a4a39
2015-09-02 11:03:02 -07:00
jenkins-bot fb18eededc Merge "Document Event methods that can return null" 2015-09-02 01:37:02 +00:00
Translation updater bot 0b07337f75 Localisation updates from https://translatewiki.net.
Change-Id: I7b89a4d330de00a0095a01b26799bfe93370e482
2015-09-01 21:44:05 +02:00
Translation updater bot acea608269 Localisation updates from https://translatewiki.net.
Change-Id: Ia1ae4483218ccdfc75a86f63bd2a9e27ded70468
2015-08-31 22:26:04 +02:00
Translation updater bot 2cefaa6a09 Localisation updates from https://translatewiki.net.
Change-Id: I87ba5f7be5943fa4eff792299011fededddb5ebe
2015-08-30 21:07:58 +02:00
Translation updater bot 4b6623fa93 Localisation updates from https://translatewiki.net.
Change-Id: I8aa035fa6f60c43c6318ad17c6a614028d6ec0cd
2015-08-29 21:45:01 +02:00
Translation updater bot 55337bb36e Localisation updates from https://translatewiki.net.
Change-Id: Ibedacf429151ec18abf6f37f560a1e5dd7600530
2015-08-28 21:52:20 +02:00
jenkins-bot 8be487330d Merge "Put back notification_timestamp for web." 2015-08-28 08:02:48 +00:00
jenkins-bot b94eb7754e Merge "Defer clearTalkNotification() updates as they often happen on GET requests" 2015-08-27 09:13:47 +00:00
Aaron Schulz 854aae01c8 Defer clearTalkNotification() updates as they often happen on GET requests
Bug: T92357
Change-Id: I3c5aca7748675a62c3f4a48ac53f14002eda95ac
2015-08-26 16:31:58 -07:00
Matthew Flaschen f38dfc4d08 Bump mention limit to 50
Bug: T110306
Change-Id: I724ef5467a087c70538a8780b856091260b40be4
2015-08-26 19:16:36 -04:00
Matthew Flaschen f3342a6c39 Put back notification_timestamp for web.
Although it wasn't here even before
c94c3f3dad , loadFromRow will make
use if it if it's present.  Otherwise, it's the current timestamp
(which seems odd; if we really don't need the timestamp in a
particular scenario, null would be more straightforward).

This is also public (getTimestamp()).

Change-Id: I9d88d86dde5b7f9b5965c81225a2aab4354c2baa
2015-08-26 16:06:34 -04:00
Translation updater bot 2a15bea7f8 Merge "Localisation updates from https://translatewiki.net." 2015-08-26 19:57:42 +00:00
Translation updater bot 2e28f49b8a Localisation updates from https://translatewiki.net.
Change-Id: Id2621ea71c5745c77d6c5e369e7395ed5b35fea7
2015-08-26 21:45:50 +02:00
Alex Monk 92dc3a0d3c Fix fatal DB exception
Follow-up I6c956738, which started trying to pull notification_timestamp out
of nowhere. Although EchoEvent::newFromRow may try to use this if it's set, it
wasn't previously getting selected and this is now causing exceptions.

Bug: T105890
Change-Id: I2dd9e268428d651813d8c43d85d54fc97634cd41
2015-08-26 13:31:51 +00:00
Translation updater bot 0c49df9298 Localisation updates from https://translatewiki.net.
Change-Id: I0491ad72b63467ca5035e2a41a6ab728c41d1571
2015-08-25 21:56:59 +02:00
Translation updater bot 3b3011cfc7 Localisation updates from https://translatewiki.net.
Change-Id: I986afd0fd94f00341610c01a2beaa5bcb42c608b
2015-08-24 21:31:20 +02:00
Translation updater bot e751213966 Localisation updates from https://translatewiki.net.
Change-Id: I0d7f215a2d2e3a555dc210ce700a12bb6b1bf96d
2015-08-23 21:35:50 +02:00
Federico Leva c94c3f3dad Select specific rows in EchoEventMapper::fetchByUserBundleHash()
As needed by EchoEvent::loadFromRow().
Alternatively, just '*' as in MWEchoEmailBatch::getEvents().

Bug: T105890
Change-Id: I6c956738125658607d5e548efad4031c3298020f
2015-08-22 10:11:39 +02:00
Translation updater bot 461980f705 Localisation updates from https://translatewiki.net.
Change-Id: Ib0eece2d1d55ee340d82db554fa82525a48978db
2015-08-21 20:57:51 +02:00
Translation updater bot a0e2e93fec Localisation updates from https://translatewiki.net.
Change-Id: Ifabbe474bb29276720fb27b46c968ae8f3db1dc2
2015-08-20 21:26:36 +02:00
Kunal Mehta 4a5c99921d Fix typo in documentation
Change-Id: I7b9cdccd34fb5b7e988d812af834968d17ef7f53
2015-08-19 13:13:07 -07:00
Matthew Flaschen b410f768f9 Document Event methods that can return null
Change-Id: Iecb3ba68ae48924c68781e195557954afd770af3
2015-08-19 15:18:27 -04:00
Translation updater bot 1d1db72c72 Localisation updates from https://translatewiki.net.
Change-Id: I93327da448272bf74fa88e56f3fb7a0a227d2a1c
2015-08-16 21:54:43 +02:00
Translation updater bot ac65495fd6 Localisation updates from https://translatewiki.net.
Change-Id: I1ec43d02837e2a35980a16148e8f1706f9de2681
2015-08-15 21:45:39 +02:00
Translation updater bot 79f0405cf6 Localisation updates from https://translatewiki.net.
Change-Id: Iaf9584f07e969b412305a8a31890ec30024832d8
2015-08-14 22:08:49 +02:00
jenkins-bot 8fa8403ebe Merge "BasicFormatter: Add accessor to get the correct Language object" 2015-08-13 20:30:43 +00:00
Translation updater bot 23363ddd31 Localisation updates from https://translatewiki.net.
Change-Id: If940e9cfb82750dbdb68e42c25e989721965d64d
2015-08-13 20:55:39 +02:00
Kunal Mehta 0884859246 BasicFormatter: Add accessor to get the correct Language object
And use it in UserRightsFormatter.

Change-Id: Id47b903127e0dba79a9390153ce6c1a4f89023ec
2015-08-13 10:56:23 -07:00
Kunal Mehta 9e245d8ce0 Remove unused globals
Change-Id: I23e1df7a245b08cb5d5491f01b5eea6630be3b29
2015-08-13 10:52:24 -07:00
Kunal Mehta 7fc41f826d Fix typo in documentation
Change-Id: I3049b1b80bdc1b5fdeeb76d0e29f165620f33433
2015-08-13 10:51:33 -07:00
jenkins-bot 8759ac3d72 Merge "Reduce CAS errors in ApiEchoMarkSeen" 2015-08-13 16:52:02 +00:00
Translation updater bot c09b114b4e Localisation updates from https://translatewiki.net.
Change-Id: I077cfd8a9c53789dcacca63ed55df0297b61ba78
2015-08-12 21:31:55 +02:00
Kunal Mehta 686a8ab5a4 Measure how long it takes for the flyout to open
Bug: T56486
Change-Id: I12bfbfb186e8ab2bfe22052402ad4c71b2e6bd81
2015-08-11 16:57:29 -07:00
Translation updater bot f96341b04e Localisation updates from https://translatewiki.net.
Change-Id: I143e9255a5abe437fcdab410b99477d301104341
2015-08-11 22:07:45 +02:00
Aaron Schulz 2a0e98e9a9 Reduce CAS errors in ApiEchoMarkSeen
* These tend to log errors many times in a row for the same few
  users in any given time period. There is probably some usage
  pattern issue in JS on top of the abuse of preferences for
  such tracking state. In any case, this should help.

Bug: T95839
Change-Id: I4d57b1db43a63300a412a5de220b66081da754f1
2015-08-11 19:18:45 +00:00
Kunal Mehta 92da0124d0 Only require event type to construct a formatter
Push the $wgEchoNotifications dependency to
NotificationFormatter::factory(), and only catch exceptions we're
actually expecting (NotificationFormatter::format()).

And clean up the logging to use structured logging while we're at it.

Change-Id: I7e18c318c5c81b6a38e55f27ef8f604654f10858
2015-08-10 11:27:52 -07:00
Translation updater bot 4082868601 Localisation updates from https://translatewiki.net.
Change-Id: I8dad2531b3a253395afa43a47b4df91360486bfa
2015-08-09 20:46:24 +02:00
Translation updater bot d6b03824f0 Localisation updates from https://translatewiki.net.
Change-Id: I46499a39ef0e0299048618cc89e11acde8616f13
2015-08-08 21:12:47 +02:00