mediawiki-extensions-Echo/modules/viewmodel/mw.echo.dm.NotificationList.js
Moriel Schottlender 1ac72cc01a Split alerts and messages in Echo
Split the notifications into 'alert' and 'message' badget with two
different flyouts. Also clean up styling and module behavior.

** Depends on ooui change Id4bbe14ba0bf6c for footers in popups.
** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in
   inverted icons.

** MobileFrontend must also be updated to support the new modules
   in this patch  I168f485d6e54cb4067

In this change:
* Split notifcations into alert and messages and display those in
  two different badges.
* Create two separate flyout/popups for each category with their
  notifications.
* Create a view-model to control notification state and emit events
  for both the popup and the badge to intercept and react to.
* Clean up module load and distribution:
  * Create an ext.echo.ui module for javascript-ui support and ooui
    widgets.
  * Create an ext.echo.nojs module that unifies all base classes that
    are needed for both nojs and js support, that the js version
    builds upon.
  * Create a separate ext.echo.logger module as a singleton that can
    be called to perform all logging.
* Clean up style uses
  * Move the special page LESS file into nojs module so all styles
    load properly even in nojs mode.
  * Transfer some of the styling from JS to LESS for consistency.
  * Make the 'read more' button load already with the styles it
    needs to look like a button, since its behavior is similar in
    nojs and js vesions, but before its classes were applied only
    by the js, making it inconsistent and also making its appearance
    'jump' from a link to a button.
* Delete and clean up all old and unused files.
* Moved 'Help.png' icon from modules/overlay to modules/icons for
  later use.

Bug: T108190
Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-09-02 15:36:37 -07:00

27 lines
595 B
JavaScript

( function ( mw ) {
/**
* Notification list
*
* @class
* @mixins OO.EventEmitter
* @mixins mw.echo.dm.List
*
* @constructor
* @param {Object} [config] Configuration object
*/
mw.echo.dm.NotificationList = function MwEchoDmNotificationList() {
// Mixin constructor
OO.EventEmitter.call( this );
// Mixin constructor
mw.echo.dm.List.call( this );
};
/* Initialization */
OO.initClass( mw.echo.dm.NotificationList );
OO.mixinClass( mw.echo.dm.NotificationList, OO.EventEmitter );
OO.mixinClass( mw.echo.dm.NotificationList, mw.echo.dm.List );
} )( mediaWiki );