Advertisement
didkoslawow

Untitled

May 30th, 2023 (edited)
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.    const taskElement = document.querySelector('#task');
  3.    const descriptionElement = document.querySelector('#description');
  4.    const dateElement = document.querySelector('#date');
  5.    const addButtonElement = document.querySelector('#add');
  6.    const open = document
  7.      .querySelectorAll('section')[1]
  8.      .querySelectorAll('div')[1];
  9.    const inProgress = document
  10.      .querySelectorAll('section')[2]
  11.      .querySelectorAll('div')[1];
  12.    const complete = document
  13.      .querySelectorAll('section')[3]
  14.      .querySelectorAll('div')[1];
  15.  
  16.    addButtonElement.addEventListener('click', onClick);
  17.  
  18.    function onClick(e) {
  19.      e.preventDefault();
  20.      const taskInput = taskElement.value;
  21.      const descriptionInput = descriptionElement.value;
  22.      const dateInput = dateElement.value;
  23.      const isInvalid = !taskInput && !descriptionInput && !dateInput;
  24.  
  25.      if (isInvalid) {
  26.           return;
  27.        }
  28.  
  29.      createArticle(
  30.        'open',
  31.        'green',
  32.        'red',
  33.        taskInput,
  34.        descriptionInput,
  35.        dateInput
  36.      );
  37.  
  38.      taskElement.value = '';
  39.      descriptionElement.value = '';
  40.      dateElement.value = '';
  41.    }
  42.  
  43.    function createArticle(
  44.      tabType,
  45.      firstBtnClass,
  46.      secondBtnClass,
  47.      task,
  48.      description,
  49.      date
  50.    ) {
  51.      const newArticleElement = document.createElement('article');
  52.      const h3Element = document.createElement('h3');
  53.      h3Element.textContent = task;
  54.      const descriptionParaElement = document.createElement('p');
  55.      descriptionParaElement.textContent = `Description: ${description}`;
  56.      const dateParaElement = document.createElement('p');
  57.      dateParaElement.textContent = `Due Date: ${date}`;
  58.  
  59.      newArticleElement.appendChild(h3Element);
  60.      newArticleElement.appendChild(descriptionParaElement);
  61.      newArticleElement.appendChild(dateParaElement);
  62.  
  63.      if (tabType === 'open') {
  64.        const btnsDivElement = document.createElement('div');
  65.        btnsDivElement.className = 'flex';
  66.  
  67.        const startBtn = document.createElement('button');
  68.        startBtn.textContent = 'Start';
  69.        startBtn.className = firstBtnClass;
  70.        startBtn.addEventListener('click', () => {
  71.          removeArticle(newArticleElement);
  72.          createArticle('In Progress', 'red', 'orange', task, description, date);
  73.        });
  74.  
  75.        const deleteBtn = document.createElement('button');
  76.        deleteBtn.textContent = 'Delete';
  77.        deleteBtn.className = secondBtnClass;
  78.        deleteBtn.addEventListener('click', () =>
  79.          removeArticle(newArticleElement)
  80.        );
  81.  
  82.        btnsDivElement.appendChild(startBtn);
  83.        btnsDivElement.appendChild(deleteBtn);
  84.        newArticleElement.appendChild(btnsDivElement);
  85.        open.appendChild(newArticleElement);
  86.      } else if (tabType === 'In Progress') {
  87.        const btnsDivElement = document.createElement('div');
  88.        btnsDivElement.className = 'flex';
  89.  
  90.        const deleteBtn = document.createElement('button');
  91.        deleteBtn.textContent = 'Delete';
  92.        deleteBtn.className = firstBtnClass;
  93.        deleteBtn.addEventListener('click', () =>
  94.          removeArticle(newArticleElement)
  95.        );
  96.  
  97.        const finishBtn = document.createElement('button');
  98.        finishBtn.textContent = 'Finish';
  99.        finishBtn.className = secondBtnClass;
  100.        finishBtn.addEventListener('click', () => {
  101.          removeArticle(newArticleElement);
  102.          createArticle('Complete', null, null, task, description, date);
  103.        });
  104.  
  105.        btnsDivElement.appendChild(deleteBtn);
  106.        btnsDivElement.appendChild(finishBtn);
  107.        newArticleElement.appendChild(btnsDivElement);
  108.        inProgress.appendChild(newArticleElement);
  109.      } else if (tabType === 'Complete') {
  110.          complete.appendChild(newArticleElement);
  111.      }
  112.    }
  113.  
  114.    function removeArticle(article) {
  115.      article.remove();
  116.    }
  117.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement