Newer
Older
function init() {
let infoText = document.getElementById('infoText')
infoText.innerHTML = 'Ladataan tehtävälista palvelimelta, odota...'
let response = await fetch('http://localhost:3000/jumps')
let jumps = await response.json()
console.log(jumps)
let li_attr_id = document.createAttribute('id')
let li_attr_class = document.createAttribute('class')
li_attr_class.value = 'jumpItem'
li.setAttributeNode(li_attr_class)
li_attr_id.value = jump._id
li.setAttributeNode(li_attr_id)
let spanDate = document.createElement('span')
let spanClassDate = document.createAttribute('class')
spanClassDate.value = 'headerJumpDate'
spanDate.setAttributeNode(spanClassDate)
spanDate.appendChild(jumpDate)
let jumpHeader = document.createTextNode('#' + jump.number)
li.appendChild(jumpHeader)
li.appendChild(spanDate)
let spanMore = document.createElement('span')
let spanClassMore = document.createAttribute('class')
spanClassMore.value = 'headerMore'
spanMore.setAttributeNode(spanClassMore)
let moreButton = document.createTextNode('▼')
spanMore.appendChild(moreButton)
li.appendChild(spanMore)
li.appendChild(jumpItemFullInfo(jump)) // KORJAA piilottus tuplaklikkaus
// Shows and hides rest of the jump info
li.onclick = function() {
let clickedItem = document.getElementById(jump._id).getElementsByClassName('fullJumpInfo')[0]
if (clickedItem.style.display != 'none') {
clickedItem.style.display = 'none'
}
else {
clickedItem.style.display = 'list-item'
}
}
function jumpItemFullInfo(jump) {
const specs = [
jump.height,
jump.falltime
]
let ul = document.createElement('ul')
let ulClass = document.createAttribute('class')
ulClass.value = 'fullJumpInfo'
ul.setAttributeNode(ulClass)
specs.forEach(spec => {
let li = document.createElement('li')
let jumpSpec = document.createTextNode(spec)
li.appendChild(jumpSpec)
ul.appendChild(li)
});
return ul
}
let jumpsList = document.getElementById('jumpsList')
let infoText = document.getElementById('infoText')
// no jumps
if (jumps.length === 0) {
jumpsList.appendChild(li)
})
infoText.innerHTML = ''
}
}
async function addJump() {
let newJumpNumber = document.getElementById('newJumpNumber')
let newJumpDate = document.getElementById('newJumpDate')
let newJumpHeight = document.getElementById('newJumpHeight')
let newJumpFalltime = document.getElementById('newJumpFalltime')
'date': newJumpDate.value,
'height': newJumpHeight.value,
'falltime':newJumpFalltime.value
}
const response = await fetch('http://localhost:3000/jumps', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
let jump = await response.json()
let jumpsList = document.getElementById('jumpsList')
jumpsList.appendChild(li)
let infoText = document.getElementById('infoText')
infoText.innerHTML = ''
newJumpHeight.value = ''
newJumpFalltime.value = ''
number.value = jump_content
let button = document.getElementById("addJumpBtn")
button.style.backgroundColor = "yellow"
button.innerHTML = "Tallenna"
let newJump = document.getElementById('newJump')
const data = { 'text': newJump.value }
const response = await fetch('http://localhost:3000/jumps/'+id, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
let jump = await response.json()
document.getElementById(jump._id).firstChild.nodeValue = jump.text
let addButton = document.getElementById('btn')
addButton.setAttribute('onclick', "addJump()")
addButton.innerHTML = "Lissee"
addButton.style.backgroundColor = ""
let infoText = document.getElementById('infoText')
infoText.innerHTML = ''
const response = await fetch('http://localhost:3000/jumps/'+id, {
method: 'DELETE'
})
let responseJson = await response.json()
let li = document.getElementById(id)
li.parentNode.removeChild(li)
let jumpsList = document.getElementById('jumpsList')
if (!jumpsList.hasChildNodes()) {
let infoText = document.getElementById('infoText')
infoText.innerHTML = 'Ei tehtäviä'
}
}