Advertisement
why_where_what

01. SoftBlog

Feb 20th, 2021
940
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let createButton = document.querySelector('button.btn.create');
  3.     createButton.addEventListener('click', createArticle);
  4.  
  5.     function createArticle(event) {
  6.         event.preventDefault();
  7.  
  8.         let authorInput = document.querySelector('#creator');
  9.         let titleInput = document.querySelector('#title');
  10.         let categoryInput = document.querySelector('#category');
  11.         let contentInput = document.querySelector('#content');
  12.  
  13.         let h1Title = document.createElement('h1');
  14.         h1Title.textContent = titleInput.value;
  15.  
  16.         let categoryStrongElement = document.createElement('strong');
  17.         categoryStrongElement.textContent = categoryInput.value;
  18.         let categoryParagraph = document.createElement('p');
  19.         categoryParagraph.textContent = 'Category: ';
  20.         categoryParagraph.appendChild(categoryStrongElement);
  21.  
  22.         let creatorStrongElement = document.createElement('strong');
  23.         creatorStrongElement.textContent = authorInput.value;
  24.         let creatorParagraph = document.createElement('p');
  25.         creatorParagraph.textContent = 'Creator: ';
  26.         creatorParagraph.appendChild(creatorStrongElement);
  27.  
  28.         let contentParagraph = document.createElement('p');
  29.         contentParagraph.textContent = contentInput.value;
  30.  
  31.         let deleteButton = document.createElement('button');
  32.         deleteButton.textContent = 'Delete';
  33.         deleteButton.classList.add('btn');
  34.         deleteButton.classList.add('delete');
  35.         deleteButton.addEventListener('click', deleteArticle);
  36.  
  37.         let archiveButton = document.createElement('button');
  38.         archiveButton.textContent = 'Archive';
  39.         archiveButton.classList.add('btn');
  40.         archiveButton.classList.add('archive');
  41.         archiveButton.addEventListener('click', archiveArticle);
  42.         archiveButton.articleTitle = titleInput.value;
  43.  
  44.         let divButtons = document.createElement('div');
  45.         divButtons.classList.add('buttons');
  46.         divButtons.appendChild(deleteButton);
  47.         divButtons.appendChild(archiveButton);
  48.  
  49.         let article = document.createElement('article');
  50.         article.appendChild(h1Title);
  51.         article.appendChild(categoryParagraph);
  52.         article.appendChild(creatorParagraph);
  53.         article.appendChild(contentParagraph);
  54.         article.appendChild(divButtons);
  55.  
  56.         let mainSection = document.querySelector('main > section');
  57.         mainSection.appendChild(article);
  58.  
  59.         authorInput.value = '';
  60.         titleInput.value = '';
  61.         categoryInput.value = '';
  62.         contentInput.value = '';
  63.     }
  64.  
  65.     function deleteArticle(event) {
  66.         event.preventDefault();
  67.  
  68.         this.parentNode.parentNode.remove();
  69.     }
  70.  
  71.     function archiveArticle(event) {
  72.         event.preventDefault();
  73.  
  74.         this.parentNode.parentNode.remove();
  75.  
  76.         let archiveSectionOl = document.querySelector('section.archive-section ol');
  77.  
  78.         let li = document.createElement('li');
  79.         li.textContent = event.target.articleTitle;
  80.         archiveSectionOl.appendChild(li);
  81.  
  82.         let archivedArticlesListItems = archiveSectionOl.children;
  83.         let archivedArticlesListItemsArray = Array.from(archivedArticlesListItems);
  84.  
  85.         archiveSectionOl.innerHTML = '';
  86.  
  87.         archivedArticlesListItemsArray.sort((a, b) => {
  88.            return a.textContent.toLowerCase().localeCompare(b.textContent.toLowerCase());
  89.         });
  90.  
  91.         for (const listItem of archivedArticlesListItemsArray) {
  92.             archiveSectionOl.appendChild(listItem);
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement