' )
.attr( 'id', 'mw-echo-overlay-footer' );
// add link to notifications archive
$overlayFooter.append(
$( '
' )
.attr( 'id', 'mw-echo-overlay-link' )
.addClass( 'mw-echo-grey-link' )
.attr( 'href', mw.util.wikiGetlink( 'Special:Notifications' ) )
.text( mw.msg( 'echo-overlay-link' ) )
.click( function () {
mw.echo.logInteraction( 'ui-archive-link-click', 'flyout' );
} )
.hover(
function() {
$( this ).removeClass( 'mw-echo-grey-link' );
},
function() {
$( this ).addClass( 'mw-echo-grey-link' );
}
)
);
// add link to notification preferences
$overlayFooter.append(
$prefLink
.clone()
.attr( 'id', 'mw-echo-overlay-pref-link' )
.addClass( 'mw-echo-grey-link' )
.attr( 'href', $prefLink.attr( 'href' ) + '#mw-prefsection-echo' )
.click( function () {
mw.echo.logInteraction( 'ui-prefs-click', 'flyout' );
} )
.hover(
function() {
$( this ).removeClass( 'mw-echo-grey-link' );
},
function() {
$( this ).addClass( 'mw-echo-grey-link' );
}
)
);
$overlay.append( $overlayFooter );
callback( $overlay );
// only need to mark as read if there is unread item
if ( unread.length > 0 ) {
api.post( {
'action' : 'query',
'meta' : 'notifications',
'notmarkread' : unread.join( '|' ),
'notprop' : 'count'
} ).done( function ( result ) {
if ( result.query.notifications.count !== undefined ) {
count = result.query.notifications.count;
mw.echo.overlay.updateCount( count );
}
} );
}
} ).fail( function () {
window.location.href = $( '#pt-notifications a' ).attr( 'href' );
} );
}
};
$( function () {
var $link = $( '#pt-notifications a' );
if ( ! $link.length ) {
return;
}
$link.click( function ( e ) {
var $target, $overlay;
e.preventDefault();
// log the badge click
mw.echo.logInteraction( 'ui-badge-link-click' );
$target = $( e.target );
// If the user clicked on the overlay or any child,
// ignore the click
if ( $target.hasClass( 'mw-echo-overlay' ) ||
$target.is( 'mw-echo-overlay *' )
) {
return;
}
$overlay = $( '.mw-echo-overlay' );
if ( $overlay.length ) {
$overlay.fadeOut( 'fast',
function () { $overlay.remove(); }
);
return;
}
$overlay = mw.echo.overlay.buildOverlay(
function ( $overlay ) {
$overlay
.hide()
.appendTo( $( '#pt-notifications' ) );
// Create the pokey (aka chevron)
$( '.mw-echo-overlay' ).before( $( '' ).addClass( 'mw-echo-overlay-pokey' ) );
mw.hook( 'ext.echo.overlay.beforeShowingOverlay' ).fire( $overlay );
// Show the notifications overlay
$overlay.show();
} );
} );
$( 'body' ).click( function ( e ) {
if ( ! $( e.target ).is( '.mw-echo-overlay, .mw-echo-overlay *, .mw-echo-overlay-pokey' ) ) {
$( '.mw-echo-overlay, .mw-echo-overlay-pokey' ).fadeOut( 'fast',
function () { $( this ).remove(); }
);
}
} );
} );
} )( jQuery, mediaWiki );