Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Web/scripts/admin/resource-groups.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function ResourceGroupManagement(opts) {

function wireUpTree(groups) {
elements.groupDiv.tree({
data: groups,
data: decodeNames(groups),
saveState: false,
dragAndDrop: true,
selectable: false,
Expand Down Expand Up @@ -234,7 +234,7 @@ function ResourceGroupManagement(opts) {
function onGroupAdded(data) {
var parentNode = null;

data = JSON.parse(data);
data = decodeNames([JSON.parse(data)])[0];
if (data.parent_id && data.parent_id != null && data.parent_id != '') {
parentNode = elements.groupDiv.tree('getNodeById', data.parent_id);
}
Expand Down
2 changes: 1 addition & 1 deletion Web/scripts/calendar.js
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ function Calendar(opts) {

var groupDiv = $('#resourceGroups');
groupDiv.tree({
data: resourceGroups,
data: decodeNames(resourceGroups),
saveState: 'resourceCalendar',

onCreateLi: function (node, $li) {
Expand Down
13 changes: 13 additions & 0 deletions Web/scripts/phpscheduleit.js
Original file line number Diff line number Diff line change
Expand Up @@ -271,3 +271,16 @@ function fallbackCopyToClipboard(url) {
}
return succeeded;
}

// Names are stored entity-encoded (e.g. '); jqTree escapes again, so decode once to plain text.
// eslint-disable-next-line no-unused-vars -- Used by page scripts loaded separately.
function decodeNames(nodes) {
return _.map(nodes, function (n) {
const copy = _.extend({}, n);
_.each(['name', 'label'], function (k) {
if (typeof copy[k] === 'string') copy[k] = HtmlDecode(copy[k]);
});
if (n.children) copy.children = decodeNames(n.children);
return copy;
});
}
12 changes: 0 additions & 12 deletions Web/scripts/schedule.js
Original file line number Diff line number Diff line change
Expand Up @@ -1232,18 +1232,6 @@ function RemoveGroupId(url) {
return url.replace(/&*gid=\d+/i, '');
}

// Names are stored entity-encoded (e.g. '); jqTree escapes again, so decode once to plain text.
function decodeNames(nodes) {
return _.map(nodes, function (n) {
const copy = _.extend({}, n);
_.each(['name', 'label'], function (k) {
if (typeof copy[k] === 'string') copy[k] = HtmlDecode(copy[k]);
});
if (n.children) copy.children = decodeNames(n.children);
return copy;
});
}

function ChangeGroup(node) {
var groupId = node.id;
var $resourceGroups = $('#resourceGroups');
Expand Down
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export default [
validateEmail: 'readonly',
initializeAccordions: 'readonly',
cookies: 'readonly',
decodeNames: 'readonly',

// AJAX helpers (ajax-helpers.js)
ajaxPost: 'readonly',
Expand Down
Loading