dilyana2001

Untitled

Oct 20th, 2021 (edited)
142
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', formButtonHandler);
  5.  
  6.     function formButtonHandler(e) {
  7.         e.preventDefault();
  8.         let asideSection = document.querySelector('aside section');
  9.         let authorInputElement = asideSection.querySelector('#creator');
  10.         let titleInputElement = asideSection.querySelector('#title');
  11.         let categoryInputElement = asideSection.querySelector('#category');
  12.         let contentTextareaElement = asideSection.querySelector('#content');
  13.  
  14.         mainSection.appendChild(createArticle(
  15.             titleInputElement.value,
  16.             categoryInputElement.value,
  17.             authorInputElement.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.         divOfBtns.setAttribute('class', 'buttons');
  39.         deleteBtn.setAttribute('class', 'btn delete');
  40.         archiveBtn.setAttribute('class', 'btn archive');
  41.         articleCapture.textContent = capture;
  42.         articleCategoryParagraph.textContent = 'Category:';
  43.         articleCategoryStrong.textContent = category;
  44.         articleCreatorParagraph.textContent = 'Creator:';
  45.         articleCreatorStrong.textContent = creator;
  46.         articleContentParagraph.textContent = content;
  47.         deleteBtn.textContent = 'Delete';
  48.         archiveBtn.textContent = 'Archive';
  49.         article.appendChild(articleCapture);
  50.         article.appendChild(articleCategoryParagraph);
  51.         articleCategoryParagraph.appendChild(articleCategoryStrong);
  52.         article.appendChild(articleCreatorParagraph);
  53.         articleCreatorParagraph.appendChild(articleCreatorStrong);
  54.         article.appendChild(articleContentParagraph);
  55.         article.appendChild(divOfBtns);
  56.         divOfBtns.appendChild(deleteBtn);
  57.         divOfBtns.appendChild(archiveBtn);
  58.         deleteBtn.addEventListener('click', deleteArticle);
  59.         archiveBtn.addEventListener('click', archiveArticle);
  60.         return article;
  61.     }
  62.  
  63.     function deleteArticle(e) {
  64.         e.target.parentNode.parentNode.remove();
  65.     }
  66.  
  67.     function archiveArticle(e) {
  68.         let archiveObj = [];
  69.         let articleTitle = e.target.parentNode.parentNode.querySelector('h1');
  70.         let archiveSectionOrderList = document.querySelector('ol');
  71.         let archiveList = archiveSectionOrderList.querySelectorAll('li');
  72.         archiveObj.push(articleTitle.textContent);
  73.         for (let list of archiveList) { archiveObj.push(list.textContent) }
  74.         archiveObj.sort((a, b) => a.localeCompare(b));
  75.         archiveSectionOrderList.textContent = '';
  76.         for (let x of archiveObj) {
  77.             let listTitleElement = document.createElement('li');
  78.             listTitleElement.textContent = x;
  79.             archiveSectionOrderList.appendChild(listTitleElement);
  80.         }
  81.         deleteArticle(e);
  82.     }
  83. }
Add Comment
Please, Sign In to add comment