Newer
Older
function init() {
let infoText = document.getElementById('infoText')
infoText.innerHTML = 'Ladataan hyppyjä palvelimelta, odota...'
jumpOrder = 'desc'
// Send form with enter
window.addEventListener("keypress", function(event) {
if (event.key === "Enter") {
event.preventDefault();
document.getElementById("addJumpBtn").click();
}});
jumpsJSON = await response.json()
showJumps(jumpsJSON)
let jumpOrderButton = document.getElementById('sortJumpsButton')
jumpOrderButton.style = 'display: block;'
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)
// Shows and hides rest of the jump info
li.onclick = function() {
let arrow = document.getElementById(jump._id).getElementsByClassName('headerMore')[0]
let clickedItem = document.getElementById(jump._id).getElementsByClassName('fullJumpInfo')[0]
if (clickedItem.style.display != 'none') {
clickedItem.style.display = 'none'
arrow.innerHTML = '▼'
}
else {
clickedItem.style.display = 'list-item'
arrow.innerHTML = '▲'
}
totalFalltime += parseInt(jump.falltime)
'Paikka: ' + jump.place,
'Lentokone: ' + jump.plane,
'Päävarjo: ' + jump.canopy,
'Korkeus: ' + jump.height + ' m',
'Vapaapudotusaika: ' + jump.falltime + ' s ' + `(yht. ${totalFalltime} s)`,
]
let ul = document.createElement('ul')
let ulClass = document.createAttribute('class')
ulClass.value = 'fullJumpInfo'
ul.setAttributeNode(ulClass)
let ulStyle = document.createAttribute('style')
ulStyle.value = 'display: none;'
ul.setAttributeNode(ulStyle)
specs.forEach((spec, index, specs) => {
let li = document.createElement('li')
let jumpSpec = document.createTextNode(spec)
if (index === specs.length - 1 && spec != '' && spec != undefined) {
li.appendChild(createHyperlink(spec))
ul.appendChild(li)
}
else if (spec != '') {
function createHyperlink(link) {
if (link.slice(0,4) != 'http') {
link = `https://${link}`
}
let a = document.createElement('a')
let href = document.createAttribute('href')
href.value = link
a.setAttributeNode(href)
let target = document.createAttribute('target')
target.value = '_blank'
a.setAttributeNode(target)
let linkText = document.createTextNode(link)
a.appendChild(linkText)
return a
}
function createDeleteButton(jump) {
let deleteDiv = document.createElement('div')
let delDivClass = document.createAttribute('class')
delDivClass.value = 'jumpItemDeleteButton'
deleteDiv.setAttributeNode(delDivClass)
let deleteButton = document.createElement('img')
deleteButton.src = "../img/trash.png"
function cancelDelete(id) {
let jumpItem = document.getElementById(id)
let jumpIndex = jumpsJSON.findIndex(jump => jump._id === id)
let jumpNumber = jumpsJSON[jumpIndex].number
jumpItem.innerHTML = `#${jumpNumber} Poistetaan...`
let cancelButtonSpan = document.createElement('span')
let cancelButtonSpanClass = document.createAttribute('class')
cancelButtonSpanClass.value = 'cancelDeleteButton'
cancelButtonSpan.setAttributeNode(cancelButtonSpanClass)
let cancelButton = document.createTextNode('Peruuta')
cancelButtonSpan.appendChild(cancelButton)
jumpItem.appendChild(cancelButtonSpan)
let cancel = false
cancelButtonSpan.onclick = () => {
cancel = true
document.getElementById('jumpsList').innerHTML = ''
let jumpsList = document.getElementById('jumpsList')
let infoText = document.getElementById('infoText')
jumps.sort((a, b) => a.number - b.number)
} else {
jumps.sort((a, b) => b.number - a.number)
jumps.reverse().forEach(jump => {
document.getElementById('jumpsList').innerHTML = ''
if (button.innerHTML == 'Järjestys ▼') {
button.innerHTML = 'Järjestys ▲'
const keys = ['Number','Date','Place','Plane','Canopy',
'Height','Falltime','Comments','Link']
let data = {}
keys.forEach(key => {
let variableName = 'newJump' + key
let element = document.getElementById(variableName)
let dataKey = key.toLowerCase()
data[`${dataKey}`] = element.value
element.value = ''
})
try {
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')
let li = createJumpListItem(jump)
jumpsList.prepend(li)
} catch (error) {
console.log(error)
}
let infoText = document.getElementById('infoText')
infoText.innerHTML = ''
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')
var index = jumpsJSON.findIndex(jump => jump._id === id)