Advertisement
pacho_the_python

total_damage

Apr 8th, 2023
697
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const title_input = document.getElementById('title')
  3.     const description_input = document.getElementById('description')
  4.     const select_input = document.getElementById('label')
  5.     const points_input = document.getElementById('points')
  6.     const assignee_input = document.getElementById('assignee')
  7.     const create_task_btn = document.getElementById('create-task-btn')
  8.     const tasks_section = document.getElementById('tasks-section')
  9.     const total_points_element = document.getElementById('total-sprint-points')
  10.     const delete_task_btn = document.getElementById('delete-task-btn')
  11.     const hidden_input = document.getElementById('task-id')
  12.  
  13.  
  14.     let total_points = 0
  15.  
  16.     let icons = {
  17.         'feature': '&#8865',
  18.         'low': '&#9737',
  19.         'high': '&#9888',
  20.     }
  21.  
  22.     create_task_btn.addEventListener("click", create_task)
  23.     let counter = 0
  24.     function create_task(e) {
  25.         e.preventDefault()
  26.  
  27.         counter += 1
  28.         hidden_input.value = `task-${counter}`
  29.  
  30.         let title = title_input.value
  31.         let description = description_input.value
  32.         let label = select_input.value
  33.         let points = points_input.value
  34.         let assignee = assignee_input.value
  35.  
  36.         if (title === '' || description === '' || label === '' || points === '' || assignee === '') {return}
  37.  
  38.         let article = create_element('article', '', tasks_section, `${hidden_input.value}`, 'task-card')
  39.  
  40.         let label_content = ''
  41.         let label_class = ''
  42.  
  43.         if (label === 'Feature') {
  44.             label_content = `${label} ${icons["feature"]}`
  45.             label_class = 'feature'
  46.         } else if (label === 'Low Priority Bug') {
  47.             label_content = `${label} ${icons["low"]}`
  48.             label_class = 'low-priority'
  49.         } else if (label === 'High Priority Bug') {
  50.             label_content = `${label} ${icons["high"]}`
  51.             label_class = 'high-priority'
  52.         }
  53.  
  54.         let div_label = create_element('div', label_content, article, '','task-card-label')
  55.         div_label.classList.add(label_class)
  56.  
  57.         let h3 = create_element('h3', title, article, '', 'task-card-title')
  58.         let p = create_element('p', description, article, '', 'task-card-description')
  59.         let points_div = create_element('div', `Estimated at ${points} pts`, article, '', 'task-card-points')
  60.         let assignee_div = create_element('div', `Assigned to: ${assignee}`, article, '', 'task-card-assignee')
  61.         let div_btn = create_element('div', '', article, '', 'task-card-actions')
  62.         let del_btn = create_element('button', 'Delete', div_btn, '', '', delete_element)
  63.  
  64.         total_points += Number(points)
  65.  
  66.         total_points_element.textContent = `Total Points ${total_points}pts`
  67.  
  68.         title_input.value = ''
  69.         description_input.value = ''
  70.         select_input.value = ''
  71.         points_input.value = ''
  72.         assignee_input.value = ''
  73.  
  74.     }
  75.  
  76.     function delete_element(delete_event) {
  77.         create_task_btn.disabled = true
  78.         delete_task_btn.disabled = false
  79.         let delete_article = delete_event.currentTarget.parentElement.parentElement
  80.         let data = Array.from(delete_article.children)
  81.  
  82.         title_input.value = data[1].textContent
  83.         description_input.value = data[2].textContent
  84.         points_input.value = data[3].textContent.split(' ')[2]
  85.         assignee_input.value = data[4].textContent.split(': ')[1]
  86.  
  87.         let current_value_data = data[0].textContent.split(' ')
  88.         current_value_data.pop()
  89.         select_input.value = current_value_data.join(' ')
  90.  
  91.         title_input.disabled = true
  92.         description_input.disabled = true
  93.         select_input.disabled = true
  94.         points_input.disabled = true
  95.         assignee_input.disabled = true
  96.  
  97.         delete_task_btn.addEventListener("click", total_delete_task)
  98.  
  99.         function total_delete_task() {
  100.             total_points -= Number(data[3].textContent.split(' ')[2])
  101.             delete_article.remove()
  102.             create_task_btn.disabled = false
  103.             delete_task_btn.disabled = true
  104.  
  105.             total_points_element.textContent = `Total Points ${total_points}pts`
  106.  
  107.             title_input.value = ''
  108.             description_input.value = ''
  109.             select_input.value = ''
  110.             points_input.value = ''
  111.             assignee_input.value = ''
  112.  
  113.             title_input.disabled = false
  114.             description_input.disabled = false
  115.             select_input.disabled = false
  116.             points_input.disabled = false
  117.             assignee_input.disabled = false
  118.  
  119.         }
  120.  
  121.     }
  122.  
  123.     function  create_element(element_type, element_content, parent_element, id, element_class, event) {
  124.         let current_element = document.createElement(element_type)
  125.         if (element_content) {
  126.             current_element.textContent = element_content
  127.         }
  128.         if (id) {
  129.             current_element.id = id
  130.         }
  131.         if (event) {
  132.             current_element.addEventListener('click', event)
  133.         }
  134.         if (element_class) {
  135.             current_element.classList.add(element_class)
  136.         }
  137.         parent_element.appendChild(current_element)
  138.         return current_element
  139.     }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement