Commit graph

275 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
kaldari d4a15e3ee4 New presentation of email notification settings per requirements
We have a new shorter header and add labels for the two options.

Change-Id: If63720afe35f2edfa90b2c74d93fe355abd5da61
2013-04-17 17:44:20 -07:00
bsitu c7922a366c Email digest header tweaks
Plus adding escape to some of the messages

Bug: 47095
Change-Id: I296de4e5ebe92b737837c7ddcf3f631b16a9cf8b
2013-04-17 14:43:31 -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
bsitu 5d32291b12 Remove the code the tries to create an invalid notification
Although invalid notification would be checked and not be created, it's better to get rid of any attempt of creating invalid notifications

Change-Id: I4bdbf7e0706b3613c7cf31ab07570fb4d1cdd045
2013-04-15 13:34:24 -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 20f6ca3dde Merge "Switching to new message scheme for prefs per feature requirements" 2013-04-11 18:18:41 +00:00
kaldari cca427faeb Switching to new message scheme for prefs per feature requirements
Change-Id: I84f440d29d3311c580d3ae5ac5b46c151e051e44
2013-04-11 10:22:18 -07:00
bsitu e40a243d59 remove unused table and columns
1. echo_subscription
2. echo_event.event_timestamp

Change-Id: I9f6d4041b16c6d1d0414ee8e81536a59d0aba3d4
2013-04-09 10:56:28 -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
Kaldari 556ad065f2 Merge "Initial version of user-right notification" 2013-03-21 17:49:24 +00:00
bsitu efebd39118 (bug 45337) reverts/rollback should not trigger link notif
Change-Id: I7ca7687f271aae53a000affdc10c1ed3758dcb83
2013-03-18 14:56:56 -07:00
bsitu c4039b757b Initial version of user-right notification
Change-Id: I1b2c618df26084068edfb568de314809d8af6702
2013-03-18 11:19:26 -07:00
bsitu 345fdb81e2 (bug 46051) mentioned users should not be as object in database
Change-Id: Id96ade333d8150fdc357db47cba9a609f9e7e108
2013-03-13 12:30:20 -07:00
bsitu fd72ce7606 Fix eventlogging schema check logic
ResourceLoaderRegisterModules Hook is triggerd on HTML generation, which happens after POST action.  We should move the logic of checking if a schema is enabled out of this hook.

Change-Id: Ic5696aeca378d13d04ce901ce56a2d0e8a9ab802
2013-03-06 13:36:51 -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
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 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
Kaldari 6e69812e3a Merge "Redirect should not trigger 'article-linked' notification" 2013-01-17 18:40:43 +00:00
bsitu f65a3842fd Update ArticleSaved hook to use correct request object
'Revert' via the API apiEditPage.php does not trigger reverted notification, this is probably due to the fake request object swap inside this API, which is making the param wgUndidRevision with empty value inside the hook, replace $user->getRequest() with $wgRequest solves this problem.

Change-Id: I5d12d31f370f2633e85d6533242da26ece950630
2013-01-16 17:46:23 -08: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 4cf5adf25f Redirect should not trigger 'article-linked' notification
Change-Id: I2d38a804f23a0e9b9d578f8d6e69b10d20cf24a2
2013-01-15 16:13:58 -08:00
bsitu 39416e503d (bug 43701) - LinkedPage was linked by 127.0.0.1 from page
If multiple pages are transcluding a page, a link update on the page being transcluded would trigger notifications for all the transcluding pages, we only need to fire the notification for the page being transcluded.

The solution in this patch seems to work but I have not fully investigated all possible scenarios. -2 for now

Change-Id: I6932ffb2e5dba3da40db17bd37ce2cc6cb8aee17
2013-01-08 15:57:28 -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 cb45681f05 (bug 43629) inlcude all content namespaces, not just NS_MAIN
Change-Id: Ia1998a12f182805955aaab143fa6072b91cb6fd6
2013-01-07 13:48:18 -08:00
bsitu a5cc1c6836 (bug 43625) - Strange notification
pages with 0 id should be filtered out

Change-Id: Idfccc3e7c430e929f7ef312548ad92e7d9f40dfe
2013-01-04 11:58:30 -08:00
bsitu 4a1cb54b17 limit article-linked notification to main namespace only
Change-Id: I814a6e8c500e3eb761106c131d70a229ee4f0989
2013-01-03 17:36:12 -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
Krenair 4f8bab2e67 (bug 43446) Sort event preferences by priority
Change-Id: Ib6b4745676bb3487a2ed7418446d6d80a156950b
2012-12-28 22:16:34 +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 2813576364 Only show email digest preference options if batch is enabled
Change-Id: I5b34ded16afad0d2bd50661bfae06dc7da7e48e9
2012-12-14 12:49:40 -08:00
Bsitu 8919becfd8 Merge "Put the Notifications link after the talk page link if we're using full link" 2012-12-14 02:03:44 +00:00
Kaldari a46dc2a82d Put the Notifications link after the talk page link if we're using full link
Change-Id: Ifc3bb87575fd21b3f228cf1b8083a78939d7d529
2012-12-13 18:01:04 -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 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
bsitu efe5f6817f Fix fatal error
Fatal error: Call to undefined method WikiPage::getContext()

Change-Id: Ib7c7f5cd529930cd469ecce7e66fcc810e7549aa
2012-12-05 17:29:22 -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
Reedy f7c91e2e0d Don't run the same SQL file 3 times
Change-Id: I1c9a210cfa69522d1cb404c661da9a78f56c605a
2012-11-10 20:25:12 +00:00
Kaldari e2bf80da8f Checking that revert notification is enabled before firing it
Change-Id: I9775b8ef1ec137f5622ee07758f50d58c50e12c9
2012-11-08 12:02:16 -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
Siebrand Mazeland 3a43ea2e05 Maintenance for Echo extension.
* Update docs.
* Remove unused local variables.
* JSLint/JSHint suggested updates.
* Merge CSS lines.

Change-Id: Ib2a2e8129d5ff8aca6c612a39d22698f078df9d5
2012-10-06 19:31:31 +00:00
Tychay 419f7b1cbb Merge "Add welcome notification for new users." 2012-09-04 19:03:09 +00:00
Siebrand Mazeland 69d91fa1b6 Update documentation and deprecated methods.
Basically having fun with the code analyzer.

Also:
* remove unused local variable assignments
* missing return values
* CSS optimizations.
* Initialize possible unset variables.

Change-Id: I77aa08ecb48eeda08f14dc38d7f35d57ea9fa110
2012-09-02 11:30:38 +02:00
Krenair 5714adf8f4 Add welcome notification for new users.
Change-Id: I14032b71ebe63bb6ef951ba0c14d6acf44e69d6b
2012-09-01 01:31:20 +01:00
Siebrand Mazeland 950f74eba8 Follow-up I2c10cb69: Auto-formatted using IDE.
Change-Id: Iedeaca3c31195a5cf7df8dd38d6332cfabffcc67
2012-08-31 23:50:46 +02:00
Krenair 9559105b59 Use whitespace between function parameters and the brackets.
Change-Id: I2c10cb69f1f1726b63d25579c6a35c882cc1fe7e
2012-08-30 17:04:39 +01:00
Reedy 89bb4371e5 Make EchoHooks::getUnitTests() return true
Change-Id: Ib2cc725b7e172f4efbfbcc00b2fb81d76008b61a
2012-08-07 19:54:42 +01:00
Andrew Garrett 5a955cc9d9 Some final fixes for deployment
Change-Id: Idfde86bba1966a8741f2f4a318c3745cc2e8e658
2012-08-02 12:50:46 -07:00
Andrew Garrett 2378a39950 Echo: A few adjustments based on feedback from Ryan Kaldari and Benny Situ.
Change-Id: If430c02793a1843253ccc18512075befc99a3eb6
2012-08-01 15:08:58 -07: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
Reedy 0238982af0 Update code/documentation
Add FIXME

Update some code to new standards

Change-Id: I4240f651ca85001eabaf91eed0c896741b01a76d
2012-08-01 10:54:17 -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
Catrope 429b608270 Merge changes I9051e4bf,Ie6cae76e
* changes:
  Formatting updates for Echo.
  Echo: Implement advanced notifications for vanilla talk pages.
2012-08-01 17:47:26 +00: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 5f666bd7a7 Fix non-JS to use the correct message
Change-Id: Ifd451aeb6755dd77b0e988298546ee125b010e4c
2012-07-31 16:29:30 -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 c3b77b543e Merge "Echo: Disable standard email notifications" 2012-07-18 16:28:41 +00:00
Andrew Garrett 922fbc1e17 Echo: Disable standard email notifications
Change-Id: I3d613792175f68606483ba729a79b625a7ebcb02
2012-07-17 15:19:32 -07:00
Andrew Garrett fc0b870486 Echo: Reset user notification count when adding a new notification
Change-Id: If4057ba9f6a016189c60836c64333ac0b0572450
2012-07-17 13:39:45 -07:00
Andrew Garrett aa7d7b1e72 Fix fatal errors that were causing notifications to fail
Change-Id: I89fe025b12fe853c3fc40dd2350feae884c61458
2012-07-16 17:04:27 -07: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 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 ed388e1916 Fix SQL issue: make event_variant field nullable.
Change-Id: I5937d4e2f6be1e3face7094dfd5cdf5414ab3007
2012-05-18 11:10:41 +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