Santhosh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/51637
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 consistant
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, 37 insertions(+), 34 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate
refs/changes/37/51637/1
diff --git a/resources/js/ext.translate.groupselector.js
b/resources/js/ext.translate.groupselector.js
index dbf0b27..21fec90 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.loadGroups( this.parentGroupId ) ) {
+ this.listen();
+ }
},
/**
@@ -145,17 +147,30 @@
} );
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' );
+ $( '.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 ) {
@@ -352,10 +367,11 @@
* in the group selector.
*
* @param parentGroupId
+ * @return {boolean} Whether this group has child groups or not
*/
loadGroups: function ( parentGroupId ) {
this.$menu.data( 'msggroups',
mw.translate.messageGroups );
- this.addGroupRows( parentGroupId, null );
+ return this.addGroupRows( parentGroupId, null );
},
/**
@@ -363,6 +379,7 @@
*
* @param {string|null} parentGroupId. If it's null, all groups
are loaded. Otherwise, groups under this id are loaded.
* @param {Array} msgGroups - array of message group objects to
add.
+ * @return {boolean} Whether this group has child groups or not
*/
addGroupRows: function ( parentGroupId, msgGroups ) {
var $msgGroupRows,
@@ -380,7 +397,7 @@
}
if ( !messageGroups ) {
- return;
+ return false;
}
$msgGroupRows = [];
@@ -413,6 +430,8 @@
} else {
$msgGroupList.append( $msgGroupRows );
}
+
+ return true;
},
/**
diff --git a/resources/js/ext.translate.special.translate.js
b/resources/js/ext.translate.special.translate.js
index 1ff1b82..582aac1 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.
@@ -314,7 +296,9 @@
mw.translate.loadMessageGroups()
).then( function () {
$( '.ext-translate-msggroup-selector .grouplink'
).msggroupselector( {
- onSelect: groupSelectorHandler
+ onSelect: function ( msgGroup ) {
+ mw.translate.changeGroup( msgGroup );
+ }
} );
$( '.tux-message-list-statsbar' ).languagestatsbar( {
diff --git a/specials/SpecialTranslate.php b/specials/SpecialTranslate.php
index 2631d15..75c22ba 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: newchange
Gerrit-Change-Id: Ic959ea4946101f56771a6467e668c9decfa0e1dd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits