Commit graph

184 commits

Author SHA1 Message Date
kaldari 9448c6cab0 Add 'Mark all as read' button to overlay
Button is only shown if there are more unread notifications than
fit in the overlay.

To avoid performance issues, this version only works for cases where
the number of unread notifications is less than the maximum count
(99 currently). Otherwise the button to mark all as read isn't
displayed (it's also limited on the server-side for good measure).

Bug: 47092
Change-Id: Ifcb0a436e2b31062741c441cca239d35ddefa0e1
2013-04-18 00:29:36 -07:00
jenkins-bot d9a4bb7bb9 Merge "Pref for showing notifications" 2013-04-17 17:15:51 +00:00
Kaldari 6388779640 Pref for showing notifications
If this pref is turned off, we revert to the old orange bar talk
page notifications. Depends on core change Ifc8fbaf8.

Bug: 46550
Change-Id: If21f3aac51e484c5e077c7f4b5a2218e8b71ed2a
2013-04-17 09:55:05 -07:00
jenkins-bot e45c9336da Merge "Adding Help link to Echo archive page" 2013-04-16 00:04:32 +00:00
kaldari 74fdc01fe6 Adding Help link to Echo archive page
Also fixing feedback link for Safari and Chrome

Change-Id: Icc9f2c66f983e95c1564f6981e952d1d99160111
2013-04-15 16:27:27 -07:00
kaldari f8157260ca Making sure notification counts are reset on user option changes
Bug: 47131
Change-Id: I5244ef9f7bf9d1217c0c0df6691d8cf689c47cf5
2013-04-12 15:26:25 -07:00
bsitu d44ed993a2 Add email bundling function to Echo notification
* This patch needs intensive testing on Redis delayed job queue
* This patch is -2 mainly for redis/phpredis are not ready on test/test2/mediawiki

To test this locally, you need to:
* set up Redis and phpredis locally
* add the following to localSettings.php
    $wgJobTypeConf['MWEchoNotificationEmailBundleJob'] = array(
        'class'       => 'JobQueueRedis',
        'redisServer' => '127.0.0.1',
        'redisConfig' => array( 'connectTimeout' => 1 ),
        'claimTTL'    => 3600,
        'checkDelay'  => true
    );
* set $wgMainCacheType to CACHE_DB or memcache
* set $wgEchoBundleEmailInterval to smaller number for testing purpose, 0 to disable email bundling

Change-Id: I9313e7f6ed3e13478cec294b5b8408fe8e941faf
2013-04-11 11:25:14 -07:00
jenkins-bot b342f475fa Merge "(bug 46678) Adding feedback link. Temporarily removing Learn more link." 2013-04-11 17:27:07 +00:00
kaldari 7effc4808f (bug 46678) Adding feedback link. Temporarily removing Learn more link.
Change-Id: Ifb9a287e2dc11067efac48bdbf700fe7997d19f0
2013-04-11 10:23:47 -07:00
jenkins-bot b6545aa106 Merge "Welcome notification should have 'system' metrics group" 2013-04-10 13:57:04 +00:00
bsitu 2be8a547a0 Add external db support to Echo
Change-Id: I84b0d904795d858d88d8e52c22f00d81c0e81303
2013-04-09 17:59:17 -07:00
bsitu 6a3624b0e4 Add web bundling function to Echo notification
* add web bundling feature
* unify event_timestamp with notification_timestamp
* remove echo_subscription
* update article_link to page_link notification with new logic
* remove duplicated function from MWDbEchoEmailBatch since it's defined in parent class

Change-Id: I2fa91c44edb020209b468fe13f894d9db3732e69
2013-04-04 10:53:46 -07:00
bsitu 9bd172549e Welcome notification should have 'system' metrics group
Change-Id: Ia818785ef5afdcaa133109edad05418c4a259269
2013-04-04 10:50:31 -07:00
Matthew Flaschen 54af0449d8 Merge the text of the welcome message into the title.
Change-Id: I3422cabe776e84c2231b1212329067fc5b075143
2013-04-02 18:17:20 -04:00
bsitu c4039b757b Initial version of user-right notification
Change-Id: I1b2c618df26084068edfb568de314809d8af6702
2013-03-18 11:19:26 -07:00
Kaldari c253342de4 Making defaultUserOptions based on category to match preferences
Also making getUserEnabledEvents check the categories

Change-Id: I561ccbb82605a6c2122330b791f3790d9dbe9078
2013-03-07 10:56:13 -08:00
Kaldari 8357f4bd75 Implementing new prefs system for Echo
Change-Id: Id745ed6cf1c92695569597fab6ea662bac8c76c0
2013-03-05 12:20:17 -08:00
jenkins-bot 95f1d50c18 Merge "Add first version of EventLogging schema to Echo" 2013-03-03 03:45:46 +00:00
bsitu fc5c341692 Add first version of EventLogging schema to Echo
Change-Id: I4b6033ffc2ec8d1597f2b447f100c58a8c3a7f3e
2013-03-01 15:53:07 -08:00
Reedy 62a433573f Numerous bits of method parameter documentation
Change-Id: Ie4b2657b5e010311b779aa587aa7fa9fc3f19abb
2013-03-01 10:56:58 -08:00
Kaldari d1aa8d52e1 Some minor polish for user mention notification per design specs
Tweaking pref label and adding edit summary payload

Change-Id: I559d162302bdc06f502a79335d7cfaa5ed3deb7d
2013-02-26 13:31:40 -08:00
bsitu d61ce41e80 configure mention notification to use the right formatter
Change-Id: I9b1e6a70eb33b80483f9966c8911b8d7d459059b
2013-02-25 11:19:18 -08:00
Kaldari f191726e35 Merge "Add a "mention" notification" 2013-02-25 04:42:03 +00:00
Andrew Garrett dc6a3cb6d0 Add a "mention" notification
Any user whose user page is linked in a comment on a talk page will get a notification of that.

Weaknesses: Currently this mention notification is additive.
We may want to restrict it to only cases where the user would not
otherwise be notified of the comment

patch set 3:
	* user + instead of array_merge for merging subscription users
	* rename $user to $agent to avoid name confilict in generateMentionEvents()
	* add check for possible null object
	* users should not receive 'mention' notification on their own talk pages

patch set 4:
	* add more descriptive comment
	* check for empty notification list before creating mention event

patch set 5:
	* Fix a parse error, change [ to {

patch set 10:
	* rebase

patch set 11:
	* adding flyout messages, updating params for other messages

Change-Id: I76b80db1f325d9569f36c506d14c8c875bba4a34
2013-02-24 20:38:11 -08:00
Kaldari 335fc1fab0 Getting rid of confusing abstraction regarding formatter classes
Specifying the class directly is much less confusing and fragile.
Plus we have way too many things named 'type'.
Also changing MWEchoArticleLinkedFormatter to EchoArticleLinkedFormatter
to match the convention of the other formatter classes.
Also making EchoBasicFormatter the default, so that the Hello World
case is easier to implement.

Change-Id: Ibd9b15008d37ad815e466ab81ba9a5b668ee2791
2013-02-15 16:02:42 -08:00
Kaldari af06e26de6 Adding dismiss functionality to special page
Includes new web preferences for Echo

Also adding ability to set dismissability per notification type

Still need to arrange subscription options into a friendly format

Still need to add dismiss functionality to flyout

Change-Id: I484a24b424e69be3640e63b76f82735edae6f13a
2013-02-12 11:33:50 -08:00
bsitu 78ad57d43a Abstracting MySQL in Echo so storage type can be swapped easily
Patch Set 6:
	* remove redundant JobQueueDB because it's the default
	* remove extra ;

Change-Id: I25dc0203ed5be1e4989242a87f4fde9c8799de28
2013-02-08 10:34:50 -08:00
raymond d09640cfcd Add special page to the "users" section on Special:SpecialPages
Change-Id: Iaa8dae73c5987301384442b1ade81f91f7698c9a
2013-01-30 10:32:30 +01:00
Kaldari dadd7b0076 Putting all the default user options together in the config
Also getting rid of $wgEchoDisableStandardEmail since it's no longer
used.

Change-Id: Ibdba2594695d607d1f932b741df8c2244dae834c
2013-01-17 15:06:40 -08:00
Kaldari 88f33ff165 Merge "Turn off article-linked email notif so users need to opt-in" 2013-01-17 18:39:56 +00:00
Kaldari c3e9ad0534 Support for limiting notifications to a specific user group or groups
Change-Id: I396bb6cb540bb6e8bdc190ddb1b67e15166c6852
2013-01-16 17:22:10 -08:00
bsitu 1fdaefcf91 Turn off article-linked email notif so users need to opt-in
Change-Id: Ib06516e64835b31d6f7b05c72a5eff00b43cc79d
2013-01-15 16:29:55 -08:00
Kaldari 320d044b90 Adding More Info link to Special:Notifications
Also revising some of the formatting, per Vibha.

Change-Id: Id8415c898e81f98c3eb1599ef5980d74ba509081
2013-01-08 14:23:24 -08:00
Kaldari 05e186c7a3 Setting up flyout formatting as a separate formatting option
This is replacing the implementation I did for 'html-light'.
The reason html-light doesn't work is that we don't have any way
of reliably determining which parameter should be the one that is
linked to in the notification title (flyout notifications are only
supposed to have one link). With this system, the notification
definer can specify a separate message/params combination to use
specifically for the notification flyout. If they don't specify
these, it falls back to the normal title message/params.

Change-Id: I35394849cf99307eba4a76e079333d19514fdb5d
2013-01-08 09:53:31 -08:00
Bsitu f94654389d Merge changes I388b8bbc,I85146f7e
* changes:
  Separating html and html-light formatting for notifications
  More work on our custom edit summary parsing
2013-01-03 18:51:40 +00:00
Kaldari d6ad22ed81 Separating html and html-light formatting for notifications
Change-Id: I388b8bbcce741005b34b87d7331e22d442ef1c9b
2013-01-02 17:52:07 -08:00
bsitu 961f86bd33 add article-linked notification
Patch Set 6:
	1. use 'linked' icron
	2. update message from cross-referenced to cross referenced

Change-Id: I8c70454e59b5f9f86f92825cfc75dcf5d9bcb336
2013-01-02 10:40:39 -08:00
bsitu 81178c9b1a some i18n message fix for plural and gender support
Change-Id: If71e7a3fd84a09f9e76281fb2b3806133726fc30
2012-12-28 15:43:20 -08:00
Krenair 038383469d (bug 43434) Add tooltip to notifications link
Change-Id: Idf53fe72d5c7055989bdae0a8e0f5606faa56440
2012-12-28 23:06:21 +00:00
Bsitu bfdd733e7c Merge "Remove redundant preference for talk page emails" 2012-12-20 00:30:13 +00:00
Kaldari ab1d910abe Remove redundant preference for talk page emails
Change-Id: I725075abef309d8626979ebd010794aafd75aada
2012-12-19 15:22:05 -08:00
bsitu ceac07b7a0 Disable standard user talk page notification
Echo would send its own notification, it is confusing to send both to the user

Change-Id: Ib9f22ec0a94fa2bc4ab3ac4ac846cec871445829
2012-12-19 14:35:45 -08:00
bsitu 2cec5ca045 Temporarily bypass job queue for notification
It takes more than an hour for the job queue to run in mediawiki.org and this is not acceptable for the purpose of testing a notification.

Change-Id: I87aaeaafdaec1896123acfc7e3a3ef5945207509
2012-12-19 12:37:02 -08:00
Bsitu 5199fa4936 Merge "Reworking overlay for edge cases - no notifications, or too many to show at once." 2012-12-18 03:09:57 +00:00
Kaldari d42b1db8cc Reworking overlay for edge cases - no notifications, or too many to show at once.
Change-Id: I6af535bf35c5594ed0c4dfad92defffff8b0e02e
2012-12-17 18:40:07 -08:00
bsitu 426c303e1f Email copy update
Change-Id: If7892289f3baf938e97b3a70b30a402468741c78
2012-12-17 17:52:24 -08:00
Kaldari 339bf25dcf Make revert emails opt-in
Change-Id: Ib80b3c306a7d7feaf7fdd040b3819f77b52385c3
2012-12-14 10:16:08 -08:00
Patrick Reilly a1cb855828 fix author list and url
Change-Id: I7104dbafd53d96d47ba295f32c7917e864c4c7f9
2012-12-14 08:49:06 -08:00
Patrick Reilly 082634eebd fix double slash sign issue
Change-Id: I8a9c280c713d88967381e61bf6229c6d78773dbb
2012-12-14 08:35:31 -08:00
Kaldari f897c02385 More prefs functionality for Echo
Patch set 16:
	* change some of the message rendering from plain() to escaped()

Change-Id: I9b971bd11171e73cd4d0c4ea10f817f4e19024f2
2012-12-13 16:57:15 -08:00
Kaldari 65255f7c6b Formatting for Special:Notifications
Change-Id: I891542bf8b6a883e7ff9f78d2b33ddd61c345aa7
2012-12-13 14:08:20 -08:00
Kaldari 704147d1d2 Fixes to the toolbar link for notifications per Vibha
New badge behavior - Show badge even if zero notifications
Enable long and short links - i.e. 'Notification (X)' or just '(X)'

Depends on core change https://gerrit.wikimedia.org/r/#/c/38258/

Change-Id: Idc2288a4ddd0bf788ccdadb96d4744d223edaf0a
2012-12-13 14:07:32 -08:00
bsitu 6b8571403a Initial check-in for email batch
patch set 3:
	* add gender support to various messages
	* tweak variables a little bit, e.g. move class variables to function local variables
patch set 4:
	* update various email to e-mail in i18n file
	* add support to process only valid echo events
	* add global email footer
	* add the new table schema to core schema file
patch set 5:
	* remove trailing white space
	* add missing semicolon to return statement in Notifier::notifyWithEmail()
patch set 8:
	* some change based on newest feature requirement

Change-Id: I3298617dab4c04c4d6d486469120fc2d0c986b66
2012-12-12 12:00:13 -08:00
Kaldari f519bca628 More formatting work on the overlay and base files
Change-Id: I8512c317d6c0a3db9e3fd0aa2b58a87f8f276b45
2012-12-10 18:02:19 -08:00
bsitu ad14fdbc57 Modification to all notification page
patch set 1:
	* Consolidate notification retrieval in API and Special page
	* Add load more function to special page with records as old as 7 days ago
	* Add support for browsers with javascript disabled

patch set 2:
	* Remove trailing whitespaces

patch set 3:
	* Fix some i18n issue
	* Fix variable names and some exta whitespace
	* Load core css files on special page rendering

Change-Id: Ic69e430b5eb196e5223a2bb6b1d447ef257d559b
2012-12-10 13:51:26 -08:00
Kaldari 7e9a35107b Allowing notifications to support multiple predefined components in the payload.
Payload components can include edit summary, edit snippet, welcome message.

This replaces the older 'content' system which constructed a payload
from an arbitrary message + parameters (but only supported a single
message).

Change-Id: I9a5e1d69f0c8296bb2bb79cb3f26e67aa34592bb
2012-12-05 10:31:41 -08:00
Kaldari 3ec54376a5 Setting up preferences for Echo, adding comments for some functions
Removing watchlist features that are now out of scope

Change-Id: Icbc35a4204ed89fe6c3bfdd1fb33c525ef5dc75c
2012-12-03 11:54:34 -08:00
bsitu cd349b11ac (bug 41866) Fix invalid notification in the flyout and page
1. Skip invalid notification events
2. Add formatting to notifcation count, for example, if the count is over 99, we just show 99+

patch set 2:
	* fix trailing whitespace
patch set 3:
	* remove extra whitespace and indentation
patch set 4:
	* change function name from gatherValidEchoEvent() to gatherValidEchoEvents()
	* add more descriptive documentation

Change-Id: I81a135c24f64fa1aace4dd2631e9b88bbe22d3d0
2012-12-03 11:41:16 -08:00
bsitu 3105444b9f Add global default email footer message
patch set 3: change emails to e-mails
patch set 4: make email-footer a parameter for email-body, this gives more flexibility so the footer can be defined directly inside email body or a separate message.
patch set 5: update email copy, still waiting for legal to finalize, :(
patch set 6: update email copy, remove whitespace, update preference link, the copy is finalized, :)

Change-Id: Ia5e8336f1c142c8f040efd0174696c7952c391a9
2012-11-29 13:20:29 -08:00
Andrew Garrett 466c87d999 Echo: Add "reverted" notification for when a user's edit is reverted.
* Supports 'undo' and 'rollback' currently
* Also includes adding the edit summary used to all edit notifications.
* Also fixes a minor bug that made it seem like all EchoNotificationJobs were failing.
* Added revert icon to CSS

Change-Id: Id22470107b071cdbce33da7cf3dfd09d22947644
2012-10-31 17:01:20 -07:00
Krenair 8ee1f9f145 Fix a couple of email parameter issues.
When trying to deal with bug 38940 I found that no parameters in
emails were getting substituted. I also found that I9051e4bf
caused email bodies to get the parameters of subjects. This
commit fixes the issues.

Change-Id: I976a9315416c4a8d02fa86d12643debf5e1fa1ac
2012-10-24 20:24:53 +01:00
Krenair 883a0e5cee Create special page aliases file
I was getting notices like this when browsing to Special:Notifications:
"Did not find alias for special page 'Notifications'. Perhaps no aliases are defined for it?"

This changeset should fix it. (Thanks Reedy)

Change-Id: I4ec41a4c37ef13bc332ed6ee2848fa72641c1892
2012-10-23 23:39:02 +01:00
bsitu 5bf61444bc Add some useful hooks to Echo extension
patch set 2: update hook name from BeforeformatEchoNotification to BeforeFormatEchoNotification

Change-Id: I2286b72b0d5c8a562c47a0bad6ceeee429a9447b
2012-10-22 16:45:11 -07:00
Krenair 5714adf8f4 Add welcome notification for new users.
Change-Id: I14032b71ebe63bb6ef951ba0c14d6acf44e69d6b
2012-09-01 01:31:20 +01:00
Krenair 9559105b59 Use whitespace between function parameters and the brackets.
Change-Id: I2c10cb69f1f1726b63d25579c6a35c882cc1fe7e
2012-08-30 17:04:39 +01:00
Andrew Garrett 5a955cc9d9 Some final fixes for deployment
Change-Id: Idfde86bba1966a8741f2f4a318c3745cc2e8e658
2012-08-02 12:50:46 -07:00
Andrew Garrett 27128c6a71 New copy from Vibha
Change-Id: Iabceeeb06cef395c31f2e0d17138e020668256fc
2012-08-01 14:23:37 -07:00
Catrope 131ae20665 Merge "Echo: Make it possible to specify exactly which events are active with $wgEchoEnabledEvents" 2012-08-01 19:21:18 +00:00
Andrew Garrett 1d47038e62 Echo: Make it possible to specify exactly which events are active with $wgEchoEnabledEvents
Change-Id: Iecf77f1e0dd80a209ef9be013fb2adf44e69a604
2012-08-01 12:11:52 -07:00
Andrew Garrett e48be3b311 Echo: Replace placeholders with real icons
Change-Id: I4af816746200bedfbfa16bf4079bd36febc35d96
2012-08-01 11:35:58 -07:00
Andrew Garrett db36c1f382 Stop triggering the yellow "you have new messages bar".
Transitional arrangements: Because pre-Echo events will not
have Echo notifications, the yellow bar will remain for them.

Change-Id: Id6b0f4c5d5592e3529f264a7235ee321b25fa740
2012-08-01 10:51:28 -07:00
Andrew Garrett 0699d8f402 Formatting updates for Echo.
First implementation of "two line" formatting.
Messages have a title and optional content.

Distinguishing writing on "your talk page" from another talk page in messages.

Change-Id: I9051e4bfb66d1c25c1bf68ec092b52fd90544336
2012-08-01 10:37:17 -07:00
Andrew Garrett 6ff170cada Echo: Implement advanced notifications for vanilla talk pages.
Uses the class EchoDiscussionParser to understand actions taken on
vanilla MediaWiki discussion pages.

Currently notifies on these occasions:
* A new comment is added to a discussion on your talk page or that
  you have participated in.
* A new topic is added to your talk page.

There are vague plans to expand to these classes of events:
* Your comment is edited or removed.
* A large section is moved to your talk page.

and these classes of users:
* Users watching discussion pages.

Change-Id: Ie6cae76ed2e0ecf607059e39ac1aa480a275ec89
2012-08-01 10:17:36 -07:00
Andrew Garrett 4f2d7b933e Echo: Use red badges instead of putting the number of new notifications in text.
Depends on refactoring from efb463c

Change-Id: Iba09f46abaf337ea2578ace9d22592a71970c64b
2012-07-31 14:27:51 -07:00
Andrew Garrett efb463cca9 Echo: Refactor various code to allow for XMPP and badge notifications.
Change-Id: Ic372756501ad3438ab67a5c96791ba2ffe70c886
2012-07-31 14:19:15 -07:00
Andrew Garrett 922fbc1e17 Echo: Disable standard email notifications
Change-Id: I3d613792175f68606483ba729a79b625a7ebcb02
2012-07-17 15:19:32 -07:00
Andrew Garrett 4ae2c858f5 Fix URL
Change-Id: Ic963380ba9edbfeb2b2daecbd89ff03881898541
2012-07-16 17:04:16 -07:00
Andrew Garrett 7b47e5d09d Echo overlay enhancements
Add a title and a link to Special:Notifications to the notifications overlay.
Also add a message to Special:Notifications and the overlay if a user has no notifications

Change-Id: I28407d3ea82039b160170f51ab987418e14be2af
2012-06-08 15:55:01 +10:00
Andrew Garrett 44904f174e Merge "Echo email notification: Make sure users actually want to receive email notifications by checking their preferences first" 2012-06-08 05:33:25 +00:00
Andrew Garrett 6bbbb0c74c Echo email notification: Make sure users actually want to receive email notifications by checking their preferences first
Change-Id: I3fe51a8b418034b872a1ccf77e845f46e5f9e111
2012-06-08 15:31:24 +10:00
Andrew Garrett 46b3024b4a Echo: Defer notifications using the Job Queue
In future it may be necessary to break them down an extra level.

Change-Id: I65e5a285e7d5797636e118c5e3e78b94df9af3d4
2012-06-08 15:30:09 +10:00
Andrew Garrett 5c841cafe3 Add an "overlay" to personal links showing new notifications.
Change-Id: I1a350e5d051bd0e776e5043f0ba189a576ac7ee7
TODO: Add date/time stamp to notifications as shown in overlay
2012-06-01 21:02:30 +10:00
Andrew Garrett 8839f98735 Implement email notification in Echo. No way to turn it off yet, but at least it is there :).
Change-Id: Ie7c3d776d3698264d18ccaec90cc39aae83761dd
2012-05-18 01:36:18 +10:00
Andrew Garrett 8da85396d6 Initial commit of Echo, a notifications framework for MediaWiki.
This version is very rough.

For an example set of Minimum Releasable Functionality, this version will notify users on
changes to their watchlists or to their user talk pages.

However, it is still missing a conversion script to turn watchlists into echo subscriptions.

For now, notifications can be viewed through the new special page Special:Notifications, or through the API module provided.

Change-Id: I5867226e3e6195fbed81f4b5803e2310f057ffc4
2012-05-13 00:53:21 +10:00