Detects changes to different parts of the document as independent from each
other. Refactored parser passes all tests the previous parser passed plus
a number of new tests which fail with the original parser.
Change-Id: I65fdc6d9f922cbe9ff684332945def3776c70d30
With this change we will no longer be relying on JS for the badge
functionality. This will prevent the flash of unstyled content,
and allow wikis to locally override the styling (since the unread
class is now applied immediately).
I also went ahead and made the badge styling more closely match the
talk page message alert styling per Vibha.
Also removed the old full link optional behavior since we weren't
using it, and it would have been a pain to maintain.
Bug: 48165
Bug: 48001
Change-Id: Ie85d66afd5181d487d0bb2776ae14b121ea50d88
Implements whitelists and blacklists for notification agents to assist
in filtering out unwanted notifications from bots.
Bug: 47946
Change-Id: I0d7e071067c6974fb90cf6c0ba1bd159f46bd5df
Adjusted the edit-user-talk event creation to detect and record which section
of the talk page was edited. Flyout, special page, and email messages have
been adjusted to use this section title as a URL fragment when available.
Bug: 46937
Change-Id: I161e2ffda2f2540f64de90cc621fb3b69479d0db
While writing tests i noticed that this is dead code that will never be called. It
was originally used but several commits have piled up to cause its deprecation.
Upon review of the git history it seems the general idea behind content-* turned
into the 'payload' key. the commentText formatting was moved to payload for future
use, the i18n keys have been pruned.
Change-Id: I5ef360759db53d54a834afc8b71e9c8807de0284
Instead of introducing a brand new option for this notification, we just
use the existing enotifusertalkpages
Change-Id: Ia63c9b1f4f52007004fa2860115b675aae4872fa
This patch makes Echo talk page notification mimic the existing Orange Bar and Email talk page notification
for minor edit.
For the Orange Bar, minor edit notification is sent if the editor does not have nominornewtalk
permission.
There are additional rules for the email, minor edit notification is sent if global $wgEnotifMinorEdit
is true and notification recipient has enotifminoredits option on.
Change-Id: Ib3835c4dd57a3686b227c44710a14ab06cded166
Previously Echo prevented all user_newtalk data from being generated
for logged in users. This broke the hasmsg API and also prevented
anyone from being able to implement client-side growlers or alerts
based on this data. The new approach is more conservative - it allows
updates to the user_newtalk table, but prevents the alert itself
(orange bar of doom) from being displayed to logged in users. This
will provide more flexibility for future development regarding talk
page alerts (both for extensions and gadgets).
Note: This change is dependant on the new core change I2105bdd2.
Bug: 47962
Change-Id: I3f35a56b3f1795c2b21a6e4af8fc93b5e61b7d3c
Also registering UserLoadOptions hook (oops!)
Finally, getting rid of old override system that is now obsolete.
Change-Id: Ie264981eb20f1e3d3c83721bc376d79e2f5a1430
Catches people who have opted out of old style talk page notifications and opts them out
of equivalent new ones.
Needs $wgRecentEchoInstall = true in LocalSettings.php so it can be turned off when no
longer needed.
The migration has 1 million rows to write on enwiki so will take some time
Change-Id: Ie6201df378bf8df813b3d461ea9a8521d99b1bb9
* Icon can be defined using a path or a URL
* Extensions don't need custom CSS, but add icon through BeforeCreateEchoEvent
* Sites set their notification icon in LocalSettings.php or equivalent
Bug: 46585
Change-Id: Ifc02b653d07de19229dfb2604305e32f3bd595fe
This was being used as the icon for the welcome and user rights notifications,
but is completely inappropriate for any site other than Wikipedia.
WMF will probably want something like this in their config:
if ( $site === 'wikipedia' ) {
$wgEchoNotifications['welcome']['icon'] = 'w';
$wgEchoNotifications['user-rights']['icon'] = 'w';
}
Bug: 47650
Change-Id: Idd41567ffcb468dd3d040d2a5a61d1e3f9f7f5fa
Default settings for existing users are intended to be low volume and not annoying
New users need more encouragement and incentive to return
Change-Id: Id37ad8289a5c968ae8be6a8c424a19d6cbc7e071
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
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
* 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
* 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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
Transitional arrangements: Because pre-Echo events will not
have Echo notifications, the yellow bar will remain for them.
Change-Id: Id6b0f4c5d5592e3529f264a7235ee321b25fa740
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
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
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
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