mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: group userTitles translation escapes
This commit is contained in:
@@ -27,7 +27,7 @@ define('admin/manage/group', [
|
|||||||
memberList.init('admin/manage/group');
|
memberList.init('admin/manage/group');
|
||||||
|
|
||||||
changeGroupUserTitle.on('keyup', function () {
|
changeGroupUserTitle.on('keyup', function () {
|
||||||
groupLabelPreviewText.text(changeGroupUserTitle.val());
|
groupLabelPreviewText.translateText(changeGroupUserTitle.val());
|
||||||
});
|
});
|
||||||
|
|
||||||
changeGroupLabelColor.on('keyup input', function () {
|
changeGroupLabelColor.on('keyup input', function () {
|
||||||
|
|||||||
@@ -143,6 +143,7 @@ define('forum/groups/details', [
|
|||||||
var textColorValueEl = settingsFormEl.find('[name="textColor"]');
|
var textColorValueEl = settingsFormEl.find('[name="textColor"]');
|
||||||
var iconBtn = settingsFormEl.find('[data-action="icon-select"]');
|
var iconBtn = settingsFormEl.find('[data-action="icon-select"]');
|
||||||
var previewEl = settingsFormEl.find('.label');
|
var previewEl = settingsFormEl.find('.label');
|
||||||
|
var previewElText = settingsFormEl.find('.label-text');
|
||||||
var previewIcon = previewEl.find('i');
|
var previewIcon = previewEl.find('i');
|
||||||
var userTitleEl = settingsFormEl.find('[name="userTitle"]');
|
var userTitleEl = settingsFormEl.find('[name="userTitle"]');
|
||||||
var userTitleEnabledEl = settingsFormEl.find('[name="userTitleEnabled"]');
|
var userTitleEnabledEl = settingsFormEl.find('[name="userTitleEnabled"]');
|
||||||
@@ -165,9 +166,7 @@ define('forum/groups/details', [
|
|||||||
|
|
||||||
// If the user title changes, update that too
|
// If the user title changes, update that too
|
||||||
userTitleEl.on('keyup', function () {
|
userTitleEl.on('keyup', function () {
|
||||||
var icon = previewIcon.detach();
|
previewElText.translateText((this.value || settingsFormEl.find('#name').val()));
|
||||||
previewEl.text(' ' + (this.value || settingsFormEl.find('#name').val()));
|
|
||||||
previewEl.prepend(icon);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Disable user title customisation options if the the user title itself is disabled
|
// Disable user title customisation options if the the user title itself is disabled
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ const groups = require('../../groups');
|
|||||||
const meta = require('../../meta');
|
const meta = require('../../meta');
|
||||||
const pagination = require('../../pagination');
|
const pagination = require('../../pagination');
|
||||||
const events = require('../../events');
|
const events = require('../../events');
|
||||||
|
const translator = require('../../translator');
|
||||||
|
|
||||||
const groupsController = module.exports;
|
const groupsController = module.exports;
|
||||||
|
|
||||||
@@ -35,16 +36,17 @@ groupsController.list = async function (req, res) {
|
|||||||
|
|
||||||
groupsController.get = async function (req, res, next) {
|
groupsController.get = async function (req, res, next) {
|
||||||
const groupName = req.params.name;
|
const groupName = req.params.name;
|
||||||
const [groupNames, group] = await Promise.all([
|
const [groupNames, group, allCategories] = await Promise.all([
|
||||||
getGroupNames(),
|
getGroupNames(),
|
||||||
groups.get(groupName, { uid: req.uid, truncateUserList: true, userListCount: 20 }),
|
groups.get(groupName, { uid: req.uid, truncateUserList: true, userListCount: 20 }),
|
||||||
|
categories.buildForSelectAll(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!group) {
|
if (!group) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
group.isOwner = true;
|
group.isOwner = true;
|
||||||
|
group.userTitleEscaped = translator.escape(group.userTitle);
|
||||||
const groupNameData = groupNames.map(function (name) {
|
const groupNameData = groupNames.map(function (name) {
|
||||||
return {
|
return {
|
||||||
encodedName: encodeURIComponent(name),
|
encodedName: encodeURIComponent(name),
|
||||||
@@ -53,8 +55,6 @@ groupsController.get = async function (req, res, next) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
const allCategories = await categories.buildForSelectAll();
|
|
||||||
|
|
||||||
res.render('admin/manage/group', {
|
res.render('admin/manage/group', {
|
||||||
group: group,
|
group: group,
|
||||||
groupNames: groupNameData,
|
groupNames: groupNameData,
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ const user = require('../user');
|
|||||||
const helpers = require('./helpers');
|
const helpers = require('./helpers');
|
||||||
const pagination = require('../pagination');
|
const pagination = require('../pagination');
|
||||||
const privileges = require('../privileges');
|
const privileges = require('../privileges');
|
||||||
|
const translator = require('../translator');
|
||||||
|
|
||||||
const groupsController = module.exports;
|
const groupsController = module.exports;
|
||||||
|
|
||||||
@@ -72,7 +73,7 @@ groupsController.details = async function (req, res, next) {
|
|||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
groupData.isOwner = groupData.isOwner || isAdmin || (isGlobalMod && !groupData.system);
|
groupData.isOwner = groupData.isOwner || isAdmin || (isGlobalMod && !groupData.system);
|
||||||
|
groupData.userTitleEscaped = translator.escape(groupData.userTitle);
|
||||||
res.render('groups/details', {
|
res.render('groups/details', {
|
||||||
title: '[[pages:group, ' + groupData.displayName + ']]',
|
title: '[[pages:group, ' + groupData.displayName + ']]',
|
||||||
group: groupData,
|
group: groupData,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="change-group-user-title">[[admin/manage/groups:edit.user-title]]</label>
|
<label for="change-group-user-title">[[admin/manage/groups:edit.user-title]]</label>
|
||||||
<span id="group-label-preview" class="label label-default" style="color:<!-- IF group.textColor -->{group.textColor}<!-- ELSE -->#ffffff<!-- ENDIF group.textColor -->; background:<!-- IF group.labelColor -->{group.labelColor}<!-- ELSE -->#000000<!-- ENDIF group.labelColor -->;"><i id="group-icon-preview" class="fa {group.icon} <!-- IF !group.icon -->hidden<!-- ENDIF -->"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
|
<span id="group-label-preview" class="label label-default" style="color:<!-- IF group.textColor -->{group.textColor}<!-- ELSE -->#ffffff<!-- ENDIF group.textColor -->; background:<!-- IF group.labelColor -->{group.labelColor}<!-- ELSE -->#000000<!-- ENDIF group.labelColor -->;"><i id="group-icon-preview" class="fa {group.icon} <!-- IF !group.icon -->hidden<!-- ENDIF -->"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
|
||||||
<input type="text" class="form-control" id="change-group-user-title" placeholder="The title of users if they are a member of this group" value="{group.userTitle}" maxlength="{maximumGroupTitleLength}" data-property /><br />
|
<input type="text" class="form-control" id="change-group-user-title" placeholder="The title of users if they are a member of this group" value="{group.userTitleEscaped}" maxlength="{maximumGroupTitleLength}" data-property /><br />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user