@@ -209,25 +209,12 @@ Template.mfTransLang.helpers({
209
209
} ) ;
210
210
211
211
strings = _ . values ( out ) ;
212
- strings . sort ( function ( a , b ) {
213
- if ( ! a . trans && b . trans )
214
- return - 1 ;
215
- else if ( a . trans && ! b . trans )
216
- return 1 ;
217
-
218
- if ( ! a . fuzzy && b . fuzzy )
219
- return - 1 ;
220
- else if ( b . fuzzy && ! a . fuzzy )
221
- return 1 ;
222
-
223
- return a . text - b . text ;
224
- } ) ;
212
+ strings = sortStrings ( strings ) ;
225
213
226
214
return strings ;
227
215
}
228
216
} ) ;
229
217
230
-
231
218
Template . mfTrans . events ( {
232
219
'click #mfTransNewSubmit' : function ( ) {
233
220
RouterLayer . go ( 'mfTransLang' , { lang : $ ( '#mfTransNewText' ) . val ( ) } ) ;
@@ -244,14 +231,48 @@ Template.mfTrans.events({
244
231
var unsavedDest ;
245
232
Template . mfTransLang . events ( {
246
233
'click #mfTransLang tr' : function ( event ) {
247
- changeKey ( this . key ) ;
234
+ var tr = $ ( event . target ) . parents ( 'tr' ) ;
235
+ var key = tr . data ( 'key' ) ;
236
+ if ( key ) changeKey ( key ) ;
237
+ } ,
238
+ 'click #translationShowKey' : function ( event ) {
239
+ Session . set ( 'translationShowKey' , event . currentTarget . checked ) ;
240
+ } ,
241
+ 'click #translationCaseInsensitiveOrdering' : function ( event ) {
242
+ Session . set ( 'translationCaseInsensitiveOrdering' , event . currentTarget . checked ) ;
243
+ } ,
244
+ 'click .translationSort' : function ( event ) {
245
+ var currentSort = Session . get ( 'translationSortField' ) ;
246
+ var newSort = event . currentTarget . attributes [ 'data-sortField' ] . value ;
247
+ Session . set ( 'translationSortField' , newSort ) ;
248
+
249
+ if ( currentSort === newSort ) {
250
+ var currentOrder = Session . get ( 'translationSortOrder' ) ;
251
+ var newOrder = ( currentOrder === 'asc' ) ? 'desc' : 'asc' ;
252
+ Session . set ( 'translationSortOrder' , newOrder ) ;
253
+ }
248
254
} ,
249
255
'keyup #mfTransDest' : function ( event ) {
250
256
unsavedDest = event . target . value ;
251
257
}
252
258
} ) ;
253
259
254
260
Template . mfTransLang . helpers ( {
261
+ showKey : function ( ) {
262
+ return Session . get ( 'translationShowKey' ) ;
263
+ } ,
264
+ caseInsensitiveOrdering : function ( ) {
265
+ return Session . get ( 'caseInsensitiveOrdering' ) ;
266
+ } ,
267
+ sortOrderHeaderClass : function ( headerSortField ) {
268
+ var classes = '' ;
269
+ var sortField = Session . get ( 'translationSortField' ) ;
270
+ var sortOrder = Session . get ( 'translationSortOrder' ) ;
271
+ if ( headerSortField === sortField ) {
272
+ classes += ' active-sort ' + sortOrder ;
273
+ }
274
+ return classes
275
+ } ,
255
276
stateClass : function ( ) {
256
277
if ( this . fuzzy )
257
278
return 'fuzzy' ;
@@ -291,9 +312,37 @@ Template.mfTransLang.helpers({
291
312
} ,
292
313
encodeURIComponent : function ( text ) {
293
314
return encodeURIComponent ( text ) ;
315
+ } ,
316
+ isCheckboxChecked : function ( value ) {
317
+ return ( value === true ? 'checked' : '' ) ;
294
318
}
295
319
} ) ;
296
320
321
+ var sortStrings = function ( strings ) {
322
+ var sortField = Session . get ( 'translationSortField' ) ;
323
+ var sortOrder = Session . get ( 'translationSortOrder' ) ;
324
+ if ( ! sortField ) {
325
+ Session . set ( 'translationSortField' , 'orig' ) ;
326
+ sortField = 'orig' ;
327
+ }
328
+ if ( ! sortOrder ) {
329
+ Session . set ( 'translationSortOrder' , 'asc' ) ;
330
+ sortOrder = 'asc' ;
331
+ }
332
+ return strings . sort ( function ( a , b ) {
333
+ var first = a [ sortField ] ;
334
+ var second = b [ sortField ] ;
335
+ var caseInsensitiveOrdering = Session . get ( 'translationCaseInsensitiveOrdering' ) ;
336
+ if ( first && caseInsensitiveOrdering ) first = first . toLowerCase ( ) ;
337
+ if ( second && caseInsensitiveOrdering ) second = second . toLowerCase ( ) ;
338
+ if ( sortOrder === 'asc' ) {
339
+ return first > second ? 1 : ( first < second ? - 1 : 0 ) ;
340
+ } else {
341
+ return first > second ? - 1 : ( first < second ? 1 : 0 ) ;
342
+ }
343
+ } ) ;
344
+ } ;
345
+
297
346
var initialRender = _ . once ( function ( ) {
298
347
var key = Session . get ( 'mfTransKey' ) ,
299
348
tr = $ ( '#mfTransLang tr[data-key="' + key + '"]' ) ;
0 commit comments