Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.  
  3.  
  4.    let authorInput = document.querySelector('#creator');
  5.    let titleInput = document.querySelector('#title');
  6.    let categoryInput = document.querySelector('#category');
  7.    let contentInput = document.querySelector('#content');
  8.    let createButton = document.querySelector("body > div > div > aside > section:nth-child(1) > form > button")
  9.    let archiveButton = document.getElementsByClassName('btn create');
  10.    let articles = document.querySelector("body > div > div > main > section");
  11.  
  12.    createButton.addEventListener('click', function (e) {
  13.  
  14.       e.preventDefault();
  15.  
  16.       let art = document.createElement('article');
  17.  
  18.       let category = createElement('p', null, `Category`)
  19.       category.innerHTML += `<strong>${categoryInput.value}</strong>`
  20.  
  21.       let creator = createElement('p', null, `Creator`)
  22.       creator.innerHTML += `<strong>${authorInput.value}</strong>`
  23.  
  24.       let content = createElement('p', null, contentInput.value);
  25.  
  26.       let title = createElement('h1', false, titleInput.value);
  27.  
  28.       let buttonsDiv = createElement('div', 'buttons');
  29.  
  30.       let deleteButton = createElement('button', 'btn', 'Delete');
  31.       let archiveButton = createElement('button', 'btn', 'Archive');
  32.  
  33.       deleteButton.classList.add('delete');
  34.       archiveButton.classList.add('archive');
  35.  
  36.  
  37.       buttonsDiv = addChildToParent([deleteButton, archiveButton], buttonsDiv);
  38.       arr = addChildToParent([title, category, creator, content, buttonsDiv], art)
  39.       articles = addChildToParent([art], articles);
  40.  
  41.  
  42.       deleteButton.addEventListener('click', () => {
  43.          deleteButton.parentNode.parentNode.outerHTML = ''
  44.       });
  45.  
  46.  
  47.  
  48.       archiveButton.addEventListener('click', (e) => {
  49.  
  50.          let newTile = e.target.parentNode.parentNode.firstChild.innerText;
  51.  
  52.          let exitItems = document.querySelector("body > div > div > aside > section.archive-section > ul");
  53.  
  54.          let currentRetard = document.createElement('li');
  55.          currentRetard.innerText = newTile;
  56.          exitItems.appendChild(currentRetard);
  57.  
  58.          if (exitItems.children.length >= 1) {
  59.             var list, i, switching, b, shouldSwitch;
  60.             list = exitItems
  61.             switching = true;
  62.  
  63.             while (switching) {
  64.  
  65.                switching = false;
  66.                b = list.getElementsByTagName("LI");
  67.  
  68.                for (i = 0; i < (b.length - 1); i++) {
  69.  
  70.                   shouldSwitch = false;
  71.  
  72.                   if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) {
  73.  
  74.                      shouldSwitch = true;
  75.                      break;
  76.                   }
  77.                }
  78.                if (shouldSwitch) {
  79.  
  80.                   b[i].parentNode.insertBefore(b[i + 1], b[i]);
  81.                   switching = true;
  82.                }
  83.             }
  84.          }
  85.  
  86.          art.innerHTML = '';
  87.       });
  88.  
  89.  
  90.    });
  91.  
  92.  
  93.    function createElement(tagName, className, textContent, attributes, event) {
  94.  
  95.       let element = document.createElement(tagName);
  96.  
  97.       if (className) {
  98.          element.classList.add(className);
  99.       }
  100.  
  101.       if (textContent) {
  102.          element.textContent = textContent;
  103.       }
  104.  
  105.       if (attributes) {
  106.          attributes.forEach((a) => element.setAttribute(a.k, a.v));
  107.       }
  108.  
  109.       if (event) {
  110.          element.addEventListener(event.name, event.func);
  111.       }
  112.  
  113.       return element;
  114.    }
  115.  
  116.  
  117.    function addChildToParent(children, parent) {
  118.       children.forEach((c) => parent.appendChild(c));
  119.       return parent;
  120.    }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement