mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-25 00:05:29 +00:00
Merge "Rename MobileNotificationsWrapper to NotificationsWrapper"
This commit is contained in:
commit
ad27c38cae
|
@ -55,9 +55,11 @@ $wgResourceModules += array(
|
|||
),
|
||||
'targets' => array( 'desktop' ),
|
||||
),
|
||||
// TODO: Delete this module and the file. It's only needed for MobileFrontend
|
||||
// to not crash while we are renaming NotificationsWrapper
|
||||
'ext.echo.ui.mobile' => $echoResourceTemplate + array(
|
||||
'scripts' => array(
|
||||
'ooui/mobile/mw.echo.ui.MobileNotificationsWrapper.js',
|
||||
'ooui/mobile/mw.echo.ui.MobileNotificationsWrapper.js'
|
||||
),
|
||||
'dependencies' => array(
|
||||
'ext.echo.ui',
|
||||
|
@ -75,6 +77,7 @@ $wgResourceModules += array(
|
|||
'ooui/mw.echo.ui.ActionMenuPopupWidget.js',
|
||||
'ooui/mw.echo.ui.MenuItemWidget.js',
|
||||
'ooui/mw.echo.ui.FooterNoticeWidget.js',
|
||||
'ooui/mw.echo.ui.NotificationsWrapper.js',
|
||||
),
|
||||
'styles' => array(
|
||||
'ooui/styles/mw.echo.ui.overlay.less',
|
||||
|
@ -261,7 +264,7 @@ $wgResourceModules += array(
|
|||
'dependencies' => array(
|
||||
'mediawiki.ui.button',
|
||||
'mediawiki.api',
|
||||
'ext.echo.ui.desktop',
|
||||
'ext.echo.ui',
|
||||
),
|
||||
'messages' => array(
|
||||
'echo-load-more-error',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
( function ( mw ) {
|
||||
/**
|
||||
* Mobile wrapper for the notifications widget, for mobile view.
|
||||
* Wapper for the notifications widget, for view outside the popup.
|
||||
*
|
||||
* @class
|
||||
* @extends OO.ui.Widget
|
||||
|
|
82
modules/ooui/mw.echo.ui.NotificationsWrapper.js
Normal file
82
modules/ooui/mw.echo.ui.NotificationsWrapper.js
Normal file
|
@ -0,0 +1,82 @@
|
|||
( function ( mw ) {
|
||||
/**
|
||||
* Wapper for the notifications widget, for view outside the popup.
|
||||
*
|
||||
* @class
|
||||
* @extends OO.ui.Widget
|
||||
* @mixins OO.ui.mixin.PendingElement
|
||||
*
|
||||
* @constructor
|
||||
* @param {mw.echo.dm.NotificationsModel} model Notifications view model
|
||||
* @param {Object} [config] Configuration object
|
||||
*/
|
||||
mw.echo.ui.NotificationsWrapper = function MwEchoUiNotificationsWrapper( model, config ) {
|
||||
config = config || {};
|
||||
|
||||
// Parent constructor
|
||||
mw.echo.ui.NotificationsWrapper.parent.call( this, config );
|
||||
|
||||
// Mixin constructor
|
||||
OO.ui.mixin.PendingElement.call( this, config );
|
||||
|
||||
this.model = model;
|
||||
|
||||
this.notificationsWidget = new mw.echo.ui.NotificationsWidget(
|
||||
this.model,
|
||||
{
|
||||
markReadWhenSeen: false,
|
||||
$overlay: config.$overlay,
|
||||
label: mw.msg( 'notifications' ),
|
||||
icon: 'bell'
|
||||
}
|
||||
);
|
||||
|
||||
// Events
|
||||
this.model.connect( this, {
|
||||
unreadChange: [ 'emit', 'unreadChange' ],
|
||||
allRead: [ 'emit', 'unreadChange', 0 ]
|
||||
} );
|
||||
|
||||
// Initialize
|
||||
this.$element
|
||||
.append( this.notificationsWidget.$element );
|
||||
};
|
||||
|
||||
/* Initialization */
|
||||
|
||||
OO.inheritClass( mw.echo.ui.NotificationsWrapper, OO.ui.Widget );
|
||||
OO.mixinClass( mw.echo.ui.NotificationsWrapper, OO.ui.mixin.PendingElement );
|
||||
|
||||
/* Events */
|
||||
|
||||
/**
|
||||
* @event finishLoading
|
||||
* Notifications have successfully finished being processed and are fully loaded
|
||||
*/
|
||||
|
||||
/**
|
||||
* @event unreadChange
|
||||
* @param {number} Number of unread messages
|
||||
* There was a change in the number of unread notifications
|
||||
*/
|
||||
|
||||
/* Methods */
|
||||
|
||||
/**
|
||||
* Populate the notifications panel
|
||||
*
|
||||
* @return {jQuery.Promise} A promise that is resolved when all notifications
|
||||
* were fetched from the API and added to the model and UI.
|
||||
*/
|
||||
mw.echo.ui.NotificationsWrapper.prototype.populate = function () {
|
||||
var widget = this;
|
||||
|
||||
this.pushPending();
|
||||
return this.model.fetchNotifications( true )
|
||||
.always( function () {
|
||||
widget.popPending();
|
||||
widget.emit( 'finishLoading' );
|
||||
widget.promiseRunning = false;
|
||||
} );
|
||||
};
|
||||
} )( mediaWiki );
|
Loading…
Reference in a new issue