Advertisement
Kamend1

02.EcoEvent

Apr 7th, 2025
259
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 nextBtn = document.getElementById('next-btn');
  5.     let previewList = document.getElementById('preview-list');
  6.     let eventList = document.getElementById('event-list');
  7.     let emailField = document.getElementById('email');
  8.     let eventField = document.getElementById('event');
  9.     let locationField = document.getElementById('location');
  10.    
  11.     nextBtn.addEventListener('click', function (e) {
  12.         e.preventDefault();
  13.         addEventToPreview();
  14.     })
  15.    
  16.     function addEventToPreview () {
  17.  
  18.         if (!emailField.value || !eventField.value || !locationField.value) {
  19.             return;
  20.         }
  21.  
  22.         let eventItem = document.createElement('li');
  23.         eventItem.classList.add('application');
  24.         let eventArticle = document.createElement('article');
  25.  
  26.         let eventEmail = document.createElement('h4');
  27.         eventEmail.textContent = emailField.value;
  28.         eventArticle.appendChild(eventEmail);
  29.  
  30.         let eventPara = document.createElement('p');
  31.         let paraTitle = document.createElement('strong');
  32.         paraTitle.textContent = 'Event:';
  33.         let eventBreak = document.createElement('br');
  34.         eventPara.appendChild(paraTitle);
  35.         eventPara.appendChild(eventBreak);
  36.         eventPara.append(eventField.value);
  37.         eventArticle.appendChild(eventPara);
  38.  
  39.         let locationPara = document.createElement('p');
  40.         let paraTitleLoc = document.createElement('strong');
  41.         paraTitleLoc.textContent = 'Location:';
  42.         let eventBreakLoc = document.createElement('br');
  43.         locationPara.appendChild(paraTitleLoc);
  44.         locationPara.appendChild(eventBreakLoc);
  45.         locationPara.append(locationField.value);
  46.         eventArticle.appendChild(locationPara);
  47.  
  48.         eventItem.appendChild(eventArticle);
  49.  
  50.         let editBtn = document.createElement('button');
  51.         editBtn.classList.add('action-btn');
  52.         editBtn.classList.add('edit');
  53.         editBtn.textContent = 'edit';
  54.         editBtn.addEventListener('click', editEvent);
  55.         eventItem.appendChild(editBtn);
  56.  
  57.         let applyBtn = document.createElement('button');
  58.         applyBtn.classList.add('action-btn');
  59.         applyBtn.classList.add('apply');
  60.         applyBtn.textContent = 'apply';
  61.         applyBtn.addEventListener('click', applyEvent);
  62.         eventItem.appendChild(applyBtn);
  63.  
  64.         previewList.appendChild(eventItem);
  65.  
  66.         nextBtn.disabled = true;
  67.         emailField.value = '';
  68.         eventField.value = '';
  69.         locationField.value = '';
  70.     }
  71.  
  72.     function editEvent (event) {
  73.         let editEventLi = event.currentTarget.parentElement;
  74.         let editEmail = editEventLi.querySelector('article h4').textContent;
  75.         let editEvent = editEventLi.querySelector('article p:first-of-type').textContent.split(':')[1];
  76.         let editLocation = editEventLi.querySelector('article p:last-of-type').textContent.split(':')[1];
  77.  
  78.         emailField.value = editEmail;
  79.         eventField.value = editEvent;
  80.         locationField.value = editLocation;
  81.         nextBtn.disabled = false;
  82.        
  83.         previewList.removeChild(editEventLi);
  84.     }
  85.  
  86.     function applyEvent (event) {
  87.         let applyEventLi = event.currentTarget.parentElement;
  88.         let buttons = applyEventLi.querySelectorAll('button');
  89.  
  90.         for (let btn of buttons) {
  91.             applyEventLi.removeChild(btn);
  92.         }
  93.  
  94.         previewList.removeChild(applyEventLi);
  95.         eventList.appendChild(applyEventLi);
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement