Skip to content

Commit 8e7adad

Browse files
Add sort order for strings
1 parent 59bdacd commit 8e7adad

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

msgfmt:ui/lib/client.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,15 @@ Template.mfTransLang.events({
253253
Session.set('translationShowKey', event.currentTarget.checked);
254254
},
255255
'click .translationSort': function(event) {
256-
Session.set('translationSortField', event.currentTarget.attributes['data-sortField'].value);
256+
var currentSort = Session.get('translationSortField');
257+
var newSort = event.currentTarget.attributes['data-sortField'].value;
258+
Session.set('translationSortField', newSort);
259+
260+
if (currentSort === newSort) {
261+
var currentOrder = Session.get('translationSortOrder');
262+
var newOrder = (currentOrder === 'asc') ? 'desc' : 'asc';
263+
Session.set('translationSortOrder', newOrder);
264+
}
257265
},
258266
'keyup #mfTransDest': function(event) {
259267
unsavedDest = event.target.value;
@@ -266,11 +274,21 @@ Template.mfTransLang.helpers({
266274
if (!strings) return;
267275

268276
var sortField = Session.get('translationSortField');
277+
var sortOrder = Session.get('translationSortOrder');
269278
if (!sortField) {
270279
Session.set('translationSortField', 'orig');
280+
sortField = 'orig';
281+
}
282+
if (!sortOrder) {
283+
Session.set('translationSortOrder', 'asc');
284+
sortOrder = 'asc';
271285
}
272286
return strings().sort(function(a, b) {
273-
return a[sortField] > b[sortField] ? 1 : (a[sortField] < b[sortField] ? -1 : 0);
287+
if (sortOrder === 'asc') {
288+
return a[sortField] > b[sortField] ? 1 : (a[sortField] < b[sortField] ? -1 : 0);
289+
} else {
290+
return a[sortField] > b[sortField] ? -1 : (a[sortField] < b[sortField] ? 1 : 0);
291+
}
274292
});
275293
},
276294
showKey: function() {

0 commit comments

Comments
 (0)