jenkins-bot has submitted this change and it was merged.
Change subject: (bug 45421) Avoid inconsistencies in breadcrumbs of project
selector
......................................................................
(bug 45421) Avoid inconsistencies in breadcrumbs of project selector
* Avoid empty selector
* Keep the "All" link always in the beginning
* Keep the selector open if the current group has child groups
* Make the group selector breadcrumb consistent
Bug: 45421
Change-Id: Ic959ea4946101f56771a6467e668c9decfa0e1dd
---
M resources/js/ext.translate.groupselector.js
M resources/js/ext.translate.special.translate.js
M specials/SpecialTranslate.php
3 files changed, 42 insertions(+), 34 deletions(-)
Approvals:
Nikerabbit: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/js/ext.translate.groupselector.js
b/resources/js/ext.translate.groupselector.js
index dbf0b27..c4b2c76 100644
--- a/resources/js/ext.translate.groupselector.js
+++ b/resources/js/ext.translate.groupselector.js
@@ -9,7 +9,7 @@
this.flatGroupList = null;
this.init();
- this.listen();
+
}
TranslateMessageGroupSelector.prototype = {
@@ -21,10 +21,12 @@
*/
init: function () {
this.parentGroupId = this.$group.data( 'msggroupid' );
- this.prepareSelectorMenu();
- this.position();
-
- this.loadGroups( this.parentGroupId );
+ if ( this.hasChildGroups( this.parentGroupId ) ) {
+ this.prepareSelectorMenu();
+ this.position();
+ this.loadGroups( this.parentGroupId );
+ this.listen();
+ }
},
/**
@@ -145,17 +147,32 @@
} );
groupSelector.$menu.on( 'click',
'.ext-translate-msggroup-item', function () {
- var messageGroup = $( this ).data( 'msggroup' );
-
- groupSelector.$group
- .text( messageGroup.label )
- .removeClass( 'tail' )
- .nextAll().remove();
+ var $newLink,
+ messageGroup = $( this ).data(
'msggroup' );
groupSelector.hide();
- if ( messageGroup.groupcount > 0 ) {
- groupSelector.$group.addClass(
'expanded' );
+ groupSelector.$group
+ .removeClass( 'tail' )
+ .nextAll().remove();
+
+ groupSelector.$group.addClass( 'expanded' );
+ // FIXME In future, if we are going to have
multiple groupselectors per page
+ // this will fail.
+ $( '.ext-translate-msggroup-selector .tail'
).remove();
+
+ $newLink = $( '<span>' )
+ .addClass( 'grouptitle grouplink tail' )
+ .text( messageGroup.label );
+ $( '.ext-translate-msggroup-selector
.grouplink:last' ).after( $newLink );
+ $newLink.data( 'msggroupid', messageGroup.id );
+
+ if ( messageGroup.groups &&
messageGroup.groups.length > 0 ) {
+ $newLink.msggroupselector( {
+ onSelect:
groupSelector.options.onSelect
+ } );
+ // keep it open
+ $newLink.data( 'msggroupselector'
).show();
}
if ( groupSelector.options.onSelect ) {
@@ -358,6 +375,13 @@
this.addGroupRows( parentGroupId, null );
},
+ hasChildGroups: function ( groupId ) {
+ if ( !groupId ) {
+ return true;
+ }
+ var childGroups = mw.translate.getGroup( groupId
).groups;
+ return childGroups && childGroups.length;
+ },
/**
* Add rows with message groups to the selector.
*
@@ -413,6 +437,8 @@
} else {
$msgGroupList.append( $msgGroupRows );
}
+
+ return;
},
/**
diff --git a/resources/js/ext.translate.special.translate.js
b/resources/js/ext.translate.special.translate.js
index 39c6b17..8d0ce08 100644
--- a/resources/js/ext.translate.special.translate.js
+++ b/resources/js/ext.translate.special.translate.js
@@ -207,24 +207,6 @@
}
}
- function groupSelectorHandler( msgGroup ) {
- var $newLink;
-
- if ( msgGroup.groups && msgGroup.groups.length > 0 ) {
- $( '.ext-translate-msggroup-selector .tail' ).remove();
- $newLink = $( '<span>' ).addClass( 'grouptitle
grouplink tail' )
- .text( mw.msg(
'translate-msggroupselector-search-all' ) );
- $( '.ext-translate-msggroup-selector .grouplink:last'
).after( $newLink );
- $newLink.data( 'msggroupid', msgGroup.id );
- $newLink.msggroupselector( {
- onSelect: groupSelectorHandler
- } );
- }
-
- mw.translate.changeGroup( msgGroup );
-
- }
-
// Returns an array of jQuery objects of rows of translated
// and proofread messages in the TUX editors.
// Used several times.
@@ -327,7 +309,7 @@
mw.translate.loadMessageGroups()
).then( function () {
$( '.ext-translate-msggroup-selector .grouplink'
).msggroupselector( {
- onSelect: groupSelectorHandler
+ onSelect: mw.translate.changeGroup
} );
$( '.tux-message-list-statsbar' ).languagestatsbar( {
diff --git a/specials/SpecialTranslate.php b/specials/SpecialTranslate.php
index 497ee32..375e23f 100644
--- a/specials/SpecialTranslate.php
+++ b/specials/SpecialTranslate.php
@@ -466,12 +466,12 @@
$this->msg(
'translate-msggroupselector-projects' )->escaped()
) .
Html::element( 'span',
- array( 'class' => 'grouptitle grouplink
expanded tail' ),
+ array( 'class' => 'grouptitle grouplink
expanded' ),
$this->msg(
'translate-msggroupselector-search-all' )->escaped()
) .
Html::element( 'span',
array(
- 'class' => 'grouptitle grouplink',
+ 'class' => 'grouptitle grouplink tail',
'data-msggroupid' =>
$this->options['group'],
),
$group->getLabel()
--
To view, visit https://gerrit.wikimedia.org/r/51637
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic959ea4946101f56771a6467e668c9decfa0e1dd
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
Gerrit-Reviewer: Amire80 <[email protected]>
Gerrit-Reviewer: Arrbee <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Pginer <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits