From 4eca23174a90066db755f4a6f1cc223275439f47 Mon Sep 17 00:00:00 2001
From: Peter Jaszkowiak
Date: Sat, 3 Dec 2016 22:41:16 -0700
Subject: [PATCH] Translate dynamically added admin content
---
public/src/admin/extend/rewards.js | 10 ++-
public/src/admin/general/navigation.js | 16 ++--
public/src/admin/manage/categories.js | 72 +++++++++---------
public/src/admin/manage/category.js | 99 +++++++++++++------------
public/src/admin/manage/groups.js | 6 +-
public/src/admin/manage/ip-blacklist.js | 6 +-
public/src/admin/manage/users.js | 38 +++++-----
7 files changed, 134 insertions(+), 113 deletions(-)
diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js
index 939bdbb20d..279c0c8d27 100644
--- a/public/src/admin/extend/rewards.js
+++ b/public/src/admin/extend/rewards.js
@@ -1,7 +1,7 @@
"use strict";
/* global define, app, ajaxify, socket, templates, bootbox */
-define('admin/extend/rewards', function () {
+define('admin/extend/rewards', ['translator'], function (translator) {
var rewards = {};
@@ -142,9 +142,11 @@ define('admin/extend/rewards', function () {
};
templates.parse('admin/extend/rewards', 'active', data, function (li) {
- li = $(li);
- ul.append(li);
- li.find('select').val('');
+ translator.translate(li, function (li) {
+ li = $(li);
+ ul.append(li);
+ li.find('select').val('');
+ });
});
}
diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js
index ee53fa5561..4c4256ddd1 100644
--- a/public/src/admin/general/navigation.js
+++ b/public/src/admin/general/navigation.js
@@ -69,15 +69,19 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun
data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1;
templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) {
- li = $(translator.unescape(li));
- el.after(li);
- el.remove();
+ translator.translate(li, function (li) {
+ li = $(translator.unescape(li));
+ el.after(li);
+ el.remove();
+ });
});
templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) {
- li = $(translator.unescape(li));
- $('#enabled').append(li);
- componentHandler.upgradeDom();
+ translator.translate(li, function (li) {
+ li = $(translator.unescape(li));
+ $('#enabled').append(li);
+ componentHandler.upgradeDom();
+ });
});
}
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index bbc5a69695..1042c723e6 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -40,29 +40,31 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
templates.parse('admin/partials/categories/create', {
categories: categories
}, function (html) {
- function submit() {
- var formData = modal.find('form').serializeObject();
- formData.description = '';
- formData.icon = 'fa-comments';
-
- Categories.create(formData);
- modal.modal('hide');
- return false;
- }
+ translator.translate(html, function (html) {
+ function submit() {
+ var formData = modal.find('form').serializeObject();
+ formData.description = '';
+ formData.icon = 'fa-comments';
+
+ Categories.create(formData);
+ modal.modal('hide');
+ return false;
+ }
- var modal = bootbox.dialog({
- title: 'Create a Category',
- message: html,
- buttons: {
- save: {
- label: 'Save',
- className: 'btn-primary',
- callback: submit
+ var modal = bootbox.dialog({
+ title: 'Create a Category',
+ message: html,
+ buttons: {
+ save: {
+ label: 'Save',
+ className: 'btn-primary',
+ callback: submit
+ }
}
- }
- });
+ });
- modal.find('form').on('submit', submit);
+ modal.find('form').on('submit', submit);
+ });
});
});
};
@@ -176,22 +178,24 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
cid: parentId,
categories: categories
}, function (html) {
- container.append(html);
+ translator.translate(html, function (html) {
+ container.append(html);
- // Handle and children categories in this level have
- for(var x = 0,numCategories = categories.length; x < numCategories; x++) {
- renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid);
- }
+ // Handle and children categories in this level have
+ for(var x = 0,numCategories = categories.length; x < numCategories; x++) {
+ renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid);
+ }
- // Make list sortable
- sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], {
- group: 'cross-categories',
- animation: 150,
- handle: '.icon',
- dataIdAttr: 'data-cid',
- ghostClass: "placeholder",
- onAdd: itemDidAdd,
- onEnd: itemDragDidEnd
+ // Make list sortable
+ sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], {
+ group: 'cross-categories',
+ animation: 150,
+ handle: '.icon',
+ dataIdAttr: 'data-cid',
+ ghostClass: "placeholder",
+ onAdd: itemDidAdd,
+ onEnd: itemDragDidEnd
+ });
});
});
}
diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js
index 866bc4bb9d..32da35b007 100644
--- a/public/src/admin/manage/category.js
+++ b/public/src/admin/manage/category.js
@@ -5,8 +5,9 @@ define('admin/manage/category', [
'uploader',
'iconSelect',
'admin/modules/colorpicker',
- 'autocomplete'
-], function (uploader, iconSelect, colorpicker, autocomplete) {
+ 'autocomplete',
+ 'translator'
+], function (uploader, iconSelect, colorpicker, autocomplete, translator) {
var Category = {};
var modified_categories = {};
@@ -232,8 +233,10 @@ define('admin/manage/category', [
templates.parse('admin/partials/categories/privileges', {
privileges: privileges
}, function (html) {
- $('.privilege-table-container').html(html);
- Category.exposeAssumedPrivileges();
+ translator.translate(html, function (html) {
+ $('.privilege-table-container').html(html);
+ Category.exposeAssumedPrivileges();
+ });
});
});
};
@@ -289,33 +292,35 @@ define('admin/manage/category', [
templates.parse('partials/category_list', {
categories: categories
}, function (html) {
- var modal = bootbox.dialog({
- message: html,
- title: 'Set Parent Category'
- });
-
- modal.find('li[data-cid]').on('click', function () {
- var parentCid = $(this).attr('data-cid'),
- payload = {};
-
- payload[ajaxify.data.category.cid] = {
- parentCid: parentCid
- };
+ translator.translate(html, function (html) {
+ var modal = bootbox.dialog({
+ message: html,
+ title: 'Set Parent Category'
+ });
- socket.emit('admin.categories.update', payload, function (err) {
- if (err) {
- return app.alertError(err.message);
- }
- var parent = categories.filter(function (category) {
- return category && parseInt(category.cid, 10) === parseInt(parentCid, 10);
+ modal.find('li[data-cid]').on('click', function () {
+ var parentCid = $(this).attr('data-cid'),
+ payload = {};
+
+ payload[ajaxify.data.category.cid] = {
+ parentCid: parentCid
+ };
+
+ socket.emit('admin.categories.update', payload, function (err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ var parent = categories.filter(function (category) {
+ return category && parseInt(category.cid, 10) === parseInt(parentCid, 10);
+ });
+ parent = parent[0];
+
+ modal.modal('hide');
+ $('button[data-action="removeParent"]').parent().removeClass('hide');
+ $('button[data-action="setParent"]').addClass('hide');
+ var buttonHtml = ' ' + parent.name;
+ $('button[data-action="changeParent"]').html(buttonHtml).parent().removeClass('hide');
});
- parent = parent[0];
-
- modal.modal('hide');
- $('button[data-action="removeParent"]').parent().removeClass('hide');
- $('button[data-action="setParent"]').addClass('hide');
- var buttonHtml = ' ' + parent.name;
- $('button[data-action="changeParent"]').html(buttonHtml).parent().removeClass('hide');
});
});
});
@@ -407,26 +412,28 @@ define('admin/manage/category', [
templates.parse('admin/partials/categories/select-category', {
categories: categories
}, function (html) {
- function submit() {
- var formData = modal.find('form').serializeObject();
- callback(formData['select-cid']);
- modal.modal('hide');
- return false;
- }
+ translator.translate(html, function (html) {
+ function submit() {
+ var formData = modal.find('form').serializeObject();
+ callback(formData['select-cid']);
+ modal.modal('hide');
+ return false;
+ }
- var modal = bootbox.dialog({
- title: 'Select a Category',
- message: html,
- buttons: {
- save: {
- label: 'Copy',
- className: 'btn-primary',
- callback: submit
+ var modal = bootbox.dialog({
+ title: 'Select a Category',
+ message: html,
+ buttons: {
+ save: {
+ label: 'Copy',
+ className: 'btn-primary',
+ callback: submit
+ }
}
- }
- });
+ });
- modal.find('form').on('submit', submit);
+ modal.find('form').on('submit', submit);
+ });
});
});
}
diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js
index bbb0c08352..92a7c43efd 100644
--- a/public/src/admin/manage/groups.js
+++ b/public/src/admin/manage/groups.js
@@ -102,8 +102,10 @@ define('admin/manage/groups', [
templates.parse('admin/manage/groups', 'groups', {
groups: groups
}, function (html) {
- groupsEl.find('[data-groupname]').remove();
- groupsEl.find('tr').after(html);
+ translator.translate(html, function (html) {
+ groupsEl.find('[data-groupname]').remove();
+ groupsEl.find('tr').after(html);
+ });
});
});
}
diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js
index 03f4d8bb5c..fdb4eef413 100644
--- a/public/src/admin/manage/ip-blacklist.js
+++ b/public/src/admin/manage/ip-blacklist.js
@@ -1,7 +1,7 @@
'use strict';
/* globals $, app, socket, templates, define, bootbox */
-define('admin/manage/ip-blacklist', [], function () {
+define('admin/manage/ip-blacklist', ['translator'], function (translator) {
var Blacklist = {};
@@ -34,7 +34,9 @@ define('admin/manage/ip-blacklist', [], function () {
}
templates.parse('admin/partials/blacklist-validate', data, function (html) {
- bootbox.alert(html);
+ translator.translate(html, function (html) {
+ bootbox.alert(html);
+ });
});
});
});
diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js
index b8fb8d5de6..d2407fa82a 100644
--- a/public/src/admin/manage/users.js
+++ b/public/src/admin/manage/users.js
@@ -336,25 +336,25 @@ define('admin/manage/users', ['translator'], function (translator) {
}
templates.parse('admin/manage/users', 'users', data, function (html) {
- html = $(html);
- $('.users-table tr').not(':first').remove();
- $('.users-table tr').first().after(html);
- html.find('.timeago').timeago();
- $('.fa-spinner').addClass('hidden');
-
- if (data && data.users.length === 0) {
- $('#user-notfound-notify').html('User not found!')
- .removeClass('hide')
- .addClass('label-danger')
- .removeClass('label-success');
- } else {
- $('#user-notfound-notify').html(data.users.length + ' user' + (data.users.length > 1 ? 's' : '') + ' found! Search took ' + data.timing + ' ms.')
- .removeClass('hide')
- .addClass('label-success')
- .removeClass('label-danger');
- }
-
-
+ translator.translate(html, function (html) {
+ html = $(html);
+ $('.users-table tr').not(':first').remove();
+ $('.users-table tr').first().after(html);
+ html.find('.timeago').timeago();
+ $('.fa-spinner').addClass('hidden');
+
+ if (data && data.users.length === 0) {
+ $('#user-notfound-notify').html('User not found!')
+ .removeClass('hide')
+ .addClass('label-danger')
+ .removeClass('label-success');
+ } else {
+ $('#user-notfound-notify').html(data.users.length + ' user' + (data.users.length > 1 ? 's' : '') + ' found! Search took ' + data.timing + ' ms.')
+ .removeClass('hide')
+ .addClass('label-success')
+ .removeClass('label-danger');
+ }
+ });
});
});
}, 250);