fix broadcast layout

sync_v2
Raz 6 months ago
parent 7742fde718
commit d65c047628
  1. 114
      tournaments/static/tournaments/js/tournament_bracket.js

@ -443,64 +443,64 @@ function renderBracket(options) {
bracket.appendChild(roundDiv);
});
// if (isBroadcast == false || isBroadcast == undefined) {
// setTimeout(() => {
// const roundDivs = document.querySelectorAll(".butterfly-round");
// // First, find the maximum bottom position across all rounds
// let globalMaxBottom = 0;
// roundDivs.forEach((roundDiv) => {
// const matches = roundDiv.querySelectorAll(".butterfly-match");
// matches.forEach((match) => {
// const bottom = match.offsetTop + match.offsetHeight;
// if (bottom > globalMaxBottom) {
// globalMaxBottom = bottom;
// }
// });
// });
// // Now create and position footers for all rounds at the same y-position
// roundDivs.forEach((roundDiv, index) => {
// // Get the match templates from this round to extract data
// const roundMatches = rounds[index] || [];
// if (roundMatches.length > 0) {
// const firstMatchTemplate = roundMatches[0].closest(".match-template");
// const roundId = firstMatchTemplate.dataset.roundId;
// const realRoundIndex = firstMatchTemplate.dataset.roundIndex;
// if (realRoundIndex > 1) {
// // Create footer div
// const footerDiv = document.createElement("div");
// footerDiv.className = "round-footer";
// footerDiv.style.width = `${responsiveMatchWidth}px`;
// footerDiv.style.paddingBottom = "40px";
// footerDiv.style.textAlign = "center";
// // Create footer content
// let linkSpan = document.createElement("a");
// linkSpan.className = "small styled-link";
// linkSpan.textContent = "accès au tableau de classement";
// if (roundId) {
// linkSpan.href = `/tournament/${tournamentId}/round/${roundId}/bracket/`;
// linkSpan.style.cursor = "pointer";
// }
if (isBroadcast == false || isBroadcast == undefined) {
setTimeout(() => {
const roundDivs = document.querySelectorAll(".butterfly-round");
// footerDiv.appendChild(linkSpan);
// First, find the maximum bottom position across all rounds
let globalMaxBottom = 0;
// // Create a container that will sit at the same position for all rounds
// const footerContainer = document.createElement("div");
// footerContainer.style.position = "absolute";
// footerContainer.style.top = `${globalMaxBottom}px`; // Same position for all footers
// footerContainer.style.width = "100%";
// footerContainer.appendChild(footerDiv);
roundDivs.forEach((roundDiv) => {
const matches = roundDiv.querySelectorAll(".butterfly-match");
matches.forEach((match) => {
const bottom = match.offsetTop + match.offsetHeight;
if (bottom > globalMaxBottom) {
globalMaxBottom = bottom;
}
});
});
// // Add to the round div
// const matchesContainer =
// roundDiv.querySelector(".matches-container");
// matchesContainer.appendChild(footerContainer);
// }
// }
// });
// }, 1000);
// }
// Now create and position footers for all rounds at the same y-position
roundDivs.forEach((roundDiv, index) => {
// Get the match templates from this round to extract data
const roundMatches = rounds[index] || [];
if (roundMatches.length > 0) {
const firstMatchTemplate = roundMatches[0].closest(".match-template");
const roundId = firstMatchTemplate.dataset.roundId;
const realRoundIndex = firstMatchTemplate.dataset.roundIndex;
if (realRoundIndex > 1) {
// Create footer div
const footerDiv = document.createElement("div");
footerDiv.className = "round-footer";
footerDiv.style.width = `${responsiveMatchWidth}px`;
footerDiv.style.paddingBottom = "40px";
footerDiv.style.textAlign = "center";
// Create footer content
let linkSpan = document.createElement("a");
linkSpan.className = "small styled-link";
linkSpan.textContent = "accès au tableau de classement";
if (roundId) {
linkSpan.href = `/tournament/${tournamentId}/round/${roundId}/bracket/`;
linkSpan.style.cursor = "pointer";
}
footerDiv.appendChild(linkSpan);
// Create a container that will sit at the same position for all rounds
const footerContainer = document.createElement("div");
footerContainer.style.position = "absolute";
footerContainer.style.top = `${globalMaxBottom}px`; // Same position for all footers
footerContainer.style.width = "100%";
footerContainer.appendChild(footerDiv);
// Add to the round div
const matchesContainer =
roundDiv.querySelector(".matches-container");
matchesContainer.appendChild(footerContainer);
}
}
});
}, 300);
}
}

Loading…
Cancel
Save