mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-11 00:15:46 +01:00
Translate dynamically added admin content
This commit is contained in:
committed by
Julian Lam
parent
3cd6a8a94b
commit
4eca23174a
@@ -1,7 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
/* global define, app, ajaxify, socket, templates, bootbox */
|
/* global define, app, ajaxify, socket, templates, bootbox */
|
||||||
|
|
||||||
define('admin/extend/rewards', function () {
|
define('admin/extend/rewards', ['translator'], function (translator) {
|
||||||
var rewards = {};
|
var rewards = {};
|
||||||
|
|
||||||
|
|
||||||
@@ -142,9 +142,11 @@ define('admin/extend/rewards', function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
templates.parse('admin/extend/rewards', 'active', data, function (li) {
|
templates.parse('admin/extend/rewards', 'active', data, function (li) {
|
||||||
li = $(li);
|
translator.translate(li, function (li) {
|
||||||
ul.append(li);
|
li = $(li);
|
||||||
li.find('select').val('');
|
ul.append(li);
|
||||||
|
li.find('select').val('');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,15 +69,19 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun
|
|||||||
data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1;
|
data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1;
|
||||||
|
|
||||||
templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) {
|
templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) {
|
||||||
li = $(translator.unescape(li));
|
translator.translate(li, function (li) {
|
||||||
el.after(li);
|
li = $(translator.unescape(li));
|
||||||
el.remove();
|
el.after(li);
|
||||||
|
el.remove();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) {
|
templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) {
|
||||||
li = $(translator.unescape(li));
|
translator.translate(li, function (li) {
|
||||||
$('#enabled').append(li);
|
li = $(translator.unescape(li));
|
||||||
componentHandler.upgradeDom();
|
$('#enabled').append(li);
|
||||||
|
componentHandler.upgradeDom();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,29 +40,31 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
|
|||||||
templates.parse('admin/partials/categories/create', {
|
templates.parse('admin/partials/categories/create', {
|
||||||
categories: categories
|
categories: categories
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
function submit() {
|
translator.translate(html, function (html) {
|
||||||
var formData = modal.find('form').serializeObject();
|
function submit() {
|
||||||
formData.description = '';
|
var formData = modal.find('form').serializeObject();
|
||||||
formData.icon = 'fa-comments';
|
formData.description = '';
|
||||||
|
formData.icon = 'fa-comments';
|
||||||
|
|
||||||
Categories.create(formData);
|
Categories.create(formData);
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -176,22 +178,24 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
|
|||||||
cid: parentId,
|
cid: parentId,
|
||||||
categories: categories
|
categories: categories
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
container.append(html);
|
translator.translate(html, function (html) {
|
||||||
|
container.append(html);
|
||||||
|
|
||||||
// Handle and children categories in this level have
|
// Handle and children categories in this level have
|
||||||
for(var x = 0,numCategories = categories.length; x < numCategories; x++) {
|
for(var x = 0,numCategories = categories.length; x < numCategories; x++) {
|
||||||
renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid);
|
renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make list sortable
|
// Make list sortable
|
||||||
sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], {
|
sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], {
|
||||||
group: 'cross-categories',
|
group: 'cross-categories',
|
||||||
animation: 150,
|
animation: 150,
|
||||||
handle: '.icon',
|
handle: '.icon',
|
||||||
dataIdAttr: 'data-cid',
|
dataIdAttr: 'data-cid',
|
||||||
ghostClass: "placeholder",
|
ghostClass: "placeholder",
|
||||||
onAdd: itemDidAdd,
|
onAdd: itemDidAdd,
|
||||||
onEnd: itemDragDidEnd
|
onEnd: itemDragDidEnd
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ define('admin/manage/category', [
|
|||||||
'uploader',
|
'uploader',
|
||||||
'iconSelect',
|
'iconSelect',
|
||||||
'admin/modules/colorpicker',
|
'admin/modules/colorpicker',
|
||||||
'autocomplete'
|
'autocomplete',
|
||||||
], function (uploader, iconSelect, colorpicker, autocomplete) {
|
'translator'
|
||||||
|
], function (uploader, iconSelect, colorpicker, autocomplete, translator) {
|
||||||
var Category = {};
|
var Category = {};
|
||||||
var modified_categories = {};
|
var modified_categories = {};
|
||||||
|
|
||||||
@@ -232,8 +233,10 @@ define('admin/manage/category', [
|
|||||||
templates.parse('admin/partials/categories/privileges', {
|
templates.parse('admin/partials/categories/privileges', {
|
||||||
privileges: privileges
|
privileges: privileges
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
$('.privilege-table-container').html(html);
|
translator.translate(html, function (html) {
|
||||||
Category.exposeAssumedPrivileges();
|
$('.privilege-table-container').html(html);
|
||||||
|
Category.exposeAssumedPrivileges();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -289,33 +292,35 @@ define('admin/manage/category', [
|
|||||||
templates.parse('partials/category_list', {
|
templates.parse('partials/category_list', {
|
||||||
categories: categories
|
categories: categories
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
var modal = bootbox.dialog({
|
translator.translate(html, function (html) {
|
||||||
message: html,
|
var modal = bootbox.dialog({
|
||||||
title: 'Set Parent Category'
|
message: html,
|
||||||
});
|
title: 'Set Parent Category'
|
||||||
|
});
|
||||||
|
|
||||||
modal.find('li[data-cid]').on('click', function () {
|
modal.find('li[data-cid]').on('click', function () {
|
||||||
var parentCid = $(this).attr('data-cid'),
|
var parentCid = $(this).attr('data-cid'),
|
||||||
payload = {};
|
payload = {};
|
||||||
|
|
||||||
payload[ajaxify.data.category.cid] = {
|
payload[ajaxify.data.category.cid] = {
|
||||||
parentCid: parentCid
|
parentCid: parentCid
|
||||||
};
|
};
|
||||||
|
|
||||||
socket.emit('admin.categories.update', payload, function (err) {
|
socket.emit('admin.categories.update', payload, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
}
|
||||||
var parent = categories.filter(function (category) {
|
var parent = categories.filter(function (category) {
|
||||||
return category && parseInt(category.cid, 10) === parseInt(parentCid, 10);
|
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 = '<i class="fa ' + parent.icon + '"></i> ' + 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 = '<i class="fa ' + parent.icon + '"></i> ' + 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', {
|
templates.parse('admin/partials/categories/select-category', {
|
||||||
categories: categories
|
categories: categories
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
function submit() {
|
translator.translate(html, function (html) {
|
||||||
var formData = modal.find('form').serializeObject();
|
function submit() {
|
||||||
callback(formData['select-cid']);
|
var formData = modal.find('form').serializeObject();
|
||||||
modal.modal('hide');
|
callback(formData['select-cid']);
|
||||||
return false;
|
modal.modal('hide');
|
||||||
}
|
return false;
|
||||||
|
|
||||||
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);
|
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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,8 +102,10 @@ define('admin/manage/groups', [
|
|||||||
templates.parse('admin/manage/groups', 'groups', {
|
templates.parse('admin/manage/groups', 'groups', {
|
||||||
groups: groups
|
groups: groups
|
||||||
}, function (html) {
|
}, function (html) {
|
||||||
groupsEl.find('[data-groupname]').remove();
|
translator.translate(html, function (html) {
|
||||||
groupsEl.find('tr').after(html);
|
groupsEl.find('[data-groupname]').remove();
|
||||||
|
groupsEl.find('tr').after(html);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
/* globals $, app, socket, templates, define, bootbox */
|
/* globals $, app, socket, templates, define, bootbox */
|
||||||
|
|
||||||
define('admin/manage/ip-blacklist', [], function () {
|
define('admin/manage/ip-blacklist', ['translator'], function (translator) {
|
||||||
|
|
||||||
var Blacklist = {};
|
var Blacklist = {};
|
||||||
|
|
||||||
@@ -34,7 +34,9 @@ define('admin/manage/ip-blacklist', [], function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
templates.parse('admin/partials/blacklist-validate', data, function (html) {
|
templates.parse('admin/partials/blacklist-validate', data, function (html) {
|
||||||
bootbox.alert(html);
|
translator.translate(html, function (html) {
|
||||||
|
bootbox.alert(html);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -336,25 +336,25 @@ define('admin/manage/users', ['translator'], function (translator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
templates.parse('admin/manage/users', 'users', data, function (html) {
|
templates.parse('admin/manage/users', 'users', data, function (html) {
|
||||||
html = $(html);
|
translator.translate(html, function (html) {
|
||||||
$('.users-table tr').not(':first').remove();
|
html = $(html);
|
||||||
$('.users-table tr').first().after(html);
|
$('.users-table tr').not(':first').remove();
|
||||||
html.find('.timeago').timeago();
|
$('.users-table tr').first().after(html);
|
||||||
$('.fa-spinner').addClass('hidden');
|
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');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
}, 250);
|
||||||
|
|||||||
Reference in New Issue
Block a user