__DIR__ . '/modules', 'remoteExtPath' => 'Echo/modules', ); $wgResourceModules += array( 'ext.echo.ui' => $echoResourceTemplate + array( 'scripts' => array( 'ooui/mw.echo.ui.js', 'ooui/mw.echo.ui.PlaceholderOptionWidget.js', 'ooui/mw.echo.ui.NotificationsWidget.js', 'ooui/mw.echo.ui.NotificationOptionWidget.js', 'ooui/mw.echo.ui.BadgeLinkWidget.js', 'ooui/mw.echo.ui.NotificationBadgeWidget.js' ), 'styles' => array( 'ooui/styles/mw.echo.ui.NotificationsWidget.less', 'ooui/styles/mw.echo.ui.NotificationOptionWidget.less', 'ooui/styles/mw.echo.ui.NotificationBadgeWidget.less' ), 'skinStyles' => array( 'monobook' => array( 'ooui/styles/mw.echo.ui.NotificationsWidget.monobook.less', 'ooui/styles/mw.echo.ui.NotificationBadgeWidget.monobook.less' ), 'modern' => array( 'ooui/styles/mw.echo.ui.NotificationOptionWidget.modern.less', 'ooui/styles/mw.echo.ui.NotificationBadgeWidget.modern.less' ) ), 'dependencies' => array( 'ext.echo.styles.badge', 'ext.echo.styles.notifications', 'ext.echo.dm', 'oojs-ui', 'ext.echo.logger', 'mediawiki.api', 'mediawiki.jqueryMsg', 'mediawiki.language', ), 'messages' => array( 'echo-overlay-link', 'echo-mark-all-as-read', 'echo-more-info', 'echo-feedback', 'echo-notification-alert', 'echo-notification-message', 'echo-notification-alert-text-only', 'echo-notification-message-text-only', 'echo-email-batch-bullet', 'echo-api-failure', 'echo-notification-placeholder', 'tooltip-pt-notifications-alert', 'tooltip-pt-notifications-message', 'mytalk', 'mypreferences' ), 'targets' => array( 'desktop', 'mobile' ), ), 'ext.echo.dm' => $echoResourceTemplate + array( 'scripts' => array( 'viewmodel/mw.echo.dm.js', 'viewmodel/mw.echo.dm.NotificationItem.js', 'viewmodel/mw.echo.dm.List.js', 'viewmodel/mw.echo.dm.NotificationList.js', 'viewmodel/mw.echo.dm.NotificationsModel.js', ), 'dependencies' => array( 'oojs' ), 'targets' => array( 'desktop', 'mobile' ), ), 'ext.echo.base' => array( // This is a dummy module for backwards compatibility. // Most extensions that require ext.echo.base actually need // the logger. They will have to be adjusted to use the new // logger functionality, however. // This module is mainly here to make sure other extensions // that rely on ext.echo.base don't explode, and that CI lets // us merge this while fixing the main extensions that require // to be changed due to the new structure. 'targets' => array( 'desktop', 'mobile' ), 'dependencies' => array( 'ext.echo.logger' ) ), // ext.echo.logger is registered in EchoHooks::onResourceLoaderRegisterModules 'ext.echo.init' => $echoResourceTemplate + array( 'scripts' => array( 'ext.echo.init.js', ), 'targets' => array( 'desktop' ), ), // Base no-js styles 'ext.echo.styles.badge' => $echoResourceTemplate + array( 'position' => 'top', 'styles' => array( 'nojs/mw.echo.badge.less', ), 'targets' => array( 'desktop', 'mobile' ), ), // Styles for individual notification entries in flyout and Special:Notifications 'ext.echo.styles.notifications' => $echoResourceTemplate + array( 'position' => 'top', 'styles' => array( 'nojs/mw.echo.notifications.less' ), 'targets' => array( 'desktop', 'mobile' ), ), 'ext.echo.styles.alert' => $echoResourceTemplate + array( 'position' => 'top', 'styles' => array( 'nojs/mw.echo.alert.less', ), 'skinStyles' => array( 'monobook' => array( 'nojs/mw.echo.alert.monobook.less', ), 'modern' => array( 'nojs/mw.echo.alert.modern.less', ), ), 'targets' => array( 'desktop', 'mobile' ), ), 'ext.echo.styles.special' => $echoResourceTemplate + array( 'position' => 'top', 'styles' => array( 'nojs/mw.echo.special.less', ), 'targets' => array( 'desktop', 'mobile' ), ), 'ext.echo.special' => $echoResourceTemplate + array( 'scripts' => array( 'special/ext.echo.special.js', ), 'dependencies' => array( 'mediawiki.ui.button', 'mediawiki.api', 'ext.echo.ui', ), 'messages' => array( 'echo-load-more-error', 'echo-more-info', 'echo-feedback', ), ), // HACK: OOUI has an icon pack for these, but it's unhelpfully large and we don't // want to load more as render-blocking CSS than we have to (T112401) 'ext.echo.badgeicons' => $echoResourceTemplate + array( 'class' => 'ResourceLoaderOOUIImageModule', 'position' => 'top', 'name' => 'badgeicons', 'rootPath' => 'icons', 'selectorWithoutVariant' => '.oo-ui-icon-{name}', 'selectorWithVariant' => '.oo-ui-image-{variant}.oo-ui-icon-{name}', ), ); unset( $echoResourceTemplate );