Skip to content

Commit d68064e

Browse files
Remove global helper + replace sortedStrings
1 parent 1de0533 commit d68064e

File tree

2 files changed

+52
-68
lines changed

2 files changed

+52
-68
lines changed

msgfmt:ui/lib/client.js

+51-67
Original file line numberDiff line numberDiff line change
@@ -181,54 +181,40 @@ Template.mfTrans.helpers({
181181
}
182182
});
183183

184-
Template.registerHelper('strings', function() {
185-
var orig = mfPkg.native;
186-
var lang = RouterLayer.getParam('lang');
187-
188-
// summarise matching keys (orig + trans) to a single record
189-
var out = {}, strings = mfPkg.mfStrings.find({
190-
$and: [{$or: [{lang: orig}, {lang: lang}]},
191-
{removed: undefined}]
192-
}).fetch();
193-
194-
_.each(strings, function(str) {
195-
if (!out[str.key])
196-
out[str.key] = { key: str.key };
197-
if (str.lang == orig)
198-
out[str.key].orig = str.text;
199-
else
200-
out[str.key].trans = str.text;
201-
if (str.fuzzy)
202-
out[str.key].fuzzy = true;
203-
});
204-
205-
strings = _.values(out);
206-
strings.sort(function(a, b) {
207-
if (!a.trans && b.trans)
208-
return -1;
209-
else if (a.trans && !b.trans)
210-
return 1;
211-
212-
if (!a.fuzzy && b.fuzzy)
213-
return -1;
214-
else if (b.fuzzy && !a.fuzzy)
215-
return 1;
216-
217-
return a.text - b.text;
218-
});
219-
220-
return strings;
221-
});
222-
223184
Template.mfTransLang.helpers({
224185
origLang: mfPkg.native,
225186
destLang: function() { return RouterLayer.getParam('lang'); },
226187
allowed: function() {
227188
return !mfPkg.webUI.allowed.call(this) || mfPkg.webUI.denied.call(this);
189+
},
190+
strings: function() {
191+
var orig = mfPkg.native;
192+
var lang = RouterLayer.getParam('lang');
193+
194+
// summarise matching keys (orig + trans) to a single record
195+
var out = {}, strings = mfPkg.mfStrings.find({
196+
$and: [{$or: [{lang: orig}, {lang: lang}]},
197+
{removed: undefined}]
198+
}).fetch();
199+
200+
_.each(strings, function(str) {
201+
if (!out[str.key])
202+
out[str.key] = { key: str.key };
203+
if (str.lang == orig)
204+
out[str.key].orig = str.text;
205+
else
206+
out[str.key].trans = str.text;
207+
if (str.fuzzy)
208+
out[str.key].fuzzy = true;
209+
});
210+
211+
strings = _.values(out);
212+
strings = sortStrings(strings);
213+
214+
return strings;
228215
}
229216
});
230217

231-
232218
Template.mfTrans.events({
233219
'click #mfTransNewSubmit': function() {
234220
RouterLayer.go('mfTransLang', { lang: $('#mfTransNewText').val() });
@@ -272,33 +258,6 @@ Template.mfTransLang.events({
272258
});
273259

274260
Template.mfTransLang.helpers({
275-
sortedStrings: function() {
276-
var strings = Blaze._globalHelpers['strings'];
277-
if (!strings) return;
278-
279-
var sortField = Session.get('translationSortField');
280-
var sortOrder = Session.get('translationSortOrder');
281-
if (!sortField) {
282-
Session.set('translationSortField', 'orig');
283-
sortField = 'orig';
284-
}
285-
if (!sortOrder) {
286-
Session.set('translationSortOrder', 'asc');
287-
sortOrder = 'asc';
288-
}
289-
return strings().sort(function(a, b) {
290-
var first = a[sortField];
291-
var second = b[sortField];
292-
var caseInsensitiveOrdering = Session.get('translationCaseInsensitiveOrdering');
293-
if (first && caseInsensitiveOrdering) first = first.toLowerCase();
294-
if (second && caseInsensitiveOrdering) second = second.toLowerCase();
295-
if (sortOrder === 'asc') {
296-
return first > second ? 1 : (first < second ? -1 : 0);
297-
} else {
298-
return first > second ? -1 : (first < second ? 1 : 0);
299-
}
300-
});
301-
},
302261
showKey: function() {
303262
return Session.get('translationShowKey');
304263
},
@@ -350,6 +309,31 @@ Template.mfTransLang.helpers({
350309
}
351310
});
352311

312+
var sortStrings = function(strings) {
313+
var sortField = Session.get('translationSortField');
314+
var sortOrder = Session.get('translationSortOrder');
315+
if (!sortField) {
316+
Session.set('translationSortField', 'orig');
317+
sortField = 'orig';
318+
}
319+
if (!sortOrder) {
320+
Session.set('translationSortOrder', 'asc');
321+
sortOrder = 'asc';
322+
}
323+
return strings.sort(function(a, b) {
324+
var first = a[sortField];
325+
var second = b[sortField];
326+
var caseInsensitiveOrdering = Session.get('translationCaseInsensitiveOrdering');
327+
if (first && caseInsensitiveOrdering) first = first.toLowerCase();
328+
if (second && caseInsensitiveOrdering) second = second.toLowerCase();
329+
if (sortOrder === 'asc') {
330+
return first > second ? 1 : (first < second ? -1 : 0);
331+
} else {
332+
return first > second ? -1 : (first < second ? 1 : 0);
333+
}
334+
});
335+
};
336+
353337
var initialRender = _.once(function() {
354338
var key = Session.get('mfTransKey'),
355339
tr = $('#mfTransLang tr[data-key="'+key+'"]');

msgfmt:ui/lib/ui.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ <h2>{{mf 'mf_site_translations' 'Site Translations'}}</h2>
8484
<div class="tbodyScroll">
8585
<table>
8686
<tbody>
87-
{{#each sortedStrings}}
87+
{{#each strings}}
8888
<tr data-key="{{key}}" class="{{stateClass}} {{isCurrent}}">
8989
{{#if showKey}}
9090
<td>{{key}}</td>

0 commit comments

Comments
 (0)