Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.    function sortList(list) {
  3.       let allElements = Array.from(list.getElementsByTagName('li'));
  4.       let valuesArr = [];
  5.  
  6.       for (const element of allElements) {
  7.          valuesArr.push(element.textContent);
  8.       }
  9.  
  10.       list.innerHTML = '';
  11.  
  12.       valuesArr
  13.          .sort((a, b) => a.localeCompare(b))
  14.          .forEach(val => {
  15.             let newLi = document.createElement('li');
  16.             newLi.textContent = val;
  17.             list.appendChild(newLi);
  18.          })
  19.  
  20.    }
  21.  
  22.    let name = document.getElementById("creator");
  23.    let category = document.getElementById("category");
  24.    let title = document.getElementById("title");
  25.    let content = document.getElementById("content");
  26.  
  27.    let createButton = document.getElementsByTagName("button")[0];
  28.    let articles = document.getElementsByTagName("section")[1];
  29.  
  30.    createButton.addEventListener("click", (e) => {
  31.       e.preventDefault();
  32.       let article = document.createElement("article");
  33.  
  34.       let heading = document.createElement("h1");
  35.       heading.innerHTML = title.value;
  36.       article.appendChild(heading);
  37.  
  38.       let categoryP = document.createElement("p");
  39.       categoryP.innerHTML = `Category: <strong>${category.value}</strong>`;
  40.       article.appendChild(categoryP);
  41.  
  42.       let creatorP = document.createElement("p");
  43.       creatorP.innerHTML = `Creator: <strong>${name.value}</strong>`;
  44.       article.appendChild(creatorP);
  45.  
  46.       let contentP = document.createElement("p");
  47.       contentP.innerHTML = content.value;
  48.       article.appendChild(contentP);
  49.  
  50.       let buttonsDiv = document.createElement("div");
  51.       buttonsDiv.setAttribute("class", "buttons");
  52.  
  53.       let deleteButton = document.createElement("button");
  54.       deleteButton.innerHTML = "Delete";
  55.       deleteButton.setAttribute("class", "btn delete");
  56.       buttonsDiv.appendChild(deleteButton);
  57.  
  58.       let archiveButton = document.createElement("button");
  59.       archiveButton.innerHTML = "Archive";
  60.       archiveButton.setAttribute("class", "btn archive");
  61.       buttonsDiv.appendChild(archiveButton);
  62.  
  63.       article.appendChild(buttonsDiv);
  64.       articles.appendChild(article);
  65.    });
  66.  
  67.    articles.addEventListener("click", (e) => {
  68.       e.preventDefault();
  69.  
  70.       let article = e.target.parentNode.parentNode;
  71.       if (e.target.innerHTML === "Delete") {
  72.          article.remove();
  73.       } else if (e.target.innerHTML === "Archive") {
  74.          let archiveUL = document.getElementsByTagName("section")[3].children[1];
  75.          let title = article.children[0].innerHTML;
  76.          let li = document.createElement("li");
  77.          li.innerHTML = title;
  78.          archiveUL.appendChild(li);
  79.          sortList(archiveUL);
  80.          article.remove();
  81.       }
  82.    });
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement