Advertisement
Silviya7

3.ToDoList

Jul 17th, 2024
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.  
  3.      const BtnLoad=document.getElementById('load-button');
  4.     const BtnAdd= document.getElementById('add-button');
  5.     const  baseURL='http://localhost:3030/jsonstore/tasks';
  6.  
  7.     const UlToDo=document.getElementById('todo-list');
  8.  
  9.     const InTitle= document.getElementById('title');
  10.     let idtask='';
  11.     const LoadData= async(e)=>{
  12.        
  13.         e.preventDefault();
  14.         const response = await fetch(baseURL);
  15.         const data= await response.json();
  16.         console.log(Object.values(data));
  17.  
  18.         UlToDo.innerHTML='';
  19.         for (const task of Object.values(data)) {
  20.            
  21.        
  22.         const Els= document.createElement('span');
  23.         Els.textContent=task.name;
  24.  
  25.         const BtnRemove= document.createElement('button');
  26.         BtnRemove.textContent='Remove';
  27.         BtnRemove.id=task._id;
  28.  
  29.         const BtnEdit= document.createElement('button');
  30.         BtnEdit.textContent='Edit';
  31.         BtnEdit.id=task._id;
  32.  
  33.         const Elli=document.createElement('li');
  34.         Elli.appendChild(Els);
  35.         Elli.appendChild(BtnRemove);
  36.         Elli.appendChild(BtnEdit);
  37.  
  38.         UlToDo.appendChild(Elli);
  39.  
  40.         BtnRemove.addEventListener('click',async(event)=>{
  41.             event.preventDefault();
  42.             const response= await fetch(`${baseURL}/${task._id}`,{
  43.                 method:'DELETE'
  44.              });
  45.  
  46.              Elli.remove();
  47.  
  48.              LoadData(event);
  49.         })
  50.  
  51.         BtnEdit.addEventListener('click',(e)=>{
  52.            
  53.         idtask= task._id;
  54.      
  55.         const parentElement = e.target.parentElement;
  56.         e.target.parentElement.innerHTML =
  57.         `<input value='${e.target.parentElement.querySelector("span").textContent }'/>
  58.          <button id=${e.target.id}  class='remove-button'>Remove</button>
  59.           <button id=${e.target.id}  class='submit-button'>Submit</button>`;
  60.  
  61.           const BtnSubmit=document.querySelector('li  .submit-button');
  62.           BtnSubmit.addEventListener('click',async(event)=>{
  63.              const name= parentElement.querySelector('input').value;
  64.              event.preventDefault();
  65.     //make put request
  66.     const response= await fetch(`${baseURL}/${idtask}`,{
  67.         method:'PUT',
  68.         headers:{
  69.           'content-type':'application/json',
  70.         },
  71.    
  72.         body:JSON.stringify({
  73.           _id: idtask,
  74.          name,
  75.        
  76.    
  77.       })
  78.       });
  79.   InTitle.value='';
  80.       LoadData(event);
  81.           })
  82.  
  83.        
  84.  
  85.         })
  86.     }
  87.     }
  88.  
  89.     BtnLoad.addEventListener('click',LoadData);
  90.  
  91.     BtnAdd.addEventListener('click',async(event)=>{
  92.         event.preventDefault();
  93.         const name= InTitle.value;
  94.  
  95.     //create post request
  96.   const response= await fetch(baseURL, {
  97.     method :'POST',
  98.     headers:{
  99.     'content-type':'application/json',
  100.     },
  101.     body: JSON.stringify({name}),
  102.     });
  103.  
  104.   LoadData(event);
  105.     name.value='';
  106.  
  107. })
  108. }
  109.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement