summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'MLEB/Translate/resources/js/ext.translate.special.translate.js')
-rw-r--r--MLEB/Translate/resources/js/ext.translate.special.translate.js70
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,