{ "name": "Echo", "author": [ "Andrew Garrett", "Ryan Kaldari", "Benny Situ", "Luke Welling", "Kunal Mehta", "Moriel Schottlender", "Jon Robson", "Roan Kattouw" ], "url": "https://www.mediawiki.org/wiki/Extension:Echo", "descriptionmsg": "echo-desc", "license-name": "MIT", "type": "specialpage", "requires": { "MediaWiki": ">= 1.43" }, "APIMetaModules": { "notifications": { "class": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoNotifications", "services": [ "MainConfig" ] }, "unreadnotificationpages": { "class": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoUnreadNotificationPages", "services": [ "PageStore", "TitleFactory" ] } }, "APIModules": { "echomarkread": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMarkRead", "echomarkseen": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMarkSeen", "echocreateevent": { "class": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoCreateEvent", "services": [ "UserNameUtils" ] }, "echoarticlereminder": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoArticleReminder", "echomute": { "class": "MediaWiki\\Extension\\Notifications\\Api\\ApiEchoMute", "services": [ "CentralIdLookup", "LinkBatchFactory", "UserOptionsManager" ] } }, "DefaultUserOptions": { "echo-email-frequency": 0, "echo-dont-email-read-notifications": false }, "ConditionalUserOptions": { "echo-subscriptions-web-reverted": [ [ false, [ "registered-after", "20240208200000" ] ] ], "echo-subscriptions-web-article-linked": [ [ true, [ "registered-after", "20240208200000" ] ] ], "echo-subscriptions-email-mention": [ [ true, [ "registered-after", "20240208200000" ] ] ], "echo-subscriptions-email-article-linked": [ [ true, [ "registered-after", "20240208200000" ] ] ] }, "ExtensionFunctions": [ "MediaWiki\\Extension\\Notifications\\Hooks::initEchoExtension" ], "JobClasses": { "EchoNotificationJob": "MediaWiki\\Extension\\Notifications\\Jobs\\NotificationJob", "EchoNotificationDeleteJob": { "class": "MediaWiki\\Extension\\Notifications\\Jobs\\NotificationDeleteJob", "services": [ "JobQueueGroup" ] }, "EchoPushNotificationRequest": "MediaWiki\\Extension\\Notifications\\Push\\NotificationRequestJob" }, "SpecialPages": { "Notifications": "MediaWiki\\Extension\\Notifications\\Special\\SpecialNotifications", "DisplayNotificationsConfiguration": { "class": "MediaWiki\\Extension\\Notifications\\Special\\SpecialDisplayNotificationsConfiguration", "services": [ "EchoAttributeManager", "UserOptionsManager" ] }, "NotificationsMarkRead": "MediaWiki\\Extension\\Notifications\\Special\\SpecialNotificationsMarkRead" }, "AvailableRights": [ "manage-all-push-subscriptions", "echo-create" ], "GroupPermissions": { "push-subscription-manager": { "manage-all-push-subscriptions": true } }, "MessagesDirs": { "Echo": [ "i18n", "i18n/api" ] }, "ExtensionMessagesFiles": { "EchoAliases": "Echo.alias.php" }, "QUnitTestModule": { "localBasePath": "", "remoteExtPath": "Echo", "dependencies": [ "ext.echo.dm", "ext.echo.mobile" ], "scripts": [ "tests/qunit/model/test_mw.echo.dm.BundleNotificationItem.js", "tests/qunit/model/test_mw.echo.dm.CrossWikiNotificationItem.js", "tests/qunit/model/test_mw.echo.dm.FiltersModel.js", "tests/qunit/model/test_mw.echo.dm.NotificationGroupsList.js", "tests/qunit/model/test_mw.echo.dm.NotificationItem.js", "tests/qunit/model/test_mw.echo.dm.NotificationsList.js", "tests/qunit/model/test_mw.echo.dm.PaginationModel.js", "tests/qunit/model/test_mw.echo.dm.SeenTimeModel.js", "tests/qunit/model/test_mw.echo.dm.SourcePagesModel.js", "tests/qunit/model/test_mw.echo.dm.UnreadNotificationCounter.js" ] }, "ResourceModules": { "ext.echo.ui.desktop": { "scripts": [ "ui/mw.echo.ui.BadgeLinkWidget.js", "ui/mw.echo.ui.NotificationBadgeWidget.js" ], "styles": [ "styles/mw.echo.ui.NotificationBadgeWidget.less" ], "dependencies": [ "ext.echo.ui", "ext.echo.styles.badge", "mediawiki.util", "mediawiki.user", "mediawiki.api" ] }, "ext.echo.ui": { "scripts": [ "controller/mw.echo.Controller.js", "ui/mw.echo.ui.js", "ui/mw.echo.ui.SortedListWidget.js", "ui/mw.echo.ui.SubGroupListWidget.js", "ui/mw.echo.ui.NotificationsListWidget.js", "ui/mw.echo.ui.PlaceholderItemWidget.js", "ui/mw.echo.ui.ToggleReadCircleButtonWidget.js", "ui/mw.echo.ui.NotificationItemWidget.js", "ui/mw.echo.ui.SingleNotificationItemWidget.js", "ui/mw.echo.ui.CrossWikiNotificationItemWidget.js", "ui/mw.echo.ui.BundleNotificationItemWidget.js", "ui/mw.echo.ui.ClonedNotificationItemWidget.js", "ui/mw.echo.ui.ActionMenuPopupWidget.js", "ui/mw.echo.ui.MenuItemWidget.js", "ui/mw.echo.ui.NotificationsWrapper.js", "ui/mw.echo.ui.ConfirmationPopupWidget.js", "ext.echo.moment-hack.js" ], "styles": [ "styles/mw.echo.ui.mobile.less", "styles/mw.echo.ui.overlay.less", "styles/mw.echo.ui.NotificationItemWidget.less", "styles/mw.echo.ui.ToggleReadCircleButtonWidget.less", "styles/mw.echo.ui.CrossWikiNotificationItemWidget.less", "styles/mw.echo.ui.NotificationsListWidget.less", "styles/mw.echo.ui.PlaceholderItemWidget.less", "styles/mw.echo.ui.SubGroupListWidget.less", "styles/mw.echo.ui.ActionMenuPopupWidget.less", "styles/mw.echo.ui.MenuItemWidget.less", "styles/mw.echo.ui.NotificationsWrapper.less", "styles/mw.echo.ui.ConfirmationPopupWidget.less" ], "skinStyles": { "modern": [ "styles/mw.echo.ui.overlay.monobook.less" ], "monobook": [ "styles/mw.echo.ui.overlay.monobook.less" ], "vector": [ "styles/mw.echo.ui.overlay.vector.less" ], "vector-2022": [ "styles/mw.echo.ui.overlay.vector.less" ], "minerva": [ "styles/mw.echo.ui.overlay.minerva.less" ], "wikimediaapiportal": [ "styles/mw.echo.ui.overlay.wikimediaapiportal.less" ] }, "dependencies": [ "ext.echo.api", "ext.echo.dm", "ext.echo.secondaryicons", "oojs", "oojs-ui-core", "oojs-ui-widgets", "moment", "mediawiki.jqueryMsg", "mediawiki.language", "mediawiki.Title", "oojs-ui.styles.icons-user", "oojs-ui.styles.icons-alerts", "oojs-ui.styles.icons-content", "oojs-ui.styles.icons-interactions", "oojs-ui.styles.icons-moderation", "oojs-ui.styles.icons-movement", "oojs-ui.styles.icons-editing-core" ], "messages": [ "echo-badge-count", "echo-overlay-link", "echo-mark-all-as-read", "echo-mark-wiki-as-read", "echo-notification-alert", "echo-notification-notice", "echo-notification-loginrequired", "echo-notification-popup-loginrequired", "notification-link-text-expand-all", "notification-link-text-collapse-all", "notification-link-text-expand-alert-count", "notification-link-text-expand-notice-count", "notification-link-text-expand-all-count", "notification-timestamp-ago-seconds", "notification-timestamp-ago-minutes", "notification-timestamp-ago-hours", "notification-timestamp-ago-days", "notification-timestamp-ago-months", "notification-timestamp-ago-years", "notification-timestamp-today", "notification-timestamp-yesterday", "echo-notification-markasread", "echo-notification-markasunread", "echo-notification-markasread-tooltip", "echo-notification-more-options-tooltip", "echo-notification-alert-text-only", "echo-notification-notice-text-only", "echo-email-batch-bullet", "echo-notification-placeholder", "tooltip-pt-notifications-alert", "tooltip-pt-notifications-notice", "mytalk", "mypreferences", "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ] }, "ext.echo.dm": { "scripts": [ "model/mw.echo.dm.js", "model/mw.echo.dm.SourcePagesModel.js", "model/mw.echo.dm.PaginationModel.js", "model/mw.echo.dm.FiltersModel.js", "model/mw.echo.dm.SeenTimeModel.js", "model/mw.echo.dm.ModelManager.js", "model/mw.echo.dm.SortedList.js", "model/mw.echo.dm.NotificationItem.js", "model/mw.echo.dm.CrossWikiNotificationItem.js", "model/mw.echo.dm.BundleNotificationItem.js", "model/mw.echo.dm.NotificationsList.js", "model/mw.echo.dm.NotificationGroupsList.js", "model/mw.echo.dm.UnreadNotificationCounter.js" ], "dependencies": [ "oojs", "ext.echo.init", "ext.echo.api", "moment" ], "messages": [ "echo-api-failure", "echo-notification-loginrequired", "echo-api-failure-cross-wiki" ] }, "ext.echo.api": { "scripts": [ "api/mw.echo.api.js", "api/mw.echo.api.PromisePrioritizer.js", "api/mw.echo.api.EchoApi.js", "api/mw.echo.api.APIHandler.js", "api/mw.echo.api.LocalAPIHandler.js", "api/mw.echo.api.ForeignAPIHandler.js", "api/mw.echo.api.NetworkHandler.js" ], "dependencies": [ "mediawiki.api", "mediawiki.ForeignApi", "oojs" ] }, "ext.echo.mobile": { "styles": [ "mobile/overlay.less", "mobile/notificationsFilterOverlay.less" ], "messages": [ "notifications", "echo-mobile-notifications-filter-title", "echo-mark-all-as-read-confirmation" ], "dependencies": [ "mediawiki.util", "mediawiki.router", "ext.echo.ui", "oojs-ui.styles.icons-interactions" ], "packageFiles": [ "mobile/notifications.js", "mobile/list.js", { "name": "mobile/config.json", "callback": "MediaWiki\\Extension\\Notifications\\Hooks::getConfigVars" }, "mobile/overlay.js", "mobile/notificationsFilterOverlay.js" ] }, "ext.echo.init": { "packageFiles": [ "ext.echo.init.js", { "name": "config.json", "callback": "MediaWiki\\Extension\\Notifications\\Hooks::getConfigVars" } ], "dependencies": [ "ext.echo.api", "mediawiki.jqueryMsg", "web2017-polyfills" ], "messages": [ "echo-badge-count", "echo-displaysnippet-title", "parentheses" ] }, "ext.echo.centralauth": { "packageFiles": [ "ext.echo.centralauth.js" ] }, "ext.echo.styles.badge": { "styles": [ "nojs/mw.echo.badge.less" ] }, "ext.echo.styles.notifications": { "styles": [ "nojs/mw.echo.notifications.less", "styles/LabelIconWidget.less" ] }, "ext.echo.styles.alert": { "styles": [ "nojs/mw.echo.alert.less" ], "skinStyles": { "monobook": [ "nojs/mw.echo.alert.monobook.less" ] } }, "ext.echo.special": { "scripts": [ "ui/mw.echo.ui.PaginationWidget.js", "ui/mw.echo.ui.DatedSubGroupListWidget.js", "ui/mw.echo.ui.DatedNotificationsWidget.js", "ui/mw.echo.ui.ReadStateButtonSelectWidget.js", "ui/mw.echo.ui.PageNotificationsOptionWidget.js", "ui/mw.echo.ui.PageFilterWidget.js", "ui/mw.echo.ui.CrossWikiUnreadFilterWidget.js", "ui/mw.echo.ui.NotificationsInboxWidget.js", "ui/mw.echo.ui.SpecialHelpMenuWidget.js", "special/ext.echo.special.js" ], "styles": [ "styles/mw.echo.ui.PaginationWidget.less", "styles/mw.echo.ui.DatedSubGroupListWidget.less", "styles/mw.echo.ui.DatedNotificationsWidget.less", "styles/mw.echo.ui.NotificationsInboxWidget.less", "styles/mw.echo.ui.PageNotificationsOptionWidget.less", "styles/mw.echo.ui.PageFilterWidget.less", "styles/mw.echo.ui.CrossWikiUnreadFilterWidget.less", "styles/mw.echo.ui.SpecialHelpMenuWidget.less" ], "skinStyles": { "minerva": [ "styles/mw.echo.ui.NotificationsInboxWidget.minerva.less" ] }, "dependencies": [ "ext.echo.ui", "mediawiki.Uri", "mediawiki.user", "ext.echo.styles.special" ], "messages": [ "notification-inbox-filter-read", "notification-inbox-filter-unread", "notification-inbox-filter-all", "echo-notification-placeholder-filters", "echo-specialpage-pagination-numnotifications", "echo-specialpage-pagination-range", "echo-specialpage-pagefilters-title", "echo-specialpage-pagefilters-subtitle", "echo-mark-all-as-read", "echo-learn-more", "mypreferences", "echo-specialpage-section-markread", "echo-specialpage-pagefilterwidget-aria-label", "echo-specialpage-special-help-menu-widget-aria-label" ] }, "ext.echo.styles.special": { "styles": [ "nojs/mw.echo.special.less" ] } }, "ResourceFileModulePaths": { "localBasePath": "modules", "remoteExtPath": "Echo/modules" }, "Hooks": { "LoadExtensionSchemaUpdates": "schema", "GetPreferences": "main", "BeforePageDisplay": "main", "ResourceLoaderRegisterModules": "main", "UserGroupsChanged": "main", "LoadUserOptions": "main", "SaveUserOptions": "main", "UserGetDefaultOptions": "main", "UserClearNewTalkNotification": "main", "EmailUserComplete": "main", "LoginFormValidErrorMessages": "main", "OutputPageCheckLastModified": "main", "ArticleDeleteComplete": "main", "ArticleUndelete": "main", "UserMergeAccountFields": "usermerge", "MergeAccountFromTo": "usermerge", "UserMergeAccountDeleteTables": "usermerge", "PageSaveComplete": "main", "LocalUserCreated": "main", "RollbackComplete": "main", "UserSaveSettings": "main", "AbortTalkPageEmailNotification": "main", "SendWatchlistEmailNotification": "main", "GetNewMessagesAlert": "main", "LinksUpdateComplete": "main", "SpecialMuteModifyFormFields": "main", "RecentChange_save": "main", "ApiMain::moduleManager": "main", "SkinTemplateNavigation::Universal": "main", "PreferencesGetIcon": "main" }, "HookHandlers": { "main": { "class": "MediaWiki\\Extension\\Notifications\\Hooks", "services": [ "AuthManager", "CentralIdLookup", "MainConfig", "EchoAttributeManager", "HookContainer", "ContentLanguage", "LinkRenderer", "NamespaceInfo", "PermissionManager", "RevisionStore", "StatsFactory", "TalkPageNotificationManager", "UserEditTracker", "UserFactory", "UserOptionsManager" ] }, "schema": { "class": "MediaWiki\\Extension\\Notifications\\SchemaHooks" }, "usermerge": { "class": "MediaWiki\\Extension\\Notifications\\UserMergeHooks" } }, "config": { "EchoEnableEmailBatch": { "value": true }, "EchoUseJobQueue": { "value": false }, "EchoEmailFooterAddress": { "value": "" }, "EchoCluster": { "value": false }, "EchoSharedTrackingDB": { "value": false }, "EchoSharedTrackingCluster": { "value": false }, "EchoSeenTimeCacheType": { "value": null }, "EchoMaxUpdateCount": { "value": 2000 }, "EchoMaxMentionsCount": { "value": 50 }, "EchoMentionStatusNotifications": { "value": false }, "EchoMentionsOnMultipleSectionEdits": { "value": true }, "EchoMentionOnChanges": { "value": true }, "EchoBundleEmailInterval": { "value": 0 }, "DefaultNotifyTypeAvailability": { "value": { "web": true, "email": true } }, "NotifyTypeAvailabilityByCategory": { "value": { "system-noemail": { "web": true, "email": false }, "system-emailonly": { "web": false, "email": true }, "emailuser": { "web": true, "email": false }, "article-linked": { "web": true, "email": false }, "mention-failure": { "web": true, "email": false }, "mention-success": { "web": true, "email": false }, "thank-you-edit": { "web": true, "email": false } }, "merge_strategy": "array_plus_2d" }, "EchoNotifiers": { "value": { "web": "MediaWiki\\Extension\\Notifications\\Notifier::notifyWithNotification", "email": "MediaWiki\\Extension\\Notifications\\Notifier::notifyWithEmail" } }, "EchoAgentBlacklist": { "value": [] }, "EchoOnWikiBlacklist": { "value": "Echo-blacklist" }, "EchoPerUserBlacklist": { "value": false }, "EchoPerUserWhitelistFormat": { "value": "%s/Echo-whitelist" }, "EchoCrossWikiNotifications": { "value": false }, "EchoNotificationCategories": { "value": { "system": { "priority": 9, "no-dismiss": [ "all" ] }, "system-noemail": { "priority": 9, "no-dismiss": [ "all" ] }, "system-emailonly": { "priority": 9, "no-dismiss": [ "all" ] }, "user-rights": { "priority": 9, "tooltip": "echo-pref-tooltip-user-rights" }, "other": { "no-dismiss": [ "all" ] }, "edit-user-talk": { "priority": 1, "no-dismiss": [ "web" ], "tooltip": "echo-pref-tooltip-edit-user-talk" }, "edit-user-page": { "priority": 1, "tooltip": "echo-pref-tooltip-edit-user-page" }, "reverted": { "priority": 9, "tooltip": "echo-pref-tooltip-reverted" }, "article-linked": { "priority": 5, "tooltip": "echo-pref-tooltip-article-linked" }, "mention": { "priority": 4, "tooltip": "echo-pref-tooltip-mention" }, "mention-failure": { "priority": 4, "tooltip": "echo-pref-tooltip-mention-failure" }, "mention-success": { "priority": 4, "tooltip": "echo-pref-tooltip-mention-success" }, "emailuser": { "priority": 9, "tooltip": "echo-pref-tooltip-emailuser" }, "article-reminder": { "priority": 1, "tooltip": "echo-pref-tooltip-article-reminder" }, "thank-you-edit": { "priority": 9, "tooltip": "echo-pref-tooltip-thank-you-edit" }, "watchlist": { "priority": 5, "tooltip": "echo-pref-tooltip-watchlist" }, "minor-watchlist": { "priority": 6, "tooltip": "echo-pref-tooltip-minor-watchlist" }, "api-triggered": { "priority": 9, "tooltip": "echo-pref-tooltip-api-triggered" } }, "merge_strategy": "array_plus_2d" }, "EchoNotificationIcons": { "value": { "watchlist-progressive": { "path": { "ltr": "Echo/modules/icons/watchlist-ltr-progressive.svg", "rtl": "Echo/modules/icons/watchlist-rtl-progressive.svg" } }, "placeholder": { "path": "Echo/modules/icons/notice.svg" }, "chat": { "path": { "ltr": "Echo/modules/icons/speechBubbles-ltr-progressive.svg", "rtl": "Echo/modules/icons/speechBubbles-rtl-progressive.svg" } }, "edit": { "path": "Echo/modules/icons/edit-progressive.svg" }, "edit-user-page": { "path": "Echo/modules/icons/edit-user-page.svg" }, "edit-user-talk": { "path": "Echo/modules/icons/edit-user-talk-progressive.svg" }, "linked": { "path": "Echo/modules/icons/link-progressive.svg" }, "mention": { "path": "Echo/modules/icons/mention-progressive.svg" }, "mention-failure": { "path": "Echo/modules/icons/mention-failure.svg" }, "mention-success": { "path": "Echo/modules/icons/mention-success-constructive.svg" }, "mention-status-bundle": { "path": "Echo/modules/icons/mention-status-bundle-progressive.svg" }, "reviewed": { "path": "Echo/modules/icons/articleCheck-progressive.svg" }, "revert": { "path": "Echo/modules/icons/revert.svg" }, "user-rights": { "path": "Echo/modules/icons/user-rights-progressive.svg" }, "emailuser": { "path": "Echo/modules/icons/message-constructive.svg" }, "help": { "path": { "ltr": "Echo/modules/icons/helpNotice-ltr.svg", "rtl": "Echo/modules/icons/helpNotice-rtl.svg" } }, "global": { "path": "Echo/modules/icons/global-progressive.svg" }, "site": { "url": false }, "article-reminder": { "path": "Echo/modules/icons/global-progressive.svg" }, "robot": { "path": "Echo/modules/icons/robot.svg" } }, "merge_strategy": "array_plus_2d" }, "EchoSecondaryIcons": { "value": { "linked": { "path": "Echo/modules/icons/link-progressive.svg" }, "changes": { "path": "Echo/modules/icons/changes.svg" }, "thanks": { "path": { "ltr": "Echo/modules/icons/userTalk-ltr.svg", "rtl": "Echo/modules/icons/userTalk-rtl.svg" } }, "unbell": { "path": "Echo/modules/icons/unbell.svg" }, "userSpeechBubble": { "path": "Echo/modules/icons/user-speech-bubble.svg" } }, "merge_strategy": "array_plus_2d" }, "EchoNotifications": { "value": { "welcome": { "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ], "canNotifyAgent": true, "category": "system-noemail", "group": "positive", "section": "message", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoWelcomePresentationModel" }, "edit-user-page": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditUserPagePresentationModel", "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateUserPageOwner" ], "category": "edit-user-page", "group": "interactive", "section": "alert", "bundle": { "web": true, "email": false, "expandable": true }, "immediate": true }, "edit-user-talk": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditUserTalkPresentationModel", "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateTalkPageOwner" ], "category": "edit-user-talk", "group": "interactive", "section": "alert", "bundle": { "web": true, "email": false, "expandable": true }, "immediate": true }, "reverted": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoRevertedPresentationModel", "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "reverted-user-id" ] ] ], "category": "reverted", "group": "negative", "section": "alert" }, "page-linked": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoPageLinkedPresentationModel", "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateArticleCreator" ], "category": "article-linked", "group": "neutral", "section": "message", "bundle": { "web": true, "email": true, "expandable": true } }, "minor-watchlist-change": { "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateUsersWatchingTitle" ], "category": "minor-watchlist", "group": "interactive", "section": "message", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoWatchlistChangePresentationModel", "bundle": { "web": true, "email": true, "expandable": true } }, "watchlist-change": { "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateUsersWatchingTitle" ], "section": "message", "category": "watchlist", "group": "interactive", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoWatchlistChangePresentationModel", "bundle": { "web": true, "email": true, "expandable": true } }, "mention": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "mentioned-users" ] ] ], "category": "mention", "group": "interactive", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionPresentationModel" }, "mention-summary": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "mentioned-users" ] ] ], "category": "mention", "group": "interactive", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionInSummaryPresentationModel" }, "mention-failure": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ] ], "canNotifyAgent": true, "category": "mention-failure", "bundle": { "web": true, "expandable": true }, "group": "negative", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel" }, "mention-failure-too-many": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ] ], "canNotifyAgent": true, "category": "mention-failure", "group": "negative", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel" }, "mention-success": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ] ], "canNotifyAgent": true, "category": "mention-success", "bundle": { "web": true, "expandable": true }, "group": "positive", "section": "message", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel" }, "user-rights": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "user" ] ] ], "category": "user-rights", "group": "neutral", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoUserRightsPresentationModel" }, "emailuser": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEmailUserPresentationModel", "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "to-user-id" ] ] ], "category": "emailuser", "group": "neutral", "section": "alert" }, "foreign": { "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoForeignPresentationModel", "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ], "category": "foreign", "group": "positive", "section": "alert" }, "thank-you-edit": { "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ], "canNotifyAgent": true, "category": "thank-you-edit", "group": "positive", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditThresholdPresentationModel", "section": "message" }, "article-reminder": { "user-locators": [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateEventAgent" ], "canNotifyAgent": true, "category": "article-reminder", "group": "positive", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoArticleReminderPresentationModel", "section": "message" }, "api-alert": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "recipients" ] ] ], "canNotifyAgent": true, "category": "api-triggered", "group": "neutral", "section": "alert", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoManualPresentationModel" }, "api-notice": { "user-locators": [ [ "MediaWiki\\Extension\\Notifications\\UserLocator::locateFromEventExtra", [ "recipients" ] ] ], "canNotifyAgent": true, "category": "api-triggered", "group": "neutral", "section": "message", "presentation-model": "MediaWiki\\Extension\\Notifications\\Formatters\\EchoManualPresentationModel" } }, "merge_strategy": "array_plus_2d" }, "EchoCacheVersion": { "value": "1.12" }, "AllowArticleReminderNotification": { "value": false, "description": "This is a feature flag to the Article Reminder notification" }, "EchoMaxMentionsInEditSummary": { "value": 0, "description": "Maximum nubmer of users that will be notified that they were linked from an edit summary or 0 for no notifications" }, "EchoPollForUpdates": { "value": 0, "description": "This is the polling rate i.e. the time after which we check for notifications count on the client side. It also controls whether notification count will be displayed in browser title. If polling rate is 0 this means polling is disabled and notification count is also not shown in browser title" }, "EchoWatchlistNotifications": { "value": false, "description": "Feature flag to enable Echo notifications whenever a page on a user's watchlist is changed, replacing the built-in preference to send emails in that circumstance." }, "EchoWatchlistEmailOncePerPage": { "value": true, "description": "Whether to send email notifications each time a watched page is edited (if false) or only the first time the page is changed before being visited again by the user (if true)" }, "EchoEnableApiEvents": { "value": false, "description": "Whether to enable the API for creating custom Echo events" }, "EchoEnablePush": { "value": false, "description": "Whether to enable push notifications" }, "EchoPushServiceBaseUrl": { "value": false, "description": "Request endpoint URL for the push notification service" }, "EchoPushMaxSubscriptionsPerUser": { "value": 0, "description": "Maximum number of push subscriptions that may be stored in the DB at any given time for a single central user ID." } }, "manifest_version": 2, "AutoloadClasses": { "BackfillUnreadWikis": "maintenance/backfillUnreadWikis.php", "EchoAttributeManager": "includes/AttributeManager.php", "MediaWiki\\Extension\\Notifications\\AttributeManager": "includes/AttributeManager.php", "EchoCallbackIterator": "includes/Iterator/CallbackIterator.php", "MediaWiki\\Extension\\Notifications\\Iterator\\CallbackIterator": "includes/Iterator/CallbackIterator.php", "EchoDiscussionParser": "includes/DiscussionParser.php", "MediaWiki\\Extension\\Notifications\\DiscussionParser": "includes/DiscussionParser.php", "EchoEditUserTalkPresentationModel": "includes/Formatters/EchoEditUserTalkPresentationModel.php", "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEditUserTalkPresentationModel": "includes/Formatters/EchoEditUserTalkPresentationModel.php", "EchoEvent": "includes/Model/Event.php", "MediaWiki\\Extension\\Notifications\\Model\\Event": "includes/Model/Event.php", "EchoEventPresentationModel": "includes/Formatters/EchoEventPresentationModel.php", "MediaWiki\\Extension\\Notifications\\Formatters\\EchoEventPresentationModel": "includes/Formatters/EchoEventPresentationModel.php", "EchoMentionPresentationModel": "includes/Formatters/EchoMentionPresentationModel.php", "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionPresentationModel": "includes/Formatters/EchoMentionPresentationModel.php", "EchoMentionStatusPresentationModel": "includes/Formatters/EchoMentionStatusPresentationModel.php", "MediaWiki\\Extension\\Notifications\\Formatters\\EchoMentionStatusPresentationModel": "includes/Formatters/EchoMentionStatusPresentationModel.php", "EchoNotification": "includes/Model/Notification.php", "MediaWiki\\Extension\\Notifications\\Model\\Notification": "includes/Model/Notification.php", "EchoNotificationMapper": "includes/Mapper/NotificationMapper.php", "MediaWiki\\Extension\\Notifications\\Mapper\\NotificationMapper": "includes/Mapper/NotificationMapper.php", "EchoNotifier": "includes/Notifier.php", "MediaWiki\\Extension\\Notifications\\Notifier": "includes/Notifier.php", "EchoPresentationModelSection": "includes/Formatters/EchoPresentationModelSection.php", "MediaWiki\\Extension\\Notifications\\Formatters\\EchoPresentationModelSection": "includes/Formatters/EchoPresentationModelSection.php", "EchoUserLocator": "includes/UserLocator.php", "MediaWiki\\Extension\\Notifications\\UserLocator": "includes/UserLocator.php", "GenerateSampleNotifications": "maintenance/generateSampleNotifications.php", "MWEchoDbFactory": "includes/DbFactory.php", "MediaWiki\\Extension\\Notifications\\DbFactory": "includes/DbFactory.php", "ProcessEchoEmailBatch": "maintenance/processEchoEmailBatch.php", "RecomputeNotifCounts": "maintenance/recomputeNotifCounts.php", "RemoveInvalidNotification": "maintenance/removeInvalidNotification.php", "RemoveOrphanedEvents": "maintenance/removeOrphanedEvents.php", "EchoUpdatePerUserBlacklist": "maintenance/updatePerUserBlacklist.php", "EchoPush\\PushNotifier": "includes/Push/PushNotifier.php", "MediaWiki\\Extension\\Notifications\\Push\\PushNotifier": "includes/Push/PushNotifier.php" }, "AutoloadNamespaces": { "MediaWiki\\Extension\\Notifications\\": "includes/" }, "TestAutoloadClasses": { "MediaWiki\\Extension\\Notifications\\Test\\EchoAbstractMapperStub": "tests/phpunit/Mapper/EchoAbstractMapperStub.php", "MediaWiki\\Extension\\Notifications\\Test\\Integration\\Mapper\\EchoExecuteFirstArgumentStub": "tests/phpunit/Mapper/EchoExecuteFirstArgumentStub.php" }, "TestAutoloadNamespaces": { "MediaWiki\\Extension\\Notifications\\Test\\": "tests/phpunit/", "MediaWiki\\Extension\\Notifications\\Test\\Integration\\": "tests/phpunit/integration/" }, "ServiceWiringFiles": [ "ServiceWiring.php" ], "ConfigRegistry": { "Echo": "GlobalVarConfig::newInstance" }, "InstallerTasks": [ { "class": "MediaWiki\\Extension\\Notifications\\InstallSchemaTask" } ] }