137 lines
5.4 KiB
JavaScript
137 lines
5.4 KiB
JavaScript
function positionSelectChanged(elem) {
|
|
let row = elem.parentElement.parentElement
|
|
let original_table = elem.parentElement.parentElement.parentElement
|
|
let lineup_table = document.getElementById('lineup')
|
|
let bench_table = document.getElementById('bench')
|
|
let dhd_table = document.getElementById('dhd')
|
|
let player_order = row.querySelector('[id^="player-order"]')
|
|
let player_available = row.querySelector('[id^="player-availability"]')
|
|
|
|
console.dir(original_table == bench_table)
|
|
if (elem.value == "P" && original_table == bench_table ) {
|
|
dhd_table.appendChild(row)
|
|
player_order.classList.remove('d-none')
|
|
// player_available.classList.add('d-none')
|
|
refresh_lineup_order()
|
|
}
|
|
else if (elem.value && original_table == dhd_table ) {
|
|
dhd_table.appendChild(row)
|
|
player_order.classList.remove('d-none')
|
|
// player_available.classList.add('d-none')
|
|
refresh_lineup_order()
|
|
}
|
|
else if (elem.value) {
|
|
lineup_table.appendChild(row)
|
|
player_order.classList.remove('d-none')
|
|
// player_available.classList.add('d-none')
|
|
refresh_lineup_order()
|
|
}
|
|
else {
|
|
bench_table.prepend(row)
|
|
// player_order.classList.add('d-none')
|
|
player_available.classList.remove('d-none')
|
|
}
|
|
}
|
|
|
|
function colorPositions(){
|
|
var player_rows = [];
|
|
player_rows.push.apply(player_rows, document.getElementById('table-players-lineup').querySelectorAll('tr'));
|
|
player_rows.push.apply(player_rows, document.getElementById('table-players-bench').querySelectorAll('tr'));
|
|
var label_value_array = []
|
|
player_rows.forEach(function (player_row, index){
|
|
console.dir(player_row)
|
|
if (player_row.querySelector('[name$="label"]')){
|
|
console.dir(player_row.querySelector('select[name$="label"]'))
|
|
console.dir(player_row.querySelector('select[name$="label"]').value)
|
|
label_value_array.push(
|
|
player_row.querySelector('select[name$="label"]').value)
|
|
}
|
|
}
|
|
)
|
|
document.querySelectorAll('[id^="position-status"]').forEach(function(position_status,index){
|
|
if (label_value_array.includes(position_status.innerHTML)){
|
|
if (position_status.classList.contains("text-danger")){
|
|
position_status.classList.remove('text-danger')
|
|
}
|
|
position_status.classList.add('text-success')
|
|
} else {
|
|
if (position_status.classList.contains("text-success")){
|
|
position_status.classList.remove('text-success')
|
|
}
|
|
position_status.classList.add('text-danger')
|
|
}
|
|
})
|
|
console.dir(label_value_array)
|
|
}
|
|
|
|
function refresh_lineup_order (){
|
|
var player_rows = document.getElementById('table-players-lineup').querySelectorAll('tr')
|
|
for (let i = 0; i < player_rows.length; i++) {
|
|
var player_order = player_rows[i].querySelector('[id^="sequence"]')
|
|
var form_element_order = player_rows[i].querySelector('[id$="sequence"]')
|
|
player_order.innerText = parseInt(player_rows[i].dataset.order)
|
|
player_rows[i].dataset.order = i
|
|
form_element_order.value = i
|
|
player_order.innerHTML = i+1
|
|
}
|
|
var player_rows = document.getElementById('table-players-bench').querySelectorAll('tr')
|
|
for (let i = 0; i < player_rows.length; i++) {
|
|
var player_order = player_rows[i].querySelector('[id^="player-order"]')
|
|
var form_element_order = player_rows[i].querySelector('[id$="sequence"]')
|
|
player_rows[i].dataset.order = null
|
|
form_element_order.value = null
|
|
player_order.innerHTML = null
|
|
}
|
|
}
|
|
|
|
var lineup = new Sortable.create(
|
|
document.getElementById('tbody-players-lineup'), {
|
|
animation: 150,
|
|
handle: ".drag-handle",
|
|
ghostClass:"ghost",
|
|
group:{
|
|
put:true,
|
|
pull:true
|
|
},
|
|
onAdd: function (/**Event*/evt) {
|
|
// Add to Lineup
|
|
var itemEl = evt.item; // dragged HTMLElement
|
|
var player_order = itemEl.querySelector('[id^="sequence-member"]')
|
|
var player_available =itemEl.querySelector('[class^="member-availability-status"]')
|
|
refresh_lineup_order()
|
|
if (player_order.classList.contains('d-none')){
|
|
player_order.classList.remove('d-none')
|
|
}
|
|
// player_available.classList.add('d-none')
|
|
},
|
|
onUpdate: function (/**Event*/evt) {
|
|
console.log('update to lineup')
|
|
var itemEl = evt.item; // dragged HTMLElement
|
|
refresh_lineup_order()
|
|
},
|
|
});
|
|
|
|
var bench = new Sortable.create(
|
|
document.getElementById('tbody-players-bench'), {
|
|
animation: 150,
|
|
ghostClass:"ghost",
|
|
sort: false,
|
|
handle: ".drag-handle",
|
|
// handle: ".bars-move",
|
|
group:{
|
|
put:true,
|
|
pull:true
|
|
},
|
|
onAdd: function (/**Event*/evt) {
|
|
var itemEl = evt.item; // dragged HTMLElement
|
|
var player_order = itemEl.querySelector('[id^="sequence-member"]')
|
|
var player_available =itemEl.querySelector('[class^="member-availability-status"]')
|
|
refresh_lineup_order()
|
|
// player_order.classList.add('d-none')
|
|
if (player_order.classList.contains('d-none')){
|
|
player_available.classList.remove('d-none')
|
|
}
|
|
}
|
|
});
|
|
//xxx
|
|
colorPositions() |