diff options
Diffstat (limited to 'MLEB/Translate/resources/js/ext.translate.special.translate.js')
-rw-r--r-- | MLEB/Translate/resources/js/ext.translate.special.translate.js | 70 |
1 files changed, 40 insertions, 30 deletions
diff --git a/MLEB/Translate/resources/js/ext.translate.special.translate.js b/MLEB/Translate/resources/js/ext.translate.special.translate.js index 1b80061a..1034d7ad 100644 --- a/MLEB/Translate/resources/js/ext.translate.special.translate.js +++ b/MLEB/Translate/resources/js/ext.translate.special.translate.js @@ -1,7 +1,9 @@ ( function () { 'use strict'; - var state = { + var state, hideOptionalMessages = '!optional'; + + state = { group: null, language: null, messageList: null @@ -18,15 +20,13 @@ * @param {Object} group a message group object. */ changeGroup: function ( group ) { - var changes; - if ( !checkDirty() ) { return; } state.group = group.id; - changes = { + var changes = { group: group.id, showMessage: null @@ -51,8 +51,8 @@ mw.translate.updateTabLinks( changes ); $( '.tux-editor-header .group-warning' ).empty(); state.messageList.changeSettings( changes ); + state.groupSelector.updateTargetLanguage( language ); updateGroupInformation( state ); - }, changeFilter: function ( filter ) { @@ -98,10 +98,8 @@ */ updateTabLinks: function ( params ) { $( '.tux-tab a' ).each( function () { - var $a, uri; - - $a = $( this ); - uri = new mw.Uri( $a.prop( 'href' ) ); + var $a = $( this ); + var uri = new mw.Uri( $a.prop( 'href' ) ); uri.extend( params ); $a.prop( 'href', uri.toString() ); } ); @@ -109,12 +107,10 @@ } ); function getActualFilter( filter ) { - var realFilters, uri; - - realFilters = [ '!ignored' ]; - uri = new mw.Uri( window.location.href ); + var realFilters = [ '!ignored' ]; + var uri = new mw.Uri( window.location.href ); if ( uri.query.optional !== '1' ) { - realFilters.push( '!optional' ); + realFilters.push( hideOptionalMessages ); } if ( filter ) { realFilters.push( filter ); @@ -179,15 +175,24 @@ } function updateGroupWarning( group, language ) { - var $preferredLanguages, headerMessage, languagesMessage, - $groupWarning = $( '.tux-editor-header .group-warning' ); + var $groupWarning = $( '.tux-editor-header .group-warning' ); + + if ( group.priority === 'discouraged' ) { + $groupWarning.append( + $( '<p>' ).append( $( '<strong>' ) + .text( mw.message( 'tpt-discouraged-translation-header' ).text() ) + ), + $( '<p>' ).append( mw.message( 'tpt-discouraged-translation-content' ).parseDom() ) + ); + return; + } if ( !group.prioritylangs || isPriorityLanguage( language, group.prioritylangs ) ) { return; } // Make a comma-separated list of preferred languages - $preferredLanguages = $( '<span>' ); + var $preferredLanguages = $( '<span>' ); group.prioritylangs.forEach( function ( languageCode, index ) { // bidi isolation for language names $preferredLanguages.append( @@ -200,6 +205,7 @@ } } ); + var headerMessage, languagesMessage; if ( group.priorityforce ) { headerMessage = mw.message( 'tpt-discouraged-language-force-header', @@ -263,10 +269,7 @@ } $( function () { - var $translateContainer, $hideTranslatedButton, $messageList, - filter, uri, position, offset, limit; - - $messageList = $( '.tux-messagelist' ); + var $messageList = $( '.tux-messagelist' ); state.group = $( '.tux-messagetable-loader' ).data( 'messagegroup' ); state.language = $messageList.data( 'targetlangcode' ); @@ -274,9 +277,10 @@ $messageList.messagetable(); state.messageList = $messageList.data( 'messagetable' ); - uri = new mw.Uri( window.location.href ); - filter = uri.query.filter; - offset = uri.query.showMessage; + var uri = new mw.Uri( window.location.href ); + var filter = uri.query.filter; + var offset = uri.query.showMessage; + var limit; if ( offset ) { limit = uri.query.limit || 1; // Default to no filters @@ -304,15 +308,21 @@ } ); // Start loading messages + var actualFilter = getActualFilter( filter ); state.messageList.changeSettings( { group: state.group, language: state.language, offset: offset, limit: limit, - filter: getActualFilter( filter ) + filter: actualFilter } ); + + if ( actualFilter.indexOf( hideOptionalMessages ) === -1 ) { + $( '#tux-option-optional' ).prop( 'checked', true ); + } } + var position; if ( $( document.body ).hasClass( 'rtl' ) ) { position = { my: 'right top', @@ -325,6 +335,7 @@ position: position, recent: mw.translate.recentGroups.get() } ); + state.groupSelector = $( '.tux-breadcrumb__item--aggregate' ).data( 'msggroupselector' ); updateGroupInformation( state ); @@ -341,13 +352,13 @@ $( '.tux-message' ).translateeditor(); } - $translateContainer = $( '.ext-translate-container' ); + var $translateContainer = $( '.ext-translate-container' ); if ( mw.translate.canProofread() ) { $translateContainer.find( '.proofread-mode-button' ).removeClass( 'hide' ); } - $hideTranslatedButton = $translateContainer.find( '.tux-editor-clear-translated' ); + var $hideTranslatedButton = $translateContainer.find( '.tux-editor-clear-translated' ); $hideTranslatedButton .prop( 'disabled', !getTranslatedMessages( $translateContainer ).length ) .on( 'click', function () { @@ -357,14 +368,13 @@ // Message filter click handler $translateContainer.find( '.row.tux-message-selector > li' ).on( 'click', function () { - var newFilter, - $this = $( this ); + var $this = $( this ); if ( $this.hasClass( 'more' ) ) { return false; } - newFilter = $this.data( 'filter' ); + var newFilter = $this.data( 'filter' ); // Remove the 'selected' class from all the items. // Some of them could have been moved to under the "more" menu, |