|
function sortPlayerData(myDict){ |
|
const sortedArray = Object.entries(myDict) |
|
.map(([key, value]) => [key, value[0], value.length-1]) |
|
.sort((a, b) => b[2] - a[2] || a[0] - b[0]) |
|
.map(([key, firstValue, lengthMinusOne], index) => [index + 1, firstValue, lengthMinusOne]); |
|
var data = sortedArray; |
|
data.unshift(['#','Name','Potatoes']); |
|
const table = document.createElement('table'); |
|
table.setAttribute("id", "content-table"); |
|
if (data.length === 1) { |
|
data.push(['β','β','β']) |
|
}; |
|
|
|
const headerRow = table.insertRow(); |
|
data[0].forEach((header) => { |
|
const headerCell = headerRow.insertCell(); |
|
headerCell.textContent = header; |
|
headerCell.classList.add('boldHeader'); |
|
}); |
|
|
|
for (let i = 1; i < data.length; i++) { |
|
const row = table.insertRow(); |
|
data[i].forEach((cell, index) => { |
|
const cellElement = row.insertCell(); |
|
cellElement.textContent = cell; |
|
}); |
|
} |
|
|
|
const container = document.getElementById('table-container'); |
|
container.appendChild(table); |
|
}; |
|
|
|
function getPlayerData(playerData, PDATA){ |
|
var result = {}; |
|
for (const key in PDATA) { |
|
const count = PDATA[key].filter(item => playerData.slice(1).includes(item)).length; |
|
if (count > 0) { |
|
result[key] = count; |
|
} |
|
} |
|
console.log(result) |
|
var sortedArray = Object.entries(result) |
|
.map(([key, value]) => [key, key, value]) |
|
.sort((a, b) => a[2] - b[2] || a[0] - b[0]) |
|
.map(([_, firstValue, lengthMinusOne], index) => [index + 1, firstValue, lengthMinusOne]); |
|
var data = sortedArray; |
|
data.unshift(['#','Plot ID','Diamonds']); |
|
const table = document.createElement('table'); |
|
table.setAttribute("id", "content-table"); |
|
if (data.length === 1) { |
|
data.push(['β','β','β']) |
|
}; |
|
|
|
const headerRow = table.insertRow(); |
|
data[0].forEach((header) => { |
|
const headerCell = headerRow.insertCell(); |
|
headerCell.textContent = header; |
|
headerCell.classList.add('boldHeader'); |
|
}); |
|
|
|
for (let i = 1; i < data.length; i++) { |
|
const row = table.insertRow(); |
|
data[i].forEach((cell, index) => { |
|
const cellElement = row.insertCell(); |
|
cellElement.textContent = cell; |
|
}); |
|
} |
|
|
|
const container = document.getElementById('table-container'); |
|
container.appendChild(table); |
|
}; |
|
|
|
function findPlayerKey(obj, str) { |
|
for (let key in obj) { |
|
if (obj.hasOwnProperty(key)) { |
|
if (obj[key][0].toLowerCase() === str.toLowerCase()) { |
|
return key; |
|
} |
|
} |
|
} |
|
return null; |
|
}; |
|
|
|
function storePlayerData(playerData){ |
|
playersjson = playerData; |
|
}; |
|
|
|
function storePlotData(plotData){ |
|
plotsjson = plotData; |
|
}; |
|
|
|
|
|
fetch('data/playerdata.json') |
|
.then(response => response.text()) |
|
.then(data => { |
|
storePlayerData(JSON.parse(data)); |
|
sortPlayerData(JSON.parse(data)); |
|
}) |
|
.catch(error => console.error(error)); |
|
|
|
fetch('data/plotdata.json') |
|
.then(response => response.text()) |
|
.then(data => { |
|
storePlotData(JSON.parse(data));; |
|
}) |
|
.catch(error => console.error(error)); |
|
|
|
var searchbox = document.getElementById("searchbox"); |
|
|
|
function processInput() { |
|
var value = searchbox.value.trim(); |
|
document.getElementById("content-table").remove(); |
|
if (value === ''){ |
|
sortPlayerData(playersjson); |
|
console.log('clear'); |
|
} else { |
|
var playerName = findPlayerKey(playersjson, value); |
|
if (playerName === null) { |
|
console.log('no data found'); |
|
const table = document.createElement('table'); |
|
table.setAttribute("id", "content-table"); |
|
const headerRow = table.insertRow(0); |
|
const headerCell = headerRow.insertCell(0); |
|
headerCell.textContent = "No Data Found"; |
|
headerCell.classList.add('redHeader'); |
|
console.log(table); |
|
const container = document.getElementById('table-container'); |
|
container.appendChild(table); |
|
return |
|
} else { |
|
console.log(playerName) |
|
getPlayerData(playersjson[playerName],plotsjson); |
|
} |
|
console.log(value); |
|
}; |
|
} |
|
|
|
searchbox.addEventListener("keyup", function(event) { |
|
if (event.key === "Enter") { |
|
processInput(); |
|
} |
|
}); |
|
|
|
var submitSearch = document.getElementById("submit-search"); |
|
submitSearch.addEventListener("click", function() { |
|
submitSearch.classList.add("clicked"); |
|
processInput(); |
|
}); |
|
|
|
var clearSearch = document.getElementById("clear-search"); |
|
clearSearch.addEventListener("click", function() { |
|
clearSearch.classList.add("clicked"); |
|
searchbox.value = ""; |
|
processInput(); |
|
}); |