Advertisement
pacho_the_python

forum_posts

Mar 19th, 2023
765
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.     const titleElement = document.getElementById('post-title')
  5.     const categoryElement = document.getElementById('post-category')
  6.     const contentElement = document.getElementById('post-content')
  7.     const publishBtnElement = document.getElementById('publish-btn')
  8.     const reviewListElement = document.getElementById('review-list')
  9.     const publishedListElement = document.getElementById('published-list')
  10.     const clearBtn = document.getElementById('clear-btn')
  11.  
  12.     publishBtnElement.addEventListener("click", postPublish)
  13.     clearBtn.addEventListener("click", clearAll)
  14.  
  15.     let title = ''
  16.     let category = ''
  17.     let postContent = ''
  18.  
  19.     function postPublish(e) {
  20.         e.preventDefault()
  21.         title = titleElement.value
  22.         category = categoryElement.value
  23.         postContent = contentElement.value
  24.  
  25.         if(title === '' || category === '' || postContent === '') {
  26.             return
  27.         }
  28.  
  29.         let publishLiElement = document.createElement('li')
  30.         publishLiElement.classList.add('rpost')
  31.  
  32.         let currentArticleElement = createArticle(title, category, postContent)
  33.  
  34.         let editBtn = createButton('action-btn', 'edit', 'Edit', editPost)
  35.         let approveBtn = createButton('action-btn', 'approve', 'Approve', approvePost)
  36.  
  37.         publishLiElement.appendChild(currentArticleElement)
  38.         publishLiElement.appendChild(editBtn)
  39.         publishLiElement.appendChild(approveBtn)
  40.         reviewListElement.appendChild(publishLiElement)
  41.  
  42.         titleElement.value = ''
  43.         categoryElement.value = ''
  44.         contentElement.value = ''
  45.     }
  46.  
  47.     function editPost(eventEdit) {
  48.         let targetLiElement = eventEdit.currentTarget.parentElement
  49.         let currentArticleElement = Array.from(targetLiElement.children)[0]
  50.         let articleElement = Array.from(currentArticleElement.children)
  51.         titleElement.value = articleElement[0].textContent
  52.         categoryElement.value = articleElement[1].textContent
  53.         contentElement.value = articleElement[2].textContent
  54.         reviewListElement.removeChild(targetLiElement)
  55.     }
  56.     function approvePost(eventApprove) {
  57.         let targetLiElement = eventApprove.currentTarget.parentElement
  58.  
  59.         let approveLiElement = document.createElement('li')
  60.         approveLiElement.classList.add('rpost')
  61.  
  62.         let liArticleElements = Array.from(targetLiElement.children)[0]
  63.         let currentArticleElements = Array.from(liArticleElements.children)
  64.         let currentTitle = currentArticleElements[0].textContent
  65.         let currentCategory = currentArticleElements[1].textContent
  66.         let currentContent = currentArticleElements[2].textContent
  67.  
  68.         let approveArticle = createArticle(currentTitle, currentCategory, currentContent)
  69.  
  70.         approveLiElement.appendChild(approveArticle)
  71.  
  72.         reviewListElement.removeChild(targetLiElement)
  73.         publishedListElement.appendChild(approveLiElement)
  74.     }
  75.  
  76.     function clearAll() {
  77.         let elementsToDelete = Array.from(publishedListElement.children)
  78.         elementsToDelete.map((elementTag) => elementTag.remove())
  79.     }
  80.  
  81.     function createArticle(postTitle, postCategory, postContentText) {
  82.         let articleElement = document.createElement('article')
  83.         let postTitleElement = document.createElement('h4')
  84.         let postCategoryElement = document.createElement('p')
  85.         let postContentElement = document.createElement('p')
  86.  
  87.         postTitleElement.textContent = `${postTitle}`
  88.         articleElement.appendChild(postTitleElement)
  89.  
  90.         postCategoryElement.textContent = `${postCategory}`
  91.         articleElement.appendChild(postCategoryElement)
  92.  
  93.         postContentElement.textContent = `${postContentText}`
  94.         articleElement.appendChild(postContentElement)
  95.  
  96.         return articleElement
  97.     }
  98.  
  99.     function createButton(firstClassName, secondClassName, context, eventFunction) {
  100.         let currentBtn = document.createElement('button')
  101.         currentBtn.classList.add(firstClassName)
  102.         currentBtn.classList.add(secondClassName)
  103.         currentBtn.textContent = context
  104.         currentBtn.addEventListener("click", eventFunction)
  105.         return currentBtn
  106.     }
  107. }
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement