jenkins-bot has submitted this change and it was merged. Change subject: Fix some JS issues ......................................................................
Fix some JS issues
Brought up by Krinkle in Icebfe86b (PS4):
* 'ok' and 'err' properties of Api are deprecated, use promise interface
* Use 'api' instead of 'Api'
* $( '<a>' ) instead of $( '<a/>' )
* Expected space after 'function' keyword
Change-Id: I0199db902174551bcf9269edafb1fef1df118b13
---
M modules/overlay/ext.echo.overlay.js
1 file changed, 149 insertions(+), 156 deletions(-)
Approvals:
Kaldari: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/overlay/ext.echo.overlay.js
b/modules/overlay/ext.echo.overlay.js
index f823d3b..0b104f8 100644
--- a/modules/overlay/ext.echo.overlay.js
+++ b/modules/overlay/ext.echo.overlay.js
@@ -1,10 +1,10 @@
/*global window:false */
-( function( $, mw ) {
+( function ( $, mw ) {
'use strict';
mw.echo.overlay = {
- 'updateCount' : function( newCount ) {
+ 'updateCount' : function ( newCount ) {
var $badge = $( '.mw-echo-notifications-badge' );
$badge.text( newCount );
// newCount could be '99+' or another string.
@@ -18,12 +18,12 @@
'configuration' : mw.config.get( 'wgEchoOverlayConfiguration' ),
- 'buildOverlay' : function( callback ) {
+ 'buildOverlay' : function ( callback ) {
var notificationLimit,
$overlay = $( '<div></div>' ).addClass(
'mw-echo-overlay' ),
$prefLink = $( '#pt-preferences a' ),
count = 0,
- Api = new mw.Api();
+ api = new mw.Api();
// Set notification limit based on height of the window
notificationLimit = Math.floor( ( $( window ).height()
- 134 ) / 90 );
@@ -34,180 +34,173 @@
notificationLimit = 8;
}
- Api.get( {
+ api.get( {
'action' : 'query',
'meta' : 'notifications',
'notformat' : 'flyout',
'notlimit' : notificationLimit,
'notprop' : 'index|list|count'
- }, {
- 'ok' : function( result ) {
- var notifications =
result.query.notifications,
- unread = [],
- unreadTotalCount =
result.query.notifications.count,
- $title = $( '<div
class="mw-echo-overlay-title"></div>' ),
- $ul = $( '<ul
class="mw-echo-notifications"></ul>' ),
- titleText = '',
- overflow = false,
- $overlayFooter,
- $markReadButton;
+ } ).done( function ( result ) {
+ var notifications = result.query.notifications,
+ unread = [],
+ unreadTotalCount =
result.query.notifications.count,
+ $title = $( '<div
class="mw-echo-overlay-title"></div>' ),
+ $ul = $( '<ul
class="mw-echo-notifications"></ul>' ),
+ titleText = '',
+ overflow = false,
+ $overlayFooter,
+ $markReadButton;
- if ( unreadTotalCount !== undefined ) {
- mw.echo.overlay.updateCount(
unreadTotalCount );
+ if ( unreadTotalCount !== undefined ) {
+ mw.echo.overlay.updateCount(
unreadTotalCount );
+ }
+ $ul.css( 'max-height', notificationLimit * 95 +
'px' );
+ $.each( notifications.index, function ( index,
id ) {
+ var data = notifications.list[id],
+ $li = $( '<li></li>' )
+ .data( 'details', data )
+ .data( 'id', id )
+ .attr(
'data-notification-category', data.category )
+ .addClass(
'mw-echo-notification' )
+ .append( data['*'] )
+ .appendTo( $ul );
+
+ if ( !data.read ) {
+ $li.addClass( 'mw-echo-unread'
);
+ unread.push( id );
}
- $ul.css( 'max-height',
notificationLimit * 95 + 'px' );
- $.each( notifications.index, function(
index, id ) {
- var data =
notifications.list[id],
- $li = $( '<li></li>' )
- .data(
'details', data )
- .data( 'id', id
)
- .attr(
'data-notification-category', data.category )
- .addClass(
'mw-echo-notification' )
- .append(
data['*'] )
- .appendTo( $ul
);
- if ( !data.read ) {
- $li.addClass(
'mw-echo-unread' );
- unread.push( id );
- }
+ // Set up each individual notification
with a close box and dismiss
+ // interface if it is dismissable.
+ if ( $li.find( '.mw-echo-dismiss'
).length ) {
+ mw.echo.setUpDismissability(
$li );
+ }
+ } );
- // Set up each individual
notification with a close box and dismiss
- // interface if it is
dismissable.
- if ( $li.find(
'.mw-echo-dismiss' ).length ) {
-
mw.echo.setUpDismissability( $li );
- }
- } );
-
- if ( notifications.index.length > 0 ) {
- if ( isNaN( unreadTotalCount )
|| unreadTotalCount > unread.length ) {
- titleText = mw.msg(
'echo-overlay-title-overflow', unread.length, unreadTotalCount );
- overflow = true;
- } else {
- titleText = mw.msg(
'echo-overlay-title' );
- }
+ if ( notifications.index.length > 0 ) {
+ if ( isNaN( unreadTotalCount ) ||
unreadTotalCount > unread.length ) {
+ titleText = mw.msg(
'echo-overlay-title-overflow', unread.length, unreadTotalCount );
+ overflow = true;
} else {
- titleText = mw.msg( 'echo-none'
);
+ titleText = mw.msg(
'echo-overlay-title' );
}
+ } else {
+ titleText = mw.msg( 'echo-none' );
+ }
- $markReadButton = $( '<button/>' )
- .addClass( 'mw-ui-button' )
- .attr( 'id',
'mw-echo-mark-read-button' )
- .text( mw.msg(
'echo-mark-all-as-read' ) )
- .click( function( e ) {
- e.preventDefault();
- Api.get( {
- 'action' :
'query',
- 'meta' :
'notifications',
-
'notmarkallread' : true,
- 'notprop' :
'count'
- }, {
- 'ok' :
function( result ) {
- if (
result.query.notifications.count !== undefined ) {
-
count = result.query.notifications.count;
-
mw.echo.overlay.updateCount( count );
-
// Reset header to 'Notifications'
-
$( '#mw-echo-overlay-title-text').msg( 'echo-overlay-title' );
- }
- }
- } );
- } );
-
- // If there are more unread
notifications than can fit in the overlay,
- // but fewer than the maximum count,
show the 'mark all as read' button.
- // The only reason we limit it to the
maximum is to prevent expensive
- // database updates. If the count is
more than the maximum, it could
- // be thousands.
- if ( overflow &&
- !isNaN( unreadTotalCount ) &&
- unreadTotalCount <
mw.echo.overlay.configuration['max-notification-count']
- ) {
- // Add the 'mark all as read'
button to the title area
- $title.append( $markReadButton
);
- // Display a feedback link if there is
no 'mark read' button
- } else {
- $( '<a>' )
- .attr( 'href', mw.config.get(
'wgEchoFeedbackPage' ) + '?c=flyout' )
- .attr( 'id',
'mw-echo-overlay-feedback-link' )
- .attr( 'target', '_blank' )
- .text( mw.msg( 'echo-feedback'
) )
- .appendTo( $title );
- }
-
- // Add the header to the title area
- $( '<div/>' )
- .attr( 'id',
'mw-echo-overlay-title-text' )
- .html( titleText )
- .appendTo( $title );
-
- // Add help button
- $( '<a/>' )
- .attr( 'href', mw.config.get(
'wgEchoHelpPage' ) )
- .attr( 'title', mw.msg(
'echo-more-info' ) )
- .attr( 'id',
'mw-echo-overlay-moreinfo-link' )
- .attr( 'target', '_blank' )
- .appendTo( $title );
-
- // Insert the title area into the
overlay
- $title.appendTo( $overlay );
-
- if ( $ul.find( 'li' ).length ) {
- $ul.appendTo( $overlay );
- }
-
- $overlayFooter = $( '<div/>' )
- .attr( 'id',
'mw-echo-overlay-footer' );
-
- // add link to notifications archive
- $overlayFooter.append(
- $( '<a>' )
- .attr( 'id',
'mw-echo-overlay-link' )
- .attr( 'href',
mw.util.wikiGetlink( 'Special:Notifications' ) )
- .text( mw.msg(
'echo-overlay-link' ) )
- );
-
- // add link to notification preferences
- $overlayFooter.append(
- $prefLink
- .clone()
- .attr( 'id',
'mw-echo-overlay-pref-link' )
- .attr( 'href',
$prefLink.attr( 'href' ) + '#mw-prefsection-echo' )
- );
-
- $overlay.append( $overlayFooter );
-
- callback( $overlay );
-
- // only need to mark as read if there
is unread item
- if ( unread.length > 0 ) {
- Api.get( {
+ $markReadButton = $( '<button>' )
+ .addClass( 'mw-ui-button' )
+ .attr( 'id', 'mw-echo-mark-read-button'
)
+ .text( mw.msg( 'echo-mark-all-as-read'
) )
+ .click( function ( e ) {
+ e.preventDefault();
+ api.get( {
'action' : 'query',
'meta' :
'notifications',
- 'notmarkread' :
unread.join( '|' ),
+ 'notmarkallread' : true,
'notprop' : 'count'
- }, {
- 'ok' : function( result
) {
- if (
result.query.notifications.count !== undefined ) {
- count =
result.query.notifications.count;
-
mw.echo.overlay.updateCount( count );
- }
+ } ).done( function ( result ) {
+ if (
result.query.notifications.count !== undefined ) {
+ count =
result.query.notifications.count;
+
mw.echo.overlay.updateCount( count );
+ // Reset header
to 'Notifications'
+ $(
'#mw-echo-overlay-title-text').msg( 'echo-overlay-title' );
}
} );
- }
- },
- 'err' : function() {
- window.location.href = $(
'#pt-notifications a' ).attr( 'href' );
+ } );
+
+ // If there are more unread notifications than
can fit in the overlay,
+ // but fewer than the maximum count, show the
'mark all as read' button.
+ // The only reason we limit it to the maximum
is to prevent expensive
+ // database updates. If the count is more than
the maximum, it could
+ // be thousands.
+ if ( overflow &&
+ !isNaN( unreadTotalCount ) &&
+ unreadTotalCount <
mw.echo.overlay.configuration['max-notification-count']
+ ) {
+ // Add the 'mark all as read' button to
the title area
+ $title.append( $markReadButton );
+ // Display a feedback link if there is no 'mark
read' button
+ } else {
+ $( '<a>' )
+ .attr( 'href', mw.config.get(
'wgEchoFeedbackPage' ) + '?c=flyout' )
+ .attr( 'id',
'mw-echo-overlay-feedback-link' )
+ .attr( 'target', '_blank' )
+ .text( mw.msg( 'echo-feedback' ) )
+ .appendTo( $title );
}
+
+ // Add the header to the title area
+ $( '<div>' )
+ .attr( 'id', 'mw-echo-overlay-title-text' )
+ .html( titleText )
+ .appendTo( $title );
+
+ // Add help button
+ $( '<a>' )
+ .attr( 'href', mw.config.get(
'wgEchoHelpPage' ) )
+ .attr( 'title', mw.msg(
'echo-more-info' ) )
+ .attr( 'id',
'mw-echo-overlay-moreinfo-link' )
+ .attr( 'target', '_blank' )
+ .appendTo( $title );
+
+ // Insert the title area into the overlay
+ $title.appendTo( $overlay );
+
+ if ( $ul.find( 'li' ).length ) {
+ $ul.appendTo( $overlay );
+ }
+
+ $overlayFooter = $( '<div>' )
+ .attr( 'id', 'mw-echo-overlay-footer' );
+
+ // add link to notifications archive
+ $overlayFooter.append(
+ $( '<a>' )
+ .attr( 'id',
'mw-echo-overlay-link' )
+ .attr( 'href',
mw.util.wikiGetlink( 'Special:Notifications' ) )
+ .text( mw.msg(
'echo-overlay-link' ) )
+ );
+
+ // add link to notification preferences
+ $overlayFooter.append(
+ $prefLink
+ .clone()
+ .attr( 'id',
'mw-echo-overlay-pref-link' )
+ .attr( 'href', $prefLink.attr(
'href' ) + '#mw-prefsection-echo' )
+ );
+
+ $overlay.append( $overlayFooter );
+
+ callback( $overlay );
+
+ // only need to mark as read if there is unread
item
+ if ( unread.length > 0 ) {
+ api.get( {
+ '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() {
+ $( function () {
var $link = $( '#pt-notifications a' );
if ( ! $link.length ) {
return;
}
- $link.click( function( e ) {
+ $link.click( function ( e ) {
var $target, $overlay;
e.preventDefault();
@@ -224,27 +217,27 @@
if ( $overlay.length ) {
$overlay.fadeOut( 'fast',
- function() { $overlay.remove(); }
+ function () { $overlay.remove(); }
);
return;
}
$overlay = mw.echo.overlay.buildOverlay(
- function( $overlay ) {
+ function ( $overlay ) {
$overlay
.hide()
.appendTo( $(
'#pt-notifications' ) );
// Create the pokey (aka chevron)
- $( '.mw-echo-overlay' ).before( $(
'<div/>' ).addClass( 'mw-echo-overlay-pokey' ) );
+ $( '.mw-echo-overlay' ).before( $(
'<div>' ).addClass( 'mw-echo-overlay-pokey' ) );
// Show the notifications overlay
$overlay.show();
} );
} );
- $( 'body' ).click( function( e ) {
+ $( '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(); }
+ function () { $( this ).remove(); }
);
}
} );
--
To view, visit https://gerrit.wikimedia.org/r/62518
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0199db902174551bcf9269edafb1fef1df118b13
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Alex Monk <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Kaldari <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
