summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'MLEB/Translate/resources/js/ext.translate.messagetable.js')
-rw-r--r--MLEB/Translate/resources/js/ext.translate.messagetable.js116
1 files changed, 49 insertions, 67 deletions
diff --git a/MLEB/Translate/resources/js/ext.translate.messagetable.js b/MLEB/Translate/resources/js/ext.translate.messagetable.js
index 9bea2c33..20da0930 100644
--- a/MLEB/Translate/resources/js/ext.translate.messagetable.js
+++ b/MLEB/Translate/resources/js/ext.translate.messagetable.js
@@ -76,7 +76,7 @@
$filterInput.prop( 'placeholder', mw.msg( 'tux-message-filter-placeholder' ) );
}
- $filterInput.on( 'textchange', $.debounce( 250, function () {
+ $filterInput.on( 'input', $.debounce( 250, function () {
messageTable.search( $filterInput.val() );
} ) );
@@ -142,9 +142,7 @@
* @param {Object} message
*/
addTranslate: function ( message ) {
- var $message,
- targetLangDir, targetLangAttrib,
- targetLangCode = this.$container.data( 'targetlangcode' ),
+ var targetLangCode = this.$container.data( 'targetlangcode' ),
sourceLangCode = this.$container.data( 'sourcelangcode' ),
sourceLangDir = $.uls.data.getDir( sourceLangCode ),
status = message.properties.status,
@@ -175,6 +173,7 @@
statusMsg = 'tux-status-' + status;
}
+ var targetLangDir, targetLangAttrib;
if ( targetLangCode === mw.config.get( 'wgTranslateDocumentationLanguageCode' ) ) {
targetLangAttrib = mw.config.get( 'wgContentLanguage' );
targetLangDir = $.uls.data.getDir( targetLangAttrib );
@@ -183,7 +182,7 @@
targetLangDir = this.$container.data( 'targetlangdir' );
}
- $message = $( '<div>' )
+ var $message = $( '<div>' )
.addClass( 'row message tux-message-item ' + status )
.append(
$( '<div>' )
@@ -251,9 +250,7 @@
* @param {Object} message
*/
addProofread: function ( message ) {
- var $message, $icon;
-
- $message = $( '<div>' )
+ var $message = $( '<div>' )
.addClass( 'row tux-message tux-message-proofread' );
this.$container.append( $message );
@@ -263,7 +260,7 @@
targetlangcode: this.$container.data( 'targetlangcode' )
} );
- $icon = $message.find( '.tux-proofread-action' );
+ var $icon = $message.find( '.tux-proofread-action' );
if ( $icon.length === 0 ) {
return;
}
@@ -285,14 +282,18 @@
} );
setTimeout( function () {
- var offset, $visibleIcon = $( '.autotooltip:visible' );
+ var $visibleIcon = $( '.autotooltip:visible' );
if ( !$visibleIcon.length ) {
return;
}
- offset = $visibleIcon.offset();
+ var offset = $visibleIcon.offset();
tooltip.$element.appendTo( document.body );
- tooltip.toggle( true ).toggleClipping( false ).togglePositioning( false );
+ tooltip
+ .toggle( true )
+ .toggleClipping( false )
+ .togglePositioning( false )
+ .setAnchorEdge( 'top' );
tooltip.$element.css( {
top: offset.top + $visibleIcon.outerHeight() + 5,
left: offset.left + $visibleIcon.outerWidth() - tooltip.$element.width() / 2 - 15
@@ -311,9 +312,7 @@
* @param {Object} message
*/
addPageModeMessage: function ( message ) {
- var $message;
-
- $message = $( '<div>' )
+ var $message = $( '<div>' )
.addClass( 'row tux-message tux-message-pagemode' );
this.$container.append( $message );
@@ -330,8 +329,7 @@
* @param {string} query
*/
search: function ( query ) {
- var $note, $button, $result,
- resultCount = 0,
+ var resultCount = 0,
matcher = new RegExp( '(^|\\s|\\b)' + escapeRegex( query ), 'gi' );
this.$container.find( itemsClass[ this.mode ] ).each( function () {
@@ -348,12 +346,12 @@
}
} );
- $result = this.$container.find( '.tux-message-filter-result' );
+ var $result = this.$container.find( '.tux-message-filter-result' );
if ( !$result.length ) {
- $note = $( '<div>' )
+ var $note = $( '<div>' )
.addClass( 'advanced-search' );
- $button = $( '<button>' )
+ var $button = $( '<button>' )
.addClass( 'mw-ui-button' )
.text( mw.msg( 'tux-message-filter-advanced-button' ) );
@@ -383,12 +381,13 @@
},
resize: function () {
- var actualWidth = 0, $messageSelector = $( '.row.tux-message-selector' );
+ var $messageSelector = $( '.row.tux-message-selector' );
if ( $messageSelector.is( ':hidden' ) ) {
return;
}
+ var actualWidth = 0;
// Calculate the total width required for the filters
$messageSelector.children( 'li' ).each( function () {
actualWidth += $( this ).outerWidth( true );
@@ -458,9 +457,7 @@
* @param {number} [limit] Only load this many messages and then stop even if there is more.
*/
load: function ( limit ) {
- var remaining,
- query,
- self = this,
+ var self = this,
offset = this.$loader.data( 'offset' ),
pageSize = limit || this.$loader.data( 'pagesize' );
@@ -484,8 +481,7 @@
pageSize,
this.settings.filter
).done( function ( result ) {
- var messages = result.query.messagecollection,
- state, i;
+ var messages = result.query.messagecollection;
if ( !self.loading ) {
// reject. This was cancelled.
@@ -493,7 +489,7 @@
}
if ( result.warnings ) {
- for ( i = 0; i !== result.warnings.length; i++ ) {
+ for ( var i = 0; i !== result.warnings.length; i++ ) {
if ( result.warnings[ i ].code === 'translate-language-disabled-source' ) {
self.handleLoadErrors( [ result.warnings[ i ] ] );
break;
@@ -519,7 +515,7 @@
}
} );
- state = result.query.metadata && result.query.metadata.state;
+ var state = result.query.metadata && result.query.metadata.state;
$( '.tux-workflow' ).workflowselector(
self.settings.group,
self.settings.language,
@@ -527,7 +523,7 @@
).removeClass( 'hide' );
// Dynamically loaded messages should pass the search filter if present.
- query = $( '.tux-message-filter-box' ).val();
+ var query = $( '.tux-message-filter-box' ).val();
if ( query ) {
self.search( query );
@@ -544,7 +540,7 @@
} else {
self.$loader.data( 'offset', result[ 'query-continue' ].messagecollection.mcoffset );
- remaining = result.query.metadata.remaining;
+ var remaining = result.query.metadata.remaining;
self.$loaderInfo.text(
mw.msg( 'tux-messagetable-more-messages', remaining )
@@ -680,7 +676,7 @@
$actions.append( messageTable.otherActionButton(
'tux-empty-list-translated-action',
function () {
- mw.translate.changeFilter( $( '.tux-tab-untranslated' ).trigger( 'click' ) );
+ $( '.tux-tab-untranslated' ).trigger( 'click' );
} )
);
} else {
@@ -717,10 +713,7 @@
switchMode: function ( mode ) {
var messageTable = this,
filter = this.settings.filter,
- userId = mw.config.get( 'wgUserId' ),
- $tuxTabUntranslated,
- $tuxTabUnproofread,
- $hideTranslatedButton;
+ userId = mw.config.get( 'wgUserId' );
messageTable.$actionBar.find( '.tux-view-switcher .down' ).removeClass( 'down' );
if ( mode === 'translate' ) {
@@ -742,9 +735,9 @@
messageTable.$container.empty();
$( '.translate-tooltip' ).remove();
- $tuxTabUntranslated = $( '.tux-message-selector > .tux-tab-untranslated' );
- $tuxTabUnproofread = $( '.tux-message-selector > .tux-tab-unproofread' );
- $hideTranslatedButton = messageTable.$actionBar.find( '.tux-editor-clear-translated' );
+ var $tuxTabUntranslated = $( '.tux-message-selector > .tux-tab-untranslated' );
+ var $tuxTabUnproofread = $( '.tux-message-selector > .tux-tab-unproofread' );
+ var $hideTranslatedButton = messageTable.$actionBar.find( '.tux-editor-clear-translated' );
if ( messageTable.mode === 'proofread' ) {
$tuxTabUntranslated.addClass( 'hide' );
@@ -798,30 +791,20 @@
* The scroll handler
*/
scroll: function () {
- var $window,
- isActionBarFloating,
- needsTableHeaderFloat, needsTableHeaderStick,
- needsActionBarFloat, needsActionBarStick,
- windowScrollTop, windowScrollBottom,
- messageTableRelativePos,
- messageListOffset,
- messageListHeight, messageListWidth,
- messageListTop, messageListBottom;
-
- $window = $( window );
-
- windowScrollTop = $window.scrollTop();
- windowScrollBottom = windowScrollTop + $window.height();
- messageListOffset = this.$container.offset();
- messageListHeight = this.$container.height();
- messageListTop = messageListOffset.top;
- messageListBottom = messageListTop + messageListHeight;
- messageListWidth = this.$container.width();
+ var $window = $( window );
+
+ var windowScrollTop = $window.scrollTop();
+ var windowScrollBottom = windowScrollTop + $window.height();
+ var messageListOffset = this.$container.offset();
+ var messageListHeight = this.$container.height();
+ var messageListTop = messageListOffset.top;
+ var messageListBottom = messageListTop + messageListHeight;
+ var messageListWidth = this.$container.width();
// Header:
- messageTableRelativePos = messageListTop - this.$header.height() - windowScrollTop;
- needsTableHeaderFloat = messageTableRelativePos + 10 < 0;
- needsTableHeaderStick = messageTableRelativePos - 10 >= 0;
+ var messageTableRelativePos = messageListTop - this.$header.height() - windowScrollTop;
+ var needsTableHeaderFloat = messageTableRelativePos + 10 < 0;
+ var needsTableHeaderStick = messageTableRelativePos - 10 >= 0;
if ( needsTableHeaderFloat ) {
this.$header.addClass( 'floating' ).width( messageListWidth );
} else if ( needsTableHeaderStick ) {
@@ -830,9 +813,9 @@
}
// Action bar:
- isActionBarFloating = this.$actionBar.hasClass( 'floating' );
- needsActionBarFloat = windowScrollBottom < messageListBottom;
- needsActionBarStick = windowScrollBottom > ( messageListBottom + this.$actionBar.height() );
+ var isActionBarFloating = this.$actionBar.hasClass( 'floating' );
+ var needsActionBarFloat = windowScrollBottom < messageListBottom;
+ var needsActionBarStick = windowScrollBottom > ( messageListBottom + this.$actionBar.height() );
if ( !isActionBarFloating && needsActionBarFloat ) {
this.$actionBar.addClass( 'floating' ).width( messageListWidth );
@@ -905,13 +888,12 @@
}
function isLoaderVisible( $loader ) {
- var viewportBottom, elementTop,
- $window = $( window );
+ var $window = $( window );
- viewportBottom = ( window.innerHeight ? window.innerHeight : $window.height() ) +
+ var viewportBottom = ( window.innerHeight ? window.innerHeight : $window.height() ) +
$window.scrollTop();
- elementTop = $loader.offset().top;
+ var elementTop = $loader.offset().top;
// Start already if user is reaching close to the bottom
return elementTop - viewportBottom < 200;