@@ -253,7 +253,15 @@ Template.mfTransLang.events({
253
253
Session . set ( 'translationShowKey' , event . currentTarget . checked ) ;
254
254
} ,
255
255
'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
+ }
257
265
} ,
258
266
'keyup #mfTransDest' : function ( event ) {
259
267
unsavedDest = event . target . value ;
@@ -266,11 +274,21 @@ Template.mfTransLang.helpers({
266
274
if ( ! strings ) return ;
267
275
268
276
var sortField = Session . get ( 'translationSortField' ) ;
277
+ var sortOrder = Session . get ( 'translationSortOrder' ) ;
269
278
if ( ! sortField ) {
270
279
Session . set ( 'translationSortField' , 'orig' ) ;
280
+ sortField = 'orig' ;
281
+ }
282
+ if ( ! sortOrder ) {
283
+ Session . set ( 'translationSortOrder' , 'asc' ) ;
284
+ sortOrder = 'asc' ;
271
285
}
272
286
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
+ }
274
292
} ) ;
275
293
} ,
276
294
showKey : function ( ) {
0 commit comments