Advertisement
drak138

Locked profile

Jun 29th, 2024
916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async function lockedProfile() {
  2.     const mainRef=document.getElementById("main")
  3.     const profileRef=document.querySelector(".profile")
  4.     const url=`http://localhost:3030/jsonstore/advanced/profiles`
  5.     //get the needed data
  6.     const data=await getData(url)
  7.     //make i so i have user1,user2...
  8.     let i=1
  9.     //go trought all users and make a page for each of them
  10.     Object.entries(data).forEach(el=>{
  11.         profileRef.remove()
  12.         //make a template
  13.         const clone=profileRef.cloneNode(true)
  14.         //get radio buttons
  15.         const unlock=clone.querySelector('input[value="unlock"]')
  16.         const lock=clone.querySelector('input[value="lock"]')
  17.         unlock.setAttribute("name",`user${i}Locked`)
  18.         lock.setAttribute("name",`user${i}Locked`)
  19.         //get dropdownMenu
  20.         const moreInfo=clone.querySelector(".user1Username")
  21.         moreInfo.setAttribute("id",`user${i}HiddenFields`)
  22.         moreInfo.removeAttribute("class")
  23.         //get needed inputs
  24.         const username=clone.querySelector('input[name="user1Username"]')
  25.         username.setAttribute("name",`user${i}Username`)
  26.         username.setAttribute("value",`${el[1].username}`)
  27.         const email=clone.querySelector('input[name="user1Email"]')
  28.         email.setAttribute("name",`user${i}Email`)
  29.         email.setAttribute("value",`${el[1].email}`)
  30.         const age=clone.querySelector('input[name="user1Age"]')
  31.         age.setAttribute("value",`${el[1].age}`)
  32.         age.setAttribute("name",`user${i}Age`)
  33.         //get button
  34.         const showBtn=clone.querySelector("button")
  35.         showBtn.disabled=true
  36.         showBtn.addEventListener("click",onClick)
  37.         //make radioFunction
  38.     lock.addEventListener('change', checkRadioButtons);
  39.     unlock.addEventListener('change', checkRadioButtons);
  40.     //set info from data
  41.         username.value=el[1].username
  42.         email.value=el[1].email
  43.         age.value=el[1].age
  44.         moreInfo.style.display="none"
  45.  
  46.         //append it all
  47.         mainRef.appendChild(clone)
  48.  
  49.         //radio function
  50.         function checkRadioButtons(){
  51.             if(lock.checked){
  52.                 showBtn.disabled=true
  53.             }
  54.             else if(unlock.checked){
  55.                 showBtn.disabled=false
  56.             }
  57.         }
  58.         i++
  59.     })
  60.     //show button function
  61.     function onClick(e){
  62.         const profile=e.currentTarget
  63.         const info=profile.previousElementSibling
  64.         if(e.currentTarget.textContent==="Show more"){
  65.             info.style.display="block"
  66.             e.currentTarget.textContent="Hide it"
  67.         }
  68.         else{
  69.             info.style.display="none"
  70.             e.currentTarget.textContent="Show more"
  71.         }
  72.     }
  73.     //get Data
  74.     async function getData(url){
  75.         const response=await fetch(url)
  76.         return response.json()
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement