|
|
|
@ -1,32 +1,33 @@
|
|
|
|
// TODO: reorder
|
|
|
|
// TODO: reorder
|
|
|
|
let currentDraggedItem = null;
|
|
|
|
let currentDraggedItem = null;
|
|
|
|
|
|
|
|
|
|
|
|
const lisAndBody = document.querySelectorAll('li, body');
|
|
|
|
const attachDragEvents = (element)=>{
|
|
|
|
for(const element of lisAndBody){
|
|
|
|
|
|
|
|
element.addEventListener('dragstart', (event)=>{
|
|
|
|
element.addEventListener('dragstart', (event)=>{
|
|
|
|
currentDraggedItem = event.target;
|
|
|
|
currentDraggedItem = event.target;
|
|
|
|
})
|
|
|
|
})
|
|
|
|
element.addEventListener('dragover', (event)=>{
|
|
|
|
element.addEventListener('dragover', (event)=>{
|
|
|
|
event.preventDefault()
|
|
|
|
event.preventDefault()
|
|
|
|
event.target.classList.add('dragging');
|
|
|
|
event.stopPropagation()
|
|
|
|
|
|
|
|
event.currentTarget.classList.add('draggedOver');
|
|
|
|
})
|
|
|
|
})
|
|
|
|
element.addEventListener('dragleave', (event)=>{
|
|
|
|
element.addEventListener('dragleave', (event)=>{
|
|
|
|
event.target.classList.remove('dragging');
|
|
|
|
event.currentTarget.classList.remove('draggedOver');
|
|
|
|
})
|
|
|
|
})
|
|
|
|
element.addEventListener('drop', (event)=>{
|
|
|
|
element.addEventListener('drop', (event)=>{
|
|
|
|
event.target.classList.remove('dragging');
|
|
|
|
event.stopPropagation()
|
|
|
|
event.target.querySelector('ul').appendChild(currentDraggedItem)
|
|
|
|
event.currentTarget.classList.remove('draggedOver');
|
|
|
|
|
|
|
|
event.target.closest('li').querySelector('ul').appendChild(currentDraggedItem)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const deleteItem = (event)=>{
|
|
|
|
const deleteItem = (event)=>{
|
|
|
|
event.target.parentNode.remove()
|
|
|
|
event.currentTarget.closest('li').remove()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const updateItem = (event)=>{
|
|
|
|
const updateItem = (event)=>{
|
|
|
|
event.preventDefault()
|
|
|
|
event.preventDefault()
|
|
|
|
const newValue = event.target.parentNode.querySelector('input').value
|
|
|
|
const newValue = event.currentTarget.parentNode.querySelector('input').value
|
|
|
|
event.target.parentNode.querySelector('h2').innerHTML = newValue
|
|
|
|
event.currentTarget.closest('li').querySelector('h2').innerHTML = newValue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const createNewItem = (event)=>{
|
|
|
|
const createNewItem = (event)=>{
|
|
|
|
@ -36,9 +37,10 @@ const createNewItem = (event)=>{
|
|
|
|
newItem.querySelector('.add').addEventListener('click',createNewItem);
|
|
|
|
newItem.querySelector('.add').addEventListener('click',createNewItem);
|
|
|
|
newItem.querySelector('.delete').addEventListener('click',deleteItem);
|
|
|
|
newItem.querySelector('.delete').addEventListener('click',deleteItem);
|
|
|
|
newItem.querySelector('form').addEventListener('submit',updateItem);
|
|
|
|
newItem.querySelector('form').addEventListener('submit',updateItem);
|
|
|
|
|
|
|
|
attachDragEvents(newItem)
|
|
|
|
|
|
|
|
|
|
|
|
if(event){
|
|
|
|
if(event){
|
|
|
|
event.target.parentNode.querySelector('ul').appendChild(newItem)
|
|
|
|
event.currentTarget.parentNode.querySelector('ul').appendChild(newItem)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
document.querySelector('ul').appendChild(newItem)
|
|
|
|
document.querySelector('ul').appendChild(newItem)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|