fix(audit): fermer les frontieres restantes
This commit is contained in:
@@ -216,7 +216,14 @@ function flash(message, type) {
|
||||
const flashContainer = document.querySelector('.flash-messages');
|
||||
const alert = document.createElement('div');
|
||||
alert.className = 'alert alert-' + type + ' alert-dismissible';
|
||||
alert.innerHTML = '<span>' + message + '</span><button type="button" class="alert-close" data-action="remove-element">×</button>';
|
||||
const text = document.createElement('span');
|
||||
text.textContent = message;
|
||||
const close = document.createElement('button');
|
||||
close.type = 'button';
|
||||
close.className = 'alert-close';
|
||||
close.dataset.action = 'remove-element';
|
||||
close.textContent = '×';
|
||||
alert.append(text, close);
|
||||
flashContainer.appendChild(alert);
|
||||
}
|
||||
|
||||
|
||||
@@ -450,11 +450,18 @@
|
||||
var playerDataById = {
|
||||
player_data: {
|
||||
{%- for p in all_players %}
|
||||
{{ p.id }}: "{{ p.username | escape }}",
|
||||
{{ p.id }}: {{ p.username | tojson }},
|
||||
{%- endfor %}
|
||||
}
|
||||
};
|
||||
|
||||
var HTML_ESCAPES = {'&': '&', '<': '<', '>': '>', '"': '"', "'": '''};
|
||||
function escapeHtml(value) {
|
||||
return String(value).replace(/[&<>"']/g, function (character) {
|
||||
return HTML_ESCAPES[character];
|
||||
});
|
||||
}
|
||||
|
||||
// All registered player IDs
|
||||
var allRegisteredPlayers = [
|
||||
{%- for p in all_players %}
|
||||
@@ -555,7 +562,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
var playerName = playerDataById.player_data[pid];
|
||||
if (playerName) {
|
||||
var html = '<div class="player-item" data-player-id="' + pid + '" data-action="return-to-pool">';
|
||||
html += playerName;
|
||||
html += escapeHtml(playerName);
|
||||
html += '<span class="remove-btn">↺</span>';
|
||||
html += '</div>';
|
||||
teamDiv.insertAdjacentHTML('beforeend', html);
|
||||
@@ -568,7 +575,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
var playerName = playerDataById.player_data[pid];
|
||||
if (playerName) {
|
||||
var html = '<div class="player-item" data-player-id="' + pid + '" data-action="return-to-pool">';
|
||||
html += playerName;
|
||||
html += escapeHtml(playerName);
|
||||
html += '<span class="remove-btn">↺</span>';
|
||||
html += '</div>';
|
||||
teamDiv.insertAdjacentHTML('beforeend', html);
|
||||
@@ -920,7 +927,7 @@ function updatePlayerPool() {
|
||||
var availabilityClass = isAvailable ? 'available' : 'unavailable';
|
||||
|
||||
html += '<div class="player-item ' + availabilityClass + '" data-player-id="' + pid + '">';
|
||||
html += '<span class="player-name">' + playerName + '</span>';
|
||||
html += '<span class="player-name">' + escapeHtml(playerName) + '</span>';
|
||||
html += '<div class="player-actions">';
|
||||
html += '<button type="button" class="btn btn-sm btn-primary" data-action="assign-team" data-team-side="1">{{ _('T1') }}</button>';
|
||||
html += '<button type="button" class="btn btn-sm btn-secondary" data-action="assign-team" data-team-side="2">{{ _('T2') }}</button>';
|
||||
@@ -943,7 +950,7 @@ function assignToTeam(playerId, teamSide) {
|
||||
if (!playerName) return;
|
||||
|
||||
var html = '<div class="player-item" data-player-id="' + playerId + '" data-action="return-to-pool">';
|
||||
html += playerName;
|
||||
html += escapeHtml(playerName);
|
||||
html += '<span class="remove-btn">↺</span>';
|
||||
html += '</div>';
|
||||
|
||||
@@ -1062,7 +1069,7 @@ function randomizeTeams() {
|
||||
var playerName = playerDataById.player_data[pid];
|
||||
if (playerName) {
|
||||
var html = '<div class="player-item" data-player-id="' + pid + '" data-action="return-to-pool">';
|
||||
html += playerName;
|
||||
html += escapeHtml(playerName);
|
||||
html += '<span class="remove-btn">↺</span>';
|
||||
html += '</div>';
|
||||
teamDiv.insertAdjacentHTML('beforeend', html);
|
||||
@@ -1074,7 +1081,7 @@ function randomizeTeams() {
|
||||
var playerName = playerDataById.player_data[pid];
|
||||
if (playerName) {
|
||||
var html = '<div class="player-item" data-player-id="' + pid + '" data-action="return-to-pool">';
|
||||
html += playerName;
|
||||
html += escapeHtml(playerName);
|
||||
html += '<span class="remove-btn">↺</span>';
|
||||
html += '</div>';
|
||||
teamDiv.insertAdjacentHTML('beforeend', html);
|
||||
|
||||
Reference in New Issue
Block a user