Liliana797979

music site - js advanced exam

Oct 23rd, 2021
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. window.addEventListener('load', solve);
  2.  
  3. function solve() {
  4.     let inputElements = document.querySelector('form').querySelectorAll('input');
  5.     let input = {
  6.         genre: inputElements[0],
  7.         name: inputElements[1],
  8.         author: inputElements[2],
  9.         date: inputElements[3],
  10.     };
  11.  
  12.     let addButton = document.querySelector('#add-btn');
  13.     addButton.addEventListener('click', addSong);
  14.  
  15.     let addedSongsElement = document.querySelectorAll('.all-hits-container')[0];
  16.     let savedSongs = document.querySelectorAll('.saved-container')[0];
  17.     let pLikesCountElement = document.querySelectorAll('.likes')[0].querySelector('p');
  18.  
  19.     function addSong(e){
  20.         e.preventDefault();
  21.  
  22.         if (input.name.value == '' || input.genre.value == ''|| input.author.value == '' || input.date.value == '') {
  23.             return;
  24.         }
  25.  
  26.         let divElement = createElement('div', '', 'hits-info');
  27.  
  28.         let imageElement = document.createElement('img');
  29.         imageElement.setAttribute('src', './static/img/img.png');
  30.  
  31.         let h2Genre = createElement('h2', 'Genre: ' + input.genre.value);
  32.         let h2Name = createElement('h2', 'Name: ' + input.name.value);
  33.         let h2Author = createElement('h2', 'Author: ' + input.author.value);
  34.         let h3Date = createElement('h3', 'Date: ' + input.date.value);
  35.  
  36.         let saveButton = createElement('button', 'Save song', 'save-btn');
  37.         let likeButton = createElement('button', 'Like song', 'like-btn');
  38.         let deleteButton = createElement('button', 'Delete', 'delete-btn');
  39.  
  40.         divElement.appendChild(imageElement);
  41.         divElement.appendChild(h2Genre);
  42.         divElement.appendChild(h2Name);
  43.         divElement.appendChild(h2Author);
  44.         divElement.appendChild(h3Date);
  45.         divElement.appendChild(saveButton);
  46.         divElement.appendChild(likeButton);
  47.         divElement.appendChild(deleteButton);
  48.  
  49.         addedSongsElement.appendChild(divElement);
  50.  
  51.         input.name.value = '';
  52.         input.author.value  = '';
  53.         input.genre.value  = '';
  54.         input.date.value  = '';
  55.  
  56.         deleteButton.addEventListener('click', deleteSong);
  57.         likeButton.addEventListener('click', increaseLikes);
  58.         saveButton.addEventListener('click', saveSong);
  59.     }
  60.  
  61.     function saveSong(e){
  62.         let elementToMove = e.currentTarget.parentElement;
  63.         savedSongs.appendChild(elementToMove);
  64.  
  65.         let buttons = elementToMove.querySelectorAll('button');
  66.  
  67.         let saveButton =buttons[0];
  68.         let likeButton =buttons[1];
  69.  
  70.         saveButton.remove();
  71.         likeButton.remove();
  72.     }
  73.  
  74.     function increaseLikes(e){
  75.         let pInfo = pLikesCountElement.textContent.split(' ');
  76.         let count = Number(pInfo[2]);
  77.         count++;
  78.         pLikesCountElement.textContent = `Total Likes: ${count}`;
  79.         let button = e.currentTarget;
  80.         button.setAttribute('disabled', '');
  81.     }
  82.  
  83.     function deleteSong(e){
  84.         let parentElement = e.currentTarget.parentElement;
  85.         parentElement.remove();
  86.  
  87.         //let pInfo = pLikesCountElement.textContent.split(' ');
  88.         //let count = Number(pInfo[2]);
  89.        // count--;
  90.         //pLikesCountElement.textContent = `Total Likes: ${count}`;
  91.     }
  92.  
  93.     function createElement(tagName, content, className){
  94.         let element = document.createElement(tagName);
  95.         element.textContent = content;
  96.         if(className){
  97.               element.classList.add(className);
  98.            }
  99.  
  100.         return element;
  101.      }
  102. }
  103.  
Advertisement
Add Comment
Please, Sign In to add comment