diff --git a/teamsnap/lineup/static/lineup/js/lineup.js b/teamsnap/lineup/static/lineup/js/lineup.js index 9687854..df4ad98 100644 --- a/teamsnap/lineup/static/lineup/js/lineup.js +++ b/teamsnap/lineup/static/lineup/js/lineup.js @@ -6,6 +6,8 @@ function positionSelectChanged(elem) { } function colorPositions() { + const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0); + for (bcLineup of document.getElementsByClassName("benchcoach-lineup")) { var player_rows = bcLineup.querySelectorAll('tr'); var label_value_array = [] @@ -17,12 +19,27 @@ function colorPositions() { } ) bcLineup.querySelectorAll('[id^="position-status"]').forEach(function (position_status, index) { - if (label_value_array.includes(position_status.innerHTML)) { + + if (countOccurrences(label_value_array, position_status.innerHTML) == 1) { if (position_status.classList.contains("text-danger")) { position_status.classList.remove('text-danger') } + if (position_status.classList.contains("text-warning")) { + position_status.classList.remove('text-warning') + } position_status.classList.add('text-success') - } else { + } else if (countOccurrences(label_value_array, position_status.innerHTML) > 1) { + if (position_status.classList.contains("text-danger")) { + position_status.classList.remove('text-danger') + } + if (position_status.classList.contains("text-success")) { + position_status.classList.remove('text-success') + } + position_status.classList.add('text-warning') + } else if (countOccurrences(label_value_array, position_status.innerHTML) == 0) { + if (position_status.classList.contains("text-warning")) { + position_status.classList.remove('text-warning') + } if (position_status.classList.contains("text-success")) { position_status.classList.remove('text-success') }