Advertisement
dilyana2001

Untitled

Oct 15th, 2021
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let mainSection = document.querySelector('main section');
  3.  
  4.     document.querySelector('form button.btn.create').addEventListener('click', (e) => {
  5.         e.preventDefault();
  6.         let asideSection = document.querySelector('aside section');
  7.         let authorInputElement = asideSection.querySelector('#creator');
  8.         let titleInputElement = asideSection.querySelector('#title');
  9.         let categoryInputElement = asideSection.querySelector('#category');
  10.         let contentTextareaElement = asideSection.querySelector('#content');
  11.         if (!authorInputElement.value || !titleInputElement.value || !categoryInputElement.value || !contentTextareaElement.value) {
  12.             return;
  13.         }
  14.         mainSection.appendChild(createArticle(
  15.             titleInputElement.value,
  16.             authorInputElement.value,
  17.             categoryInputElement.value,
  18.             contentTextareaElement.value
  19.         ));
  20.  
  21.         authorInputElement.value = '';
  22.         titleInputElement.value = '';
  23.         categoryInputElement.value = '';
  24.         contentTextareaElement.value = '';
  25.     })
  26.  
  27.     function createArticle(capture, category, creator, content) {
  28.         let article = document.createElement('article');
  29.         let articleCapture = document.createElement('h1');
  30.         let articleCategoryParagraph = document.createElement('p');
  31.         let articleCategoryStrong = document.createElement('strong');
  32.         let articleCreatorParagraph = document.createElement('p');
  33.         let articleCreatorStrong = document.createElement('strong');
  34.         let articleContentParagraph = document.createElement('p');
  35.         let divOfBtns = document.createElement('div');
  36.         let deleteBtn = document.createElement('button');
  37.         let archiveBtn = document.createElement('button');
  38.  
  39.         divOfBtns.setAttribute('class', 'buttons');
  40.         deleteBtn.setAttribute('class', 'btn delete');
  41.         archiveBtn.setAttribute('class', 'btn archive');
  42.  
  43.         articleCapture.textContent = capture;
  44.         articleCategoryParagraph.textContent = 'Category:';
  45.         articleCategoryStrong.textContent = category;
  46.         articleCreatorParagraph.textContent = 'Creator:';
  47.         articleCreatorStrong.textContent = creator;
  48.         articleContentParagraph.textContent = content;
  49.         deleteBtn.textContent = 'Delete';
  50.         archiveBtn.textContent = 'Archive';
  51.  
  52.         article.appendChild(articleCapture);
  53.         article.appendChild(articleCategoryParagraph);
  54.         articleCategoryParagraph.appendChild(articleCategoryStrong);
  55.         article.appendChild(articleCreatorParagraph);
  56.         articleCreatorParagraph.appendChild(articleCreatorStrong);
  57.         article.appendChild(articleContentParagraph);
  58.         article.appendChild(divOfBtns);
  59.         divOfBtns.appendChild(deleteBtn);
  60.         divOfBtns.appendChild(archiveBtn);
  61.  
  62.         deleteBtn.addEventListener('click', deleteArticle);
  63.         archiveBtn.addEventListener('click', archiveArticle);
  64.  
  65.         return article;
  66.     }
  67.  
  68.     function deleteArticle(e) {
  69.         e.target.parentNode.parentNode.remove();
  70.     }
  71.  
  72.     function archiveArticle(e) {
  73.         let articleTitle = e.target.parentNode.parentNode.querySelector('h1');
  74.         let archiveObj = [];
  75.         let archiveSectionOrderList = document.querySelector('ol');
  76.         let archiveList = archiveSectionOrderList.querySelectorAll('li');
  77.  
  78.         for (const list of archiveList) {
  79.             archiveObj.push(list.textContent);
  80.         }
  81.         archiveObj.push(articleTitle.textContent);
  82.         archiveObj.sort((a, b) => a.localeCompare(b));
  83.  
  84.         archiveSectionOrderList.textContent = '';
  85.         archiveObj.forEach(x => {
  86.             let listTitleElement = document.createElement('li');
  87.             listTitleElement.textContent = x;
  88.  
  89.             archiveSectionOrderList.appendChild(listTitleElement);
  90.         })
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement