Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function attachEvents() {
- const baseUrl='http://localhost:3030/jsonstore/tasks/';
- const BtnLoad=document.getElementById('load-board-btn');
- const BtnAdd= document.getElementById('create-task-btn');
- const TODO= document.querySelector('#todo-section .task-list');
- const InProgress=document.querySelector('#in-progress-section .task-list');
- const CodeReview=document.querySelector('#code-review-section .task-list');
- const Done= document.querySelector('#done-section .task-list');
- const InputTitle= document.querySelector('#title');
- const InputDescription= document.querySelector('#description');
- let idtask;
- const LoadBoards = async(e)=> {
- e.preventDefault();
- const response = await fetch(baseUrl);
- const data= await response.json();
- console.log(Object.values(data));
- TODO.innerHTML='';
- InProgress.innerHTML='';
- CodeReview.innerHTML='';
- Done.innerHTML='';
- for (const task of Object.values(data)) {
- const Eltitle=document.createElement('h3');
- Eltitle.textContent=task.title;
- const Eldescription=document.createElement('p');
- Eldescription.textContent=task.description;
- const BtnMove= document.createElement('button');
- BtnMove.setAttribute("data-id", task._id)
- const Elli= document.createElement('li');
- Elli.classList.add('task');
- Elli.appendChild(Eltitle);
- Elli.appendChild(Eldescription);
- Elli.appendChild(BtnMove);
- //add task in different column
- switch(task.status){
- case 'ToDo':
- TODO.appendChild(Elli);
- BtnMove.textContent='Move to In Progress';
- break;
- case 'In Progress':
- InProgress.appendChild(Elli);
- BtnMove.textContent='Move to Code Review';
- break;
- case 'Code Review':
- CodeReview.appendChild(Elli);
- BtnMove.textContent='Move to Done';
- break;
- case 'Done':
- Done.appendChild(Elli);
- BtnMove.textContent='Close';
- break;
- }
- BtnMove.addEventListener('click',async(event)=>{
- event.preventDefault();
- idtask=task._id;
- const title= task.title;
- const description=task.description;
- let status=task.status;
- const BtnText= BtnMove.textContent;
- let response='';
- switch(status){
- case'ToDo':
- status='In Progress';
- BtnMove.textContent='Move to Code Review';
- TODO.removeChild(Elli) ;
- InProgress.appendChild(Elli);
- response= await fetch(`${baseUrl}${idtask}`,{
- // method:'PATCH',
- method:'PUT',
- headers:{
- 'content-type':'application/json',
- },
- body: JSON.stringify({title, description, status, _id:idtask})
- // body:JSON.stringify({ status:'In Progress'
- });
- break;
- case'In Progress':
- status='Code Review';
- BtnMove.textContent='Move to Done';
- InProgress.removeChild(Elli) ;
- CodeReview.appendChild(Elli);
- response= await fetch(`${baseUrl}${idtask}`,{
- // method:'PATCH',
- method:'PUT',
- headers:{
- 'content-type':'application/json',
- },
- // body:JSON.stringify({
- // status:'Code Review'
- body: JSON.stringify({title, description, status, _id:idtask})
- });
- break;
- case'Code Review':
- status='Done' ;
- BtnMove.textContent='Close';
- CodeReview.removeChild(Elli) ;
- Done.appendChild(Elli);
- response= await fetch(`${baseUrl}${idtask}`,{
- // method:'PATCH',
- method:'PUT',
- headers:{
- 'content-type':'application/json',
- },
- body: JSON.stringify({title, description, status, _id:idtask})
- // body:JSON.stringify({
- // status:'Done'
- // })
- });
- break;
- case 'Done':
- response= await fetch(`${baseUrl}${idtask}`,{
- method:'DELETE'
- });
- Done.removeChild(Elli);
- }
- LoadBoards(event);
- })
- }
- }
- BtnLoad.addEventListener('click',LoadBoards);
- BtnAdd.addEventListener('click',async(event)=>{
- event.preventDefault();
- const title= InputTitle.value;
- const description=InputDescription.value;
- if( title == ''|| description ==''){
- return;
- }
- //nqma id
- const status='ToDo';
- // let btn = event.target;
- const response=await fetch(baseUrl, {
- method :'POST',
- headers:{
- 'content-type':'application/json',
- },
- body: JSON.stringify({title,description,status}),
- })
- .catch(() => {
- return;
- });
- LoadBoards(event);
- InputTitle.value = "";
- InputDescription.value ="";
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement