Amire80 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/59132


Change subject: Show "Cancel" instead of "Skip" at the last message
......................................................................

Show "Cancel" instead of "Skip" at the last message

Bug: 46099
Change-Id: If71d03f6d4ae123899edf2b2ed00c167069900eb
---
M Resources.php
M Translate.i18n.php
M resources/css/ext.translate.editor.css
M resources/js/ext.translate.editor.js
M resources/js/ext.translate.messagetable.js
5 files changed, 73 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/32/59132/1

diff --git a/Resources.php b/Resources.php
index ea68c2e..231006c 100644
--- a/Resources.php
+++ b/Resources.php
@@ -63,6 +63,7 @@
                'tux-editor-discard-changes-button-label',
                'tux-editor-save-button-label',
                'tux-editor-skip-button-label',
+               'tux-editor-cancel-button-label',
                'tux-editor-confirm-button-label',
                'tux-editor-shortcut-info',
                'tux-editor-edit-desc',
diff --git a/Translate.i18n.php b/Translate.i18n.php
index 4a0a2c6..68deb8d 100644
--- a/Translate.i18n.php
+++ b/Translate.i18n.php
@@ -456,6 +456,7 @@
        'tux-editor-discard-changes-button-label' => 'Discard changes',
        'tux-editor-save-button-label' => 'Save translation',
        'tux-editor-skip-button-label' => 'Skip to next',
+       'tux-editor-cancel-button-label' => 'Cancel',
        'tux-editor-confirm-button-label' => 'Confirm translation',
        'tux-editor-shortcut-info' => 'Press "$1" to save or "$2" to skip to 
next message',
        'tux-editor-edit-desc' => 'Edit description',
@@ -1075,6 +1076,9 @@
        'tux-editor-discard-changes-button-label' => 'Label for a button that 
discards the changes made to a translation and restores the saved version.',
        'tux-editor-save-button-label' => 'Label for save translation button',
        'tux-editor-skip-button-label' => 'Label for skip button',
+       'tux-editor-cancel-button-label' => 'Label for cancel button.
+Pressing the button hides the message editor without saving and marks the 
message internally as "hard".
+{{Identical|Cancel}}',
        'tux-editor-confirm-button-label' => 'Label for confirm button',
        'tux-editor-shortcut-info' => 'A help text for the keyboard shortcuts
 * $1 is shortcut key for save button
diff --git a/resources/css/ext.translate.editor.css 
b/resources/css/ext.translate.editor.css
index bbb5524..4c12e9f 100644
--- a/resources/css/ext.translate.editor.css
+++ b/resources/css/ext.translate.editor.css
@@ -378,3 +378,17 @@
        background: url(../images/label-tick.png) right no-repeat;
        color: #252525;
 }
+
+/* Hide the cancel button by default... */
+.tux-editor-cancel-button {
+       display: none;
+}
+
+/* ... but show it in the last message */
+.last-message .tux-editor-cancel-button {
+       display: inline-block;
+}
+
+.last-message .tux-editor-skip-button {
+       display: none;
+}
diff --git a/resources/js/ext.translate.editor.js 
b/resources/js/ext.translate.editor.js
index 08a4bde..446764d 100644
--- a/resources/js/ext.translate.editor.js
+++ b/resources/js/ext.translate.editor.js
@@ -304,6 +304,7 @@
                                $saveButton,
                                $requestRight,
                                $skipButton,
+                               $cancelButton,
                                $sourceString,
                                $closeIcon,
                                $layoutActions,
@@ -326,7 +327,6 @@
                                        $messageTools.toggleClass( 'hide' );
                                        e.stopPropagation();
                                } );
-
 
                        $closeIcon = $( '<span>' )
                                .addClass( 'one column close' )
@@ -582,9 +582,18 @@
                                        e.stopPropagation();
                                } );
 
+                       $cancelButton = $( '<button>' )
+                               .addClass( 'button tux-editor-cancel-button 
hide' )
+                               .text( mw.msg( 'tux-editor-cancel-button-label' 
) )
+                               .on( 'click', function ( e ) {
+                                       translateEditor.skip();
+                                       translateEditor.hide();
+                                       e.stopPropagation();
+                               } );
+
                        $controlButtonBlock = $( '<div>' )
                                .addClass( 'twelve columns 
tux-editor-control-buttons' )
-                               .append( $requestRight, $saveButton, 
$skipButton );
+                               .append( $requestRight, $saveButton, 
$skipButton, $cancelButton );
 
                        $editorColumn.append( $( '<div>' )
                                .addClass( 'row tux-editor-actions-block' )
@@ -816,6 +825,7 @@
                        $( '.tux-editor-save-button, .tux-editor-save-button' 
).removeAttr( 'accesskey' );
                        this.$editor.find( '.tux-editor-save-button' ).attr( 
'accesskey', 's' );
                        this.$editor.find( '.tux-editor-skip-button' ).attr( 
'accesskey', 'd' );
+                       // @todo access key for the cancel button
 
                        this.$messageItem.addClass( 'hide' );
                        this.$editor
diff --git a/resources/js/ext.translate.messagetable.js 
b/resources/js/ext.translate.messagetable.js
index 652fdc1..a2e8958 100644
--- a/resources/js/ext.translate.messagetable.js
+++ b/resources/js/ext.translate.messagetable.js
@@ -3,6 +3,12 @@
 
        mw.translate = mw.translate || {};
 
+       var itemsClass = {
+               proofread: '.tux-message-proofread',
+               page: '.tux-message-pagemode',
+               translate: '.tux-message'
+       };
+
        mw.translate = $.extend( mw.translate, {
                getMessages: function ( messageGroup, language, offset, limit, 
filter ) {
                        var api = new mw.Api();
@@ -295,12 +301,7 @@
                search: function ( query ) {
                        var resultCount = 0,
                                $result,
-                               matcher = new RegExp( '(^|\\s|\\b)' + 
escapeRegex( query ), 'gi' ),
-                               itemsClass = {
-                                       proofread: '.tux-message-proofread',
-                                       page: '.tux-message-pagemode',
-                                       translate: '.tux-message'
-                               };
+                               matcher = new RegExp( '(^|\\s|\\b)' + 
escapeRegex( query ), 'gi' );
 
                        this.$container.find( itemsClass[ this.mode ] ).each( 
function () {
                                var $message = $( this ),
@@ -344,6 +345,7 @@
                        }
 
                        this.$loader.trigger( 'appear' );
+                       this.updateLastMessage();
 
                        // Trigger a scroll event for the window to make sure 
all floating toolbars
                        // are in their position.
@@ -437,23 +439,26 @@
 
                                        if ( result['query-continue'] === 
undefined ) {
                                                // End of messages
-                                               messageTable.$loader.data( 
'offset', -1 ).addClass( 'hide' );
-                                               return;
+                                               messageTable.$loader.data( 
'offset', -1 )
+                                                       .addClass( 'hide' );
+                                       } else {
+                                               messageTable.$loader.data( 
'offset', result['query-continue'].messagecollection.mcoffset );
+
+                                               remaining = 
result.query.metadata.remaining;
+
+                                               $( 
'.tux-messagetable-loader-count' ).text(
+                                                       mw.msg( 
'tux-messagetable-more-messages', remaining )
+                                               );
+
+                                               $( 
'.tux-messagetable-loader-more' ).text(
+                                                       mw.msg( 
'tux-messagetable-loading-messages', Math.min( remaining, pageSize ) )
+                                               );
+
+                                               // Make sure the floating 
toolbars are visible without the need for scroll
+                                               $( window ).trigger( 'scroll' );
                                        }
 
-                                       messageTable.$loader.data( 'offset', 
result['query-continue'].messagecollection.mcoffset );
-
-                                       remaining = 
result.query.metadata.remaining;
-
-                                       $( '.tux-messagetable-loader-count' 
).text(
-                                               mw.msg( 
'tux-messagetable-more-messages', remaining )
-                                       );
-
-                                       $( '.tux-messagetable-loader-more' 
).text(
-                                               mw.msg( 
'tux-messagetable-loading-messages', Math.min( remaining, pageSize ) )
-                                       );
-                                       // Make sure the floating toolbars are 
visible without the need for scroll
-                                       $( window ).trigger( 'scroll' );
+                                       messageTable.updateLastMessage();
                                } )
                                .fail( function ( errorCode, response ) {
                                        if ( response.error.code === 
'mctranslate-language-disabled' ) {
@@ -466,6 +471,22 @@
                                } );
                },
 
+               updateLastMessage: function () {
+                       var $messages = this.$container.find( itemsClass[ 
this.mode ] ),
+                               oldLastMessage = $messages.filter( 
'.last-message' ),
+                               newLastMessage = $messages
+                                       .not( '.hide' )
+                                       .last();
+
+                       if ( oldLastMessage.length ) {
+                               oldLastMessage.removeClass( 'last-message' );
+                       }
+
+                       if ( newLastMessage.length ) {
+                               newLastMessage.addClass( 'last-message' );
+                       }
+               },
+
                /**
                 * If the user selection results nothing to show, give some 
pointers
                 * what to do.

-- 
To view, visit https://gerrit.wikimedia.org/r/59132
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If71d03f6d4ae123899edf2b2ed00c167069900eb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to